OpenCodeX — универсальный прокси-провайдер для Codex и Claude Code
📂 Исходный код на GitHubУниверсальный прокси для OpenAI Codex и Claude Code — используйте любые LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) с Codex CLI, App, SDK и Claude Code.
OpenCodeX — легковесный локальный прокси-сервер, который транслирует Codex Responses API в протокол любого провайдера. Он позволяет использовать Claude, Gemini, Grok, GLM, DeepSeek, Kimi, Qwen, Ollama и десятки других моделей с Codex CLI, App и SDK — без ожидания официальной поддержки со стороны OpenAI. Проект также работает с Claude Code, предоставляя доступ к сторонним моделям через /v1/messages и count_tokens.
Помимо маршрутизации моделей, OpenCodeX умеет управлять пулом ChatGPT-аккаунтов для авторизации в Codex: можно добавить несколько аккаунтов, отслеживать квоты (5 часов / неделя / 30 дней) через дашборд и автоматически направлять новые сессии на наименее загруженный аккаунт.
Быстрый старт
Установка требует Node 18+. Рантайм Bun бандлится автоматически при npm install.
npm install -g @bitkyc08/opencodex
ocx init
ocx start
Прокси поднимается на localhost:10100, внедряется в конфигурацию Codex через openai_base_url. Codex начинает работать через прокси прозрачно:
codex "Напиши hello world на Rust"
Для автостарта доступны два механизма: ocx service install (системный сервис через launchd/systemd/schtasks) и ocx codex-shim install (запуск прокси по требованию при вызове codex).
Маршрутизация моделей
Модели адресуются через синтаксис provider/model:
codex -m "anthropic/claude-opus-4-8" "Объясни стек-трейс"
codex -m "google/gemini-3-pro" "Напиши тесты для auth.ts"
codex -m "ollama-cloud/glm-5.2" "Напиши SQL-миграцию"
codex -m "ollama/llama3" "Отрефактори эту функцию"
Если префикс провайдера опущен, прокси использует дефолтного провайдера или авто-матчит по имени модели (например, claude-* → Anthropic, gpt-* → OpenAI).
Модели также отображаются в Codex App model picker с контролами reasoning effort (low, medium, high, xhigh, max, ultra). Режим ultra на клиенте включает максимальный reasoning и проактивную мультиагентную делегацию, но преобразуется в max перед отправкой провайдеру.
Провайдеры с / в идентификаторах моделей (ZenMux, OpenRouter, NVIDIA) автоматически алиасятся через - для совместимости с Codex, при этом оригинальная форма с / тоже работает.
Провайдеры и адаптеры
OpenCodeX использует 5 протокольных адаптеров:
| Адаптер | Назначение |
|---|---|
openai-responses |
OpenAI (ChatGPT login и API key) |
anthropic |
Anthropic Messages API, Umans AI Coding Plan |
openai-chat |
Все OpenAI-совместимые Chat Completions endpoint'ы |
google |
Google Gemini |
azure-openai |
Azure OpenAI |
Поддерживаемые провайдеры из коробки (40+):
| Провайдер | Адаптер | Авторизация |
|---|---|---|
| OpenAI (ChatGPT login) | openai-responses |
forward (без ключа) |
| OpenAI (API key) | openai-responses |
API-ключ |
| Anthropic Claude | anthropic |
OAuth / ключ |
| xAI Grok | openai-chat |
OAuth / ключ |
| Kimi (Moonshot) | openai-chat |
OAuth / ключ |
| Google Gemini | google |
ключ |
| Azure OpenAI | azure-openai |
ключ |
| Ollama Cloud | openai-chat |
ключ |
| Ollama / vLLM / LM Studio | openai-chat |
ключ (обычно пустой) |
| DeepSeek, Groq, OpenRouter, Together, Fireworks, Cerebras, Mistral, Hugging Face, NVIDIA NIM, MiniMax, Qwen Cloud | openai-chat |
ключ |
Добавление провайдера — через веб-дашборд (ocx gui), интерактивный ocx init или прямое редактирование ~/.opencodex/config.json. Модели авто-обнаруживаются с эндпоинта /v1/models. Перезапуск прокси не требуется.
Пул аккаунтов OpenAI
OpenCodeX может управлять несколькими ChatGPT/Codex-аккаунтами:
- Аффинность сессий — существующие треды закреплены за аккаунтом, который их начал. Длинные SSH/tmux/мобильные сессии не перепрыгивают между аккаунтами.
- Авто-маршрутизация — новые сессии могут автоматически выбирать наименее загруженный аккаунт на основе квот.
- Обновление квот — дашборд обновляет квоты всех аккаунтов в один клик.
- Fail-closed — ошибки токенов требуют переавторизации, 429 ответы переводят аккаунт в cooldown.
Два режима для провайдера openai: Pool (по умолчанию, использует пул аккаунтов с аффинностью и квотами) и Direct (только текущий аккаунт).
Интеграция с Claude Code
Тот же демон обслуживает Anthropic Messages API (/v1/messages + count_tokens):
ocx claude [args...]
Модели появляются в нативном /model пикере Claude Code через gateway model discovery с алиасами вида claude-ocx-<provider>--<model> (требуется Claude Code 2.1.129+).
Веб-дашборд
Дашборд доступен по http://localhost:10100 и показывает:
- Список провайдеров и их статус
- Статус OAuth-авторизаций
- Выбор моделей с контролами reasoning effort
- Живой лог запросов с количеством токенов (включая cached/cache-write)
- Управление пулом аккаунтов (Codex Auth)
- Страница конфигурации Claude Code
Конфигурация
Пример конфигурации (~/.opencodex/config.json):
{
"port": 10100,
"defaultProvider": "anthropic",
"providers": {
"anthropic": {
"adapter": "anthropic",
"baseUrl": "https://api.anthropic.com",
"authMode": "oauth",
"defaultModel": "claude-sonnet-4-6"
},
"ollama-cloud": {
"adapter": "openai-chat",
"baseUrl": "https://ollama.com/v1",
"apiKey": "${OLLAMA_API_KEY}",
"defaultModel": "glm-5.2"
}
}
}
Поддерживаются переменные окружения через ${VAR}, контекстные окна через contextWindow и modelContextWindows, модальности ввода через modelInputModalities.
Для удалённого доступа установите "hostname": "0.0.0.0" и задайте OPENCODEX_API_AUTH_TOKEN — прокси откажется стартовать без токена при биндинге за пределами loopback. Токен сравнивается в constant time для защиты от timing-атак.
CLI
ocx init # интерактивная настройка
ocx start [--port 10100] # запуск прокси
ocx stop # остановка + восстановление нативного Codex
ocx restore # восстановление без остановки
ocx uninstall # удаление сервиса/шима/конфига
ocx ensure # запуск при необходимости + обновление конфига
ocx sync # обновление моделей + переинъекция в Codex
ocx status # статус прокси
ocx login <provider> # OAuth-логин (xai, anthropic, kimi, cursor)
ocx logout <provider> # удаление сохранённого логина
ocx gui # открытие веб-дашборда
ocx claude [args...] # запуск Claude Code через прокси
ocx service [install|start|stop|status|uninstall] # управление сервисом
ocx update [--tag preview] # обновление opencodex
Дополнительные возможности
- Делегация сабагентам — до пяти моделей в Codex subagent picker, с инъекцией guidance для v2 multi-agent поверхности.
- Веб-поиск и понимание изображений для non-OpenAI моделей через
gpt-5.4-minisidecar поверх ChatGPT-логина. - Генерация изображений — поддержка
POST /v1/images/generationsиPOST /v1/images/edits. - Безопасное внедрение — прокси модифицирует только
openai_base_urlв конфиге Codex, история чатов сохраняется. - Чистое удаление —
ocx stop/ocx uninstallполностью восстанавливают родную конфигурацию Codex.
Разработка
git clone https://github.com/lidge-jun/opencodex.git
cd opencodex
bun install
bun run dev:proxy # запуск прокси в dev-режиме
bun run dev:gui # запуск дашборда (в другом терминале)
bun x tsc --noEmit # проверка типов
Проект написан на TypeScript (96.7%), использует Bun как рантайм и менеджер пакетов.
Дисклеймер
OpenCodeX — независимый community-проект, не аффилированный с OpenAI, Anthropic или другими провайдерами. Некоторые провайдеры (в особенности Anthropic) могут приостанавливать или ограничивать аккаунты, маршрутизирующие трафик через сторонние прокси. Используйте на свой страх и риск. Перед подключением провайдера ознакомьтесь с его Terms of Service.
Лицензия: MIT.
Источник: https://github.com/lidge-jun/opencodex