OpenCodeX — универсальный прокси-провайдер для Codex и Claude Code

· 3 мин чтения
proxy codex claude-code llm openai anthropic typescript developer-tools
📂 Исходный код на GitHub

Универсальный прокси для OpenAI Codex и Claude Code — используйте любые LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) с Codex CLI, App, SDK и Claude Code.

OpenCodeX — универсальный прокси-провайдер для Codex и 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-mini sidecar поверх 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