CLIProxyAPI
Vytvořeno: 21.8.2026 | Aktualizováno: 07.09.2026 14:49
CLIProxyAPI je lokální proxy služba v Go, která převádí rozhraní OpenAI, Gemini, Anthropic/Claude, Codex a Grok. Umožňuje použít jeden AI klient nebo coding agent s modelem přihlášeným u jiného podporovaného poskytovatele.
Princip
CLIProxyAPI stojí mezi klientem a modelem. Přijme požadavek v protokolu klienta, přeloží jej pro zvolený upstream a odpověď vrátí zpět v očekávaném formátu.
Claude Code → CLIProxyAPI → Codex/GPT, Claude, Gemini, Grok nebo jiný kompatibilní upstream
Projekt podporuje OAuth přihlášení pro Codex, Claude Code, Gemini/Antigravity a Grok Build, API klíče i vlastní OpenAI-compatible upstreamy. Podle podpory upstreamu zprostředkuje streaming, tool/function calling, multimodální vstupy a některé WebSocket scénáře.
Ověřená instalace pro Claude Code a ChatGPT
Následující postup byl ověřený na Alpine Linuxu pro ARM64. CLIProxyAPI bylo sestavené ze zdrojových kódů; projekt vyžadoval Go alespoň ve verzi 1.26. Lokální Go 1.25.10 proto sestavení odmítlo. Pokud není vynucený GOTOOLCHAIN=local, Go si může potřebný toolchain stáhnout automaticky.
Pro izolované lokální použití má proxy poslouchat na 127.0.0.1 a používat samostatný adresář ~/.cli-proxy-api pro konfiguraci a OAuth credentials. V ověřené instalaci běžela na portu 8317.
Přihlášení k ChatGPT přes Codex OAuth
Podle dokumentace pro Claude Code umí CLIProxyAPI vystavit Anthropic-compatible rozhraní. Pro headless prostředí fungovalo přihlášení Codex device-code flow:
./cli-proxy-api --codex-device-login
Příkaz vypíše jednorázový kód. Ten se dokončí v prohlížeči na zařízení, kde je možné se přihlásit k ChatGPT účtu. Po úspěšném přihlášení se credentials uloží do ~/.cli-proxy-api.
Proxy se následně spustí například takto:
cd ~/cliproxyapi && nohup ./cli-proxy-api -config ~/.cli-proxy-api/config.yaml > ~/cliproxyapi.log 2>&1 &
Ověřené byly endpointy /v1/models i Anthropic-compatible /v1/messages; proxy vrátila modely i odpověď z GPT modelu. Proces spuštěný přes nohup přežije zavření terminálu, ale ne restart kontejneru nebo hostitele. Trvalé spuštění přes OpenRC či jiný init systém je potřeba nastavit zvlášť.
Samostatný příkaz ''claudex''
Globální ~/.claude/settings.json není vhodné přepisovat, pokud má běžný příkaz claude dál mířit přímo na Anthropic. Praktické řešení je samostatný wrapper ~/.local/bin/claudex, který nastaví proxy pouze pro nový proces:
#!/usr/bin/env bash export ANTHROPIC_BASE_URL="http://127.0.0.1:8317" export ANTHROPIC_AUTH_TOKEN="<api-klic-z-config.yaml>" export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY="1" exec claude "$@"
ANTHROPIC_AUTH_TOKEN je API klíč nastavený pro CLIProxyAPI; do wrapperu nepatří skutečný klíč zkopírovaný do dokumentace nebo repozitáře. Proměnná CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 zpřístupní modely oznámené proxy. Po spuštění claudex lze model vybrat přes /model nebo ho předat při startu:
claudex --model gpt-5.6-sol
Při ověřené instalaci byly přes proxy dostupné mimo jiné modely gpt-5.6-sol, gpt-5.6-terra a gpt-5.6-luna. Dostupný seznam závisí na aktuálním přihlášeném účtu a verzi proxy; je vhodné si jej ověřit přes /v1/models.
Co nelze přepnout za běhu
ANTHROPIC_BASE_URL určuje server při startu Claude Code. Příkaz /model mění pouze vybraný model na již nastaveném serveru, ne připojený server. Nelze tedy mít jednu spuštěnou session přímo u Anthropicu a za běhu ji přepnout na lokální GPT proxy.
Pro zachování oddělených backendů je možné používat:
claudepro přímé připojení k Anthropicu,claudexpro GPT přes lokální CLIProxyAPI.
Při změně backendu jde o nový proces Claude Code. Volba –continue může navázat na historii předchozí session, ale nejde o živé přepnutí backendu. Stejně tak nelze v jedné session nechat hlavního agenta přímo na Anthropicu a pouze subagenta poslat přes tuto proxy: všechny procesy session sdílejí stejné připojení.
Claude Code s jiným modelem
Pro Claude Code je podstatné, že proxy vystaví Claude-compatible endpoint a katalog modelů. Po přihlášení potřebného účtu nebo nastavení API klíče může Claude Code požadovat dostupný model podle jeho ID.
Název modelu může být skutečné upstream ID nebo alias definovaný v konfiguraci. Alias slouží jen pro routing; není důkazem, který model požadavek skutečně obsloužil. Pro přehledný provoz je vhodné zachovat názvy podle skutečného backendu, například gpt-…, gemini-… a claude-….
To znamená, že Claude Code zůstává uživatelským a agentním rozhraním, ale model, který generuje odpovědi, lze vybrat na straně proxy. Jde o překladovou vrstvu, nikoli o nativní podporu těchto modelů v Claude Code.
Příspěvek Tibo na X ukazuje stejný princip přes alias claudex, který spouští Claude Code s modelem gpt-5.6-sol.
Routing více účtů a modelů
Při více přihlašovacích údajích umí CLIProxyAPI používat round-robin, weighted round-robin nebo fill-first routing. Konfigurace obsahuje také retry, cooldown po chybách, volitelnou afinitu relace ke konkrétnímu účtu a modelové prefixy pro jednoznačné směrování.
Tato vrstva je užitečná hlavně tehdy, když je potřeba:
- přepínat backendové modely bez změny hlavního klienta,
- používat více účtů stejného poskytovatele,
- směrovat různé modelové názvy na různé upstreamy,
- provozovat klienta nad vlastním OpenAI-compatible API.
Bezpečnost a provoz
Proxy pracuje s OAuth tokeny a API klíči. Výchozí konfigurační soubor nastavuje host: „“, což znamená naslouchání na všech IPv4 a IPv6 rozhraních. Pro lokální použití je bezpečnější nastavit 127.0.0.1 nebo localhost, používat vlastní silný API klíč a nevystavovat službu ani její management rozhraní přímo do internetu.
Přihlašovací údaje se standardně ukládají do ~/.cli-proxy-api. Management API vyžaduje samostatný tajný klíč; pokud zůstane prázdný, management endpointy se nezpřístupní. Pluginy jsou ve výchozí konfiguraci vypnuté, protože se načítají jako důvěryhodný kód přímo do procesu.
Kontextové okno GPT podle předplatného
Při ověřování jsem zjistil, že velikost kontextového okna GPT modelů v katalogu proxy závisí na úrovni ChatGPT předplatného. CLIProxyAPI si z přihlašovacího tokenu přečte plan_type a podle něj vybere odpovídající sadu modelů. Pro účet Plus živé hodnoty odpovídaly sloupci codex-plus přesně, řádek po řádku.
| Model | codex-free | codex-team | codex-plus | codex-pro |
|---|---|---|---|---|
gpt-6-astra | — | 272 000 | 272 000 | 272 000 |
gpt-5.6-luna | 372 000 | 372 000 | 372 000 | 921 000 |
gpt-5.6-sol | — | 372 000 | 372 000 | 921 000 |
gpt-5.6-terra | 372 000 | 372 000 | 372 000 | 921 000 |
gpt-5.5 | 272 000 | 272 000 | 272 000 | 272 000 |
gpt-5.3-codex-spark | — | — | 128 000 | 128 000 |
Hodnoty pocházejí z katalogu proxy v sdk/cliproxy/service_models.go. U účtu Plus je typ předplatného vidět také v názvu OAuth souboru ~/.cli-proxy-api/codex-…-plus.json. Stejný model proto může mít podle tarifu odlišné kontextové okno; nejvýraznější rozdíl je u modelů gpt-5.6-luna, gpt-5.6-sol a gpt-5.6-terra, které mají v sadě codex-pro hodnotu 921 000 oproti 372 000 u codex-plus.
Omezení
Překlad protokolu nemůže zaručit plnou shodu funkcí. Záleží na konkrétním modelu a upstreamu, zda správně fungují tool calls, streaming, reasoning bloky, prompt cache, dlouhé relace nebo poskytovatelem specifické funkce.
Použití OAuth předplatného přes jiný klient také automaticky neznamená oprávnění k API použití. Před nasazením je potřeba ověřit aktuální podmínky každého použitého poskytovatele; použití proxy s OAuth tokenem může nést riziko omezení nebo blokace účtu.
Pokud má Codex fungovat jako samostatný specialista vedle Claude Code, místo náhrady hlavního backendu, je vhodnější cc-codex-bridge.