MCPcopy
hub / github.com/xtekky/gpt4free

github.com/xtekky/gpt4free @v7.7.1 sqlite

repository ↗ · DeepWiki ↗ · release v7.7.1 ↗
2,183 symbols 10,310 edges 287 files 655 documented · 30%
README

GPT4Free (g4f)

PyPI Docker Hub License: GPL v3 PyPI Downloads GitHub Repo stars

GPT4Free logo

Created by @xtekky,

maintained by @hlohaus

Support the project on GitHub Sponsors ❤️

Live demo & docs: https://g4f.dev | Documentation: https://g4f.dev/docs


GPT4Free (g4f) is a community-driven project that aggregates multiple accessible providers and interfaces to make working with modern LLMs and media-generation models easier and more flexible. GPT4Free aims to offer multi-provider support, local GUI, OpenAI-compatible REST APIs, and convenient Python and JavaScript clients — all under a community-first license.

This README is a consolidated, improved, and complete guide to installing, running, and contributing to GPT4Free.

Table of contents - What’s included - Quick links - Requirements & compatibility - Installation - Docker (recommended) - Slim Docker image - Windows (.exe) - Python (pip / from source / partial installs) - Running the app - GUI (web client) - FastAPI / Interference API - CLI - Optional provider login (desktop in container) - Using the Python client - Synchronous text example - Image generation example - Async client example - Using GPT4Free.js (browser JS client) - Providers & models (overview) - Local inference & media - Configuration & customization - Running on smartphone - Interference API (OpenAI‑compatible) - Examples & common patterns - Contributing - How to create a new provider - How AI can help you write code - Security, privacy & takedown policy - Credits, contributors & attribution - Powered-by highlights - Changelog & releases - Manifesto / Project principles - License - Contact & sponsorship - Appendix: Quick commands & examples


What’s included

  • Python client library and async client.
  • Optional local web GUI.
  • FastAPI-based OpenAI-compatible API (Interference API).
  • Official browser JS client (g4f.dev distribution).
  • Docker images (full and slim).
  • Multi-provider adapters (LLMs, media providers, local inference backends).
  • Tooling for image/audio/video generation and media persistence.

Quick links

  • Website & docs: https://g4f.dev | https://g4f.dev/docs
  • PyPI: https://pypi.org/project/g4f
  • Docker image: https://hub.docker.com/r/hlohaus789/g4f
  • Releases: https://github.com/xtekky/gpt4free/releases
  • Issues: https://github.com/xtekky/gpt4free/issues
  • Community: Telegram (https://telegram.me/g4f_channel) · Discord News (https://discord.gg/5E39JUWUFa) · Discord Support (https://discord.gg/qXA4Wf4Fsm)

Requirements & compatibility

  • Python 3.10+ recommended.
  • Google Chrome/Chromium for providers using browser automation.
  • Docker for containerized deployment.
  • Works on x86_64 and arm64 (slim image supports both).
  • Some provider adapters may require platform-specific tooling (Chrome/Chromium, etc.). Check provider docs for details.

Installation

Docker (recommended)

  1. Install Docker: https://docs.docker.com/get-docker/
  2. Create persistent directories:
  3. Example (Linux/macOS): bash mkdir -p ${PWD}/har_and_cookies ${PWD}/generated_media sudo chown -R 1200:1201 ${PWD}/har_and_cookies ${PWD}/generated_media
  4. Pull image: bash docker pull hlohaus789/g4f
  5. Run container: bash docker run -p 8080:8080 -p 7900:7900 \ --shm-size="2g" \ -v ${PWD}/har_and_cookies:/app/har_and_cookies \ -v ${PWD}/generated_media:/app/generated_media \ hlohaus789/g4f:latest Notes:
  6. Port 8080 serves GUI/API; 7900 can expose a VNC-like desktop for provider logins (optional).
  7. Increase --shm-size for heavier browser automation tasks.

Slim Docker image (x64 & arm64)

mkdir -p ${PWD}/har_and_cookies ${PWD}/generated_media
chown -R 1000:1000 ${PWD}/har_and_cookies ${PWD}/generated_media

docker run \
  -p 1337:8080 -p 8080:8080 \
  -v ${PWD}/har_and_cookies:/app/har_and_cookies \
  -v ${PWD}/generated_media:/app/generated_media \
  hlohaus789/g4f:latest-slim

Notes: - The slim image can update the g4f package on startup and installs additional dependencies as needed. - In this example, the Interference API is mapped to 1337.

Windows Guide (.exe)

👉 Check out the Windows launcher for GPT4Free:
🔗 https://github.com/gpt4free/g4f.exe 🚀

  1. Download the release artifact g4f.exe.zip from: https://github.com/xtekky/gpt4free/releases/latest
  2. Unzip and run g4f.exe.
  3. Open GUI at: http://localhost:8080/chat/
  4. If Windows Firewall blocks access, allow the application.

Python Installation (pip / from source / partial installs)

Prerequisites: - Python 3.10+ (https://www.python.org/downloads/) - Chrome/Chromium for some providers.

Install from PyPI (recommended):

pip install -U g4f[all]

Partial installs - To install only specific functionality, use optional extras groups. See docs/requirements.md in the project docs.

Install from source:

git clone https://github.com/xtekky/gpt4free.git
cd gpt4free
pip install -r requirements.txt
pip install -e .

Notes: - Some features require Chrome/Chromium or other tools; follow provider-specific docs.


Running the app

GUI (web client)

  • Run via Python:
from g4f.gui import run_gui
run_gui()
  • Or via CLI:
python -m g4f.cli gui --port 8080 --debug
  • Open: http://localhost:8080/chat/

FastAPI / Interference API

  • Start FastAPI server:
python -m g4f --port 8080 --debug
  • If using slim docker mapping, Interference API may be available at http://localhost:1337/v1
  • Swagger UI: http://localhost:1337/docs

CLI

  • Start GUI server:
python -m g4f.cli gui --port 8080 --debug

MCP Server

GPT4Free now includes a Model Context Protocol (MCP) server that allows AI assistants like Claude to access web search, scraping, and image generation capabilities.

Starting the MCP server (stdio mode):

# Using g4f command
g4f mcp

# Or using Python module
python -m g4f.mcp

Starting the MCP server (HTTP mode):

# Start HTTP server on port 8765
g4f mcp --http --port 8765

# Custom host and port
g4f mcp --http --host 127.0.0.1 --port 3000

HTTP mode provides: - POST http://localhost:8765/mcp - JSON-RPC endpoint - GET http://localhost:8765/health - Health check

Configuring with Claude Desktop:

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "gpt4free": {
      "command": "python",
      "args": ["-m", "g4f.mcp"]
    }
  }
}

Available MCP Tools: - web_search - Search the web using DuckDuckGo - web_scrape - Extract text content from web pages
- image_generation - Generate images from text prompts

For detailed MCP documentation, see g4f/mcp/README.md

Optional provider login (desktop within container)

  • Accessible at: http://localhost:7900/?autoconnect=1&resize=scale&password=secret
  • Useful for logging into web-based providers to obtain cookies/HAR files.

Using the Python client

Install:

pip install -U g4f[all]

Synchronous text example:

from g4f.client import Client

client = Client()
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Hello, how are you?"}],
    web_search=False
)
print(response.choices[0].message.content)

Expected:

Hello! How can I assist you today?

Image generation example:

from g4f.client import Client

client = Client()
response = client.images.generate(
    model="flux",
    prompt="a white siamese cat",
    response_format="url"
)
print(f"Generated image URL: {response.data[0].url}")

Async client example:

from g4f.client import AsyncClient
import asyncio

async def main():
    client = AsyncClient()
    response = await client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": "Explain quantum computing briefly"}],
    )
    print(response.choices[0].message.content)

asyncio.run(main())

Notes: - See the full API reference for streaming, tool-calling patterns, and advanced options: https://g4f.dev/docs/client


Using GPT4Free.js (browser JS client)

Use the official JS client in the browser—no backend required.

Example:

<script type="module">
  import Client from 'https://g4f.dev/dist/js/client.js';

  const client = new Client();
  const result = await client.chat.completions.create({
      model: 'gpt-4.1',  // Or "gpt-4o", "deepseek-v3", etc.
      messages: [{ role: 'user', content: 'Explain quantum computing' }]
  });
  console.log(result.choices[0].message.content);
</script>

Notes: - The JS client is distributed via the g4f.dev CDN for easy usage. Review CORS considerations and usage limits.


Providers & models (overview)

  • GPT4Free integrates many providers including (but not limited to) OpenAI-compatible endpoints, PerplexityLabs, Gemini, MetaAI, Pollinations (media), and local inference backends.
  • Model availability and behavior depend on provider capabilities. See the providers doc for current, supported provider/model lists: https://g4f.dev/docs/providers-and-models

Provider requirements may include: - API keys or tokens (for authenticated providers) - Browser cookies / HAR files for providers scraped via browser automation - Chrome/Chromium or headless browser tooling - Local model binaries and runtime (for local inference)


Local inference & media

  • GPT4Free supports local inference backends. See docs/local.md for supported runtimes and hardware guidance.
  • Media generation (image, audio, video) is supported through providers (e.g., Pollinations). See docs/media.md for formats, options, and sample usage.

Configuration & customization

  • Configure via environment variables, CLI flags, or config files. See docs/config.md.
  • To reduce install size, use partial requirement groups. See docs/requirements.md.
  • Provider selection: learn how to set defaults and override per-request at docs/selecting_a_provider.md.
  • Persistence: HAR files, cookies, and generated media persist in mapped directories (e.g., har_and_cookies, generated_media).

Running on smartphone

  • The web GUI is responsive and can be accessed from a phone by visiting your host IP:8080 or via a tunnel. See docs/guides/phone.md.

Interference API (OpenAI‑compatible)

  • The Interference API enables OpenAI-like workflows routed through GPT4Free provider selection.
  • Docs: docs/interference-api.md
  • Default endpoint (example slim docker): http://localhost:1337/v1
  • Swagger UI: http://localhost:1337/docs

Examples & common patterns


Contributing

Contributions are welcome — new providers, features, docs, an

Core symbols most depended-on inside this repo

get
called by 1296
g4f/Provider/__init__.py
get
called by 277
g4f/client/models.py
json
called by 145
g4f/requests/aiohttp.py
get
called by 140
g4f/models.py
items
called by 104
g4f/Provider/__init__.py
raise_for_status
called by 95
g4f/Provider/hf_space/raise_for_status.py
write
called by 80
g4f/mcp/pa_provider.py
create
called by 63
g4f/__init__.py

Shape

Method 1,194
Function 541
Class 405
Route 43

Languages

Python100%

Modules by API surface

etc/unittest/mcp.py96 symbols
g4f/providers/response.py86 symbols
g4f/api/__init__.py63 symbols
etc/unittest/config_provider.py62 symbols
g4f/mcp/tools.py57 symbols
g4f/gui/server/backend_api.py56 symbols
g4f/Provider/needs_auth/Antigravity.py49 symbols
g4f/Provider/needs_auth/GeminiCLI.py47 symbols
g4f/client/__init__.py45 symbols
g4f/client/stubs.py44 symbols
g4f/Provider/needs_auth/OpenaiChat.py42 symbols
g4f/Provider/openai/new.py34 symbols

Dependencies from manifests, versioned

curl_cffi0.6.2 · 1×

For agents

$ claude mcp add gpt4free \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact