Универсальный прокси провайдеров для OpenAI Codex & Claude Code
Две команды — и Codex, и Claude Code работают на любой LLM, которую вы укажете.
npm install -g @bitkyc08/opencodex
ocx start # прокси + дашборд: localhost:10100

Claude Code на любой модели. Селектор — обычный Claude Code, а вот модель за ним — какую захотите.

Codex на любой модели. Выберите провайдера — и вперёд: тот же рабочий процесс Codex, другой «мозг».
English · 한국어 · 简体中文 · Русский · 日本語 · 📖 Полная документация →
Используйте Claude, Gemini, Grok, GLM, DeepSeek, Kimi, Qwen, Ollama или любую другую LLM с Codex — и с Claude Code — не дожидаясь, пока кто-нибудь добавит поддержку.
opencodex — это лёгкий локальный прокси, который транслирует Responses API Codex в протокол, понятный вашему провайдеру. Потоковая передача, вызовы инструментов, токены рассуждений, изображения — всё работает в обе стороны.
Кроме того, opencodex умеет управлять пулом аккаунтов ChatGPT для аутентификации Codex. Добавьте несколько аккаунтов ChatGPT / Codex, обновляйте их квоты (5 ч / неделя / 30 дней) в панели управления — и новые сессии будут автоматически направляться на работоспособный аккаунт с наименьшим использованием. Существующие треды Codex остаются закреплёнными за аккаунтом, с которого они начались, поэтому длительные сессии по SSH, в tmux или с мобильного устройства не переключаются между аккаунтами посреди разговора.
Codex CLI / App / SDK ──/v1/responses──▶ opencodex ──▶ Any provider
│
Anthropic · Google · xAI · Kimi · Ollama Cloud · Groq
OpenRouter · Azure · DeepSeek · GLM · …and OpenAI itselfflowchart LR
codex[Сессия Codex<br/>CLI, App, SSH, мобильный] --> proxy[opencodex]
proxy --> existing{Существующий тред?}
existing -->|да| pinned[Оставить тот же<br/>аккаунт ChatGPT]
existing -->|новая сессия| quota[Обновление квот<br/>5 ч, неделя, 30 дней]
quota --> pick[Выбор работоспособного аккаунта<br/>с наименьшим использованием]
pick --> upstream[Бэкенд ChatGPT / Codex]
pinned --> upstream
upstream --> outcomes[Результат квоты / аутентификации]
outcomes -->|429| cooldown[Кулдаун + failover]
outcomes -->|401 / 403| reauth[Требуется переавторизация]
cooldown --> quota
| ОС | Статус | Менеджер служб |
|---|---|---|
| macOS (arm64 / x64) | Полная поддержка | launchd |
| Linux (x64 / arm64) | Полная поддержка | systemd (пользовательский unit) |
| Windows (x64) | Полная поддержка | Task Scheduler (скрыто) / опциональная нативная служба (--native, WinSW) |
Требуется Node 18+. Рантайм Bun добавляется автоматически при npm install — отдельно устанавливать Bun не нужно. Все три платформы работают нативно (WSL на Windows не требуется).
# Установка (рантайм Bun добавляется автоматически — нужен только Node 18+)
# Предпочитайте Node, принадлежащий пользователю (nvm/fnm), — избегайте `sudo npm install -g …`
npm install -g @bitkyc08/opencodex
# Интерактивная настройка (записывает конфигурацию, встраивается в Codex и предлагает установить shim автозапуска)
ocx init
# Запуск прокси
ocx start
# Если вы пропустили этот шаг в init, shim автозапуска по требованию можно установить позже
ocx codex-shim install
# Используйте Codex как обычно — теперь запросы идут через opencodex
codex "Write a hello world in Rust"Ошибка «bundled Bun runtime is missing» / npm заблокировал установочные скрипты Bun?
opencodex поставляет рантайм Bun как зависимость и запускает его через Node-лончер,
поэтому устанавливать Bun самостоятельно не нужно. Если вы видите ошибку
«bundled Bun runtime is missing», значит при установке были пропущены lifecycle-скрипты
(в том числе когда npm блокирует postinstall Bun через allowScripts) или опциональные
зависимости. Переустановите пакет без этих флагов, разрешив установочный скрипт Bun:
npm install -g --allow-scripts=bun @bitkyc08/opencodex # без --ignore-scripts и без --omit=optional
# если первоначальная установка выполнялась через sudo, продолжайте использовать sudo:
sudo npm install -g --allow-scripts=bun @bitkyc08/opencodexСобственное предупреждение npm предлагает сокращённую команду без имени пакета —
такая команда переустановит текущий каталог, поэтому всегда указывайте
@bitkyc08/opencodex явно.
Если вы устанавливали пакет через sudo в prefix, принадлежащий root, показанная выше
переустановка с sudo разблокирует этот prefix — но при возможности лучше перейти на Node,
принадлежащий пользователю (nvm, fnm или пользовательский prefix npm).
Быстрее всего добавить провайдера через веб-панель управления:
ocx guiКоманда откроет панель управления по адресу http://localhost:10100. Далее:
- Нажмите «Add Provider»
- Выберите одного из более чем 40 встроенных провайдеров — или укажите собственный OpenAI-совместимый эндпоинт
- Вставьте свой API-ключ (или войдите через OAuth для Anthropic, xAI и Kimi)
- Модели обнаруживаются автоматически через эндпоинт провайдера
/v1/models
Новый провайдер готов к работе сразу же. Перезапуск не требуется.
Провайдеров также можно добавлять через ocx init (интерактивный CLI) или напрямую редактируя ~/.opencodex/config.json.
Обращайтесь к любому настроенному провайдеру и модели с помощью синтаксиса provider/model:
Провайдеры, у которых собственные id моделей содержат / (zenmux, openrouter, nvidia, …),
отображаются в Codex с внутренними слэшами, заменёнными на - (например,
zenmux/moonshotai-kimi-k3-free); прокси прозрачно преобразует такие id обратно в нативные,
а исходная форма со всеми слэшами тоже продолжает работать.
# Claude Opus через Anthropic
codex -m "anthropic/claude-opus-5" "Explain this stack trace"
# Gemini через Google
codex -m "google/gemini-3-pro" "Write unit tests for auth.ts"
# GLM через Ollama Cloud
codex -m "ollama-cloud/glm-5.2" "Write a SQL migration"
# Локальная модель через Ollama
codex -m "ollama/llama3" "Refactor this function"Если префикс provider/ опущен, opencodex направляет запрос провайдеру по умолчанию — либо автоматически подбирает провайдера по шаблону имени модели (например, claude-* уходит в Anthropic, gpt-* — в OpenAI).
Маршрутизируемые модели также появляются в селекторе моделей Codex App с настройками уровня рассуждений для каждой модели:
Актуальные сборки Codex могут показывать уровни рассуждений low, medium, high, xhigh,
max и ultra, если модель их объявляет. opencodex сохраняет xhigh и max как разные уровни,
пока конфигурация провайдера явно не сопоставит один другому. ultra повторяет семантику
оригинального Codex: этот уровень включает максимальные рассуждения и проактивное мультиагентное
делегирование на стороне клиента, а перед отправкой запроса провайдеру преобразуется в max.
Маршрутизируемые модели объявляют его только тогда, когда конфигурация провайдера включает его
через reasoningEfforts.
GPT-5.6 Sol/Terra/Luna добавлены как готовые к развёртыванию записи каталога для пресетов
OpenAI API-ключа и OpenRouter (gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna; OpenRouter
использует openai/...). Их доступность по-прежнему ограничена превью-доступом на вышестоящей
стороне; opencodex лишь подготавливает маршрутизацию и метаданные каталога для аккаунтов и
провайдеров, которые могут их обслуживать.
| ID провайдера | Маршрут | Учётные данные | Поведение |
|---|---|---|---|
openai |
Вход Codex | Основной + добавленные аккаунты Codex | По умолчанию Pool; опциональный режим Direct |
openai-apikey |
OpenAI API | API-ключ / пул ключей | Без маршрутизации аккаунтов Codex |
- Режим Pool охватывает основной вход Codex и добавленные аккаунты, поддерживая привязку (affinity), квоты, кулдаун и отказоустойчивое переключение (failover).
- Режим Direct обходит состояние пула и использует только bearer-токен текущего вызывающего или основного входа.
- Для новых установок и конфигураций без сохранённого режима по умолчанию действует Pool. Режим меняется на странице Providers панели управления; id моделей в обоих режимах остаются без префикса.
- Устаревший публичный id провайдера
chatgptпосле миграции скрывается. Исходная конфигурация однократно сохраняется в~/.opencodex/config.json.pre-openai-tiers-v2.bak; восстановить её можно командойcp ~/.opencodex/config.json.pre-openai-tiers-v2.bak ~/.opencodex/config.json. - Актуальные конфигурации используют
openaiProviderTierVersion: 2. Более ранние конфигурации v1 с тремя провайдерами автоматически мигрируют в единственную записьopenai. - Уровень API включает виртуальные Pro-модели (
gpt-5.6-sol-pro,gpt-5.6-terra-pro,gpt-5.6-luna-pro). На уровне протокола каждая из них переписывается в свою базовую модель сreasoning.mode: "pro". - Его каталог зафиксирован на восьми id:
gpt-5.5,gpt-5.6, Sol/Terra/Luna и три соответствующих виртуальных Pro-id. Обобщённого алиасаgpt-5.6-proне существует. - Compact-запросы сохраняют выбранный уровень, но отправляют базовую модель без объекта reasoning.
- Официальные метаданные API: контекст 1 050 000 токенов и максимум 922 000 входных токенов.
Используйте gpt-5.6-sol для настроенного режима аккаунтов openai и
openai-apikey/gpt-5.6-sol для API-ключа. Учётные данные входа Codex и API никогда не подменяют
друг друга.
Откройте раздел Codex Auth в панели управления, чтобы добавить аккаунты и выбрать, какой из них обслужит следующую сессию Codex. opencodex гарантирует следующее поведение:
- Существующие сессии сохраняют привязку. Идентификатор треда привязывается к выбранному аккаунту и переиспользуется на последующих ходах, поэтому длинный запрос или сессия с мобильного устройства либо по SSH продолжает работать с тем же аккаунтом.
- Новые сессии могут маршрутизироваться автоматически. При включённом автопереключении opencodex сравнивает самое «горячее» из известных окон квоты по использованию за 5 ч, неделю и 30 дней и, как только активный аккаунт пересекает порог, выбирает для новых сессий подходящий аккаунт с меньшим использованием.
- Проверка квот встроена. Панель управления обновляет квоты всех аккаунтов одним кликом, а журнал запросов помечает трафик пула порядковыми номерами аккаунтов без персональных данных.
- Сбои обрабатываются безопасно (fail closed). При сбое токена аккаунт помечается как требующий переавторизации вместо тихого перехода на другие учётные данные; ответы 429 о превышении квоты отправляют аккаунт в кулдаун, а последующая работа может быть переключена на другой подходящий аккаунт пула.
- Любая LLM в Codex. Пять протокольных адаптеров покрывают Anthropic Messages, Google Gemini, Azure, сквозной режим OpenAI Responses и любой OpenAI-совместимый эндпоинт Chat Completions — это более 40 провайдеров из коробки.
- Любая LLM и в Claude Code. Тот же демон обслуживает Anthropic Messages API (
/v1/messages+count_tokens):ocx claudeзапускает Claude Code с полностью готовой конфигурацией, а маршрутизируемые модели появляются в его родном селекторе/modelблагодаря обнаружению моделей через шлюз (алиасыclaude-ocx-<provider>--<model>, Claude Code 2.1.129+). Слоты и сопоставления моделей настраиваются на странице Claude панели управления. - Безопасный пул аккаунтов ChatGPT. Существующие треды Codex остаются на одном аккаунте, а новые сессии могут автоматически выбирать из пула аккаунт с меньшим использованием — с обновлением квот и метками запросов без персональных данных.
- Один вход — и никаких API-ключей. Поддержка OAuth для xAI, Anthropic и Kimi позволяет аутентифицироваться существующим аккаунтом; токены обновляются автоматически. Либо пробросьте свой
codex login, вставьте API-ключ или используйте ссылки вида${ENV_VAR}— как вам удобнее. - Работает везде, где работает Codex. Автоматически встраивается в Codex CLI, TUI, App и SDK. Маршрутизируемые модели отображаются в селекторе моделей Codex наравне с нативными.
- Встраивание без риска для истории. При локальной установке прокси перенаправляет встроенный провайдер Codex
openaiна себя одной строкойopenai_base_url— новые треды сохраняют нативный тег провайдера, поэтому текущая история чатов никогда не перепривязывается, и даже некорректное завершение работы не может её скрыть. (Треды, перетегированные старыми версиями, однократно мигрируются обратно при первом запуске; при удалённой/LAN-привязке вместо этого используется отдельная запись провайдера, поскольку ей нужен заголовок с API-ключом.) - Делегируйте задачи подходящей модели. Через панель управления или конфигурацию можно вывести до пяти маршрутизируемых или нативных моделей в селектор подагентов Codex — сложные задачи отправляйте модели с развитыми рассуждениями, быстрые — дешёвой. На мультиагентной поверхности v2 (GPT-5.6 Sol/Terra) прокси внедряет компактные указания по делегированию: предпочтительную модель и уровень рассуждений подагента (
injectionModel/injectionEffort), список отобранных моделей со шкалой уровней, которую поддерживает каждая из них, и правилаfork_turns, позволяющие кросс-модельным вызовамspawn_agentприменять свои переопределения. Известное ограничение: когда нативный родитель порождает маршрутизируемого потомка, тело задачи в настоящий момент может прийти зашифрованным на бэкенде и потеряться (#92) — для надёжного делегирования между провайдерами используйте поверхность v1. Хотите свои формулировки? ЗадайтеinjectionPromptс плейсхолдерами{{model}}/{{effort}}/{{roster}}. - Готовность к превью-релизам OpenAI. Записи GPT-5.6 Sol/Terra/Luna сохраняют исходные шкалы уровней рассуждений. Direct/Multi используют контракт Codex на 372k токенов; OpenAI API и OpenRouter — метаданные на 1.05M, когда открыт вышестоящий доступ.
- Суперспособности для любой модели. Модели не от OpenAI получают настоящий веб-поиск и понимание изображений через сайдкар
gpt-5.4-mini, работающий поверх вашего входа ChatGPT. - Нативная генерация изображений. Автономный инструмент Codex
image_genиспользуетPOST /v1/images/generationsдля генерации иPOST /v1/images/editsдля правок; он не связан с размещённым инструментом Responsesimage_generation. - Видно, что происходит. Веб-панель управления показывает провайдеров, статус OAuth, выбор моделей и живой журнал запросов, включая количество кэшированных и записанных в кэш токенов, когда вышестоящий провайдер их сообщает, — больше не нужно гадать, почему запрос не прошёл.
- Работает в фоне. Установите как системную службу (launchd / systemd / Task Scheduler) и забудьте о ней. На macOS/Linux прокси стартует при входе в систему; на Windows бэкенд Task Scheduler по умолчанию запускается при входе (без окон), либо используйте
ocx service install --native, чтобы получить полноценную службу Windows, стартующую при загрузке. - Чистый выход без следов.
ocx stop(или кнопка Stop в панели управления) завершает работу прокси, останавливает фоновую службу, если она установлена, и возвращает Codex к исходной конфигурации. Обычныйcodexработает ровно так же, как раньше, — без остатков конфигурации и осиротевших процессов.
| Провайдер | Адаптер | Аутентификация |
|---|---|---|
| OpenAI (вход ChatGPT) | openai-responses |
forward (ключ не нужен) |
| OpenAI (API-ключ) | openai-responses |
key |
| Umans AI Coding Plan | anthropic |
key |
| Anthropic Claude | anthropic |
oauth / key |
| xAI Grok | openai-chat |
oauth / key |
| Kimi (Moonshot) | openai-chat |
oauth / key |
| Google Gemini | google |
key |
| Azure OpenAI | azure-openai |
key |
| Cursor (экспериментально) | cursor |
панель управления/локальный конфиг; живой транспорт; небезопасное нативное локальное выполнение включается явно |
| Ollama Cloud + каталог из 17 провайдеров | openai-chat |
key |
| Ollama / vLLM / LM Studio (локально) | openai-chat |
key (обычно пустой) |
| Любой OpenAI-совместимый эндпоинт | openai-chat |
key |
А также DeepSeek, Groq, OpenRouter, Together, Fireworks, Cerebras, Mistral, Hugging Face, NVIDIA NIM, MiniMax, Qwen Cloud, Tencent Cloud Coding Plan, SiliconFlow и другие. Полный список — в ocx init или в документации по провайдерам.
Поддержка Cursor — поэтапный экспериментальный мост: он появляется в ocx init и в селекторе
Add Provider панели управления как локальная конфигурация со статическим публичным каталогом
моделей Cursor. Живой транспорт HTTP/2 включается, когда настроен токен доступа Cursor.
Управляемое сервером Cursor нативное выполнение read/write/delete/ls/grep/shell/fetch по умолчанию
отключено, поскольку оно обходит механизм подтверждений и песочницу Codex; устанавливайте
unsafeAllowNativeLocalExec: true только для доверенных локальных экспериментов.
MCP, запись экрана и computer-use доступны через хуки исполнителя; если локальный исполнитель
не настроен, opencodex возвращает типизированные ответы об отсутствии исполнителя вместо
блокировки запроса политикой.
Для экспериментального адаптера Cursor включены Cursor OAuth и живое обнаружение моделей.
ocx init # интерактивная настройка
ocx start [--port 10100] # запустить прокси; если порт занят, выбирается свободный
ocx stop # остановить + восстановить нативный Codex
ocx restore # восстановить без остановки (алиас: ocx eject)
ocx uninstall # удалить службу/shim/конфигурацию и восстановить нативный Codex
ocx ensure # запустить при необходимости + обновить конфигурацию/кэш Codex
ocx sync # обновить модели + заново встроиться в Codex
ocx codex-shim install # выполнять `ocx ensure` при каждом запуске `codex`
ocx status # работает ли прокси?
ocx login <provider> # вход через OAuth (xai, anthropic, kimi, cursor, ...)
ocx logout <provider> # удалить сохранённый вход
ocx account <list|current|use> # просмотр/переключение аккаунтов и пулов API-ключей (маскировано; также refresh/auto-switch/remove/add-key)
ocx gui # открыть веб-панель управления
ocx claude [args...] # запустить Claude Code, подключённый к прокси (обнаружение моделей включено)
ocx service [install|start|stop|status|uninstall] # установить/обновить/запустить фоновую службу
ocx update [--tag preview] # обновить opencodex; preview-установки остаются на @previewУ opencodex есть два способа автоматически запускать прокси:
ocx service / ocx service install |
ocx codex-shim install |
|
|---|---|---|
| Как | Менеджер служб ОС (launchd / systemd / schtasks) | Оборачивает скриптовые лончеры codex; настоящий codex.exe не затрагивается |
| Когда | Всегда работает после входа в систему | По требованию — выполняет ocx ensure при запуске codex |
| Перезапуск | Автоматический перезапуск при сбое | Запускается один раз на каждый вызов codex |
| Обновления Codex | Не влияют | Стабильно заменённый лончер восстанавливается следующей обычной командой ocx |
| Удаление | ocx service uninstall |
ocx codex-shim uninstall |
Используйте службу, если прокси должен работать постоянно (рекомендуется для машин разработчиков).
Если внешнее обновление Codex перезапишет установленный shim, следующая обычная команда ocx
сохранит стабильный новый лончер в резервную копию и восстановит shim. Лончер, который ещё меняется,
остаётся нетронутым до следующей команды. Ошибка восстановления выдаёт предупреждение, но не приводит
к сбою запрошенной команды; ручной вариант — ocx codex-shim install. Для отключения установите
codexShimAutoRestore в false или задайте процессу
OPENCODEX_CODEX_SHIM_AUTO_RESTORE=0.
Используйте shim для лёгкого запуска прокси по требованию без фонового демона. Автозапуск через
shim включён по умолчанию и отключается в GUI-панели управления. Если настроенный порт прокси уже
занят, ocx start автоматически выберет другой свободный локальный порт и обновит настройки Codex.
Прежде чем удалять npm-пакет, очистите локальное состояние:
ocx uninstall
npm uninstall -g @bitkyc08/opencodexocx uninstall останавливает прокси, удаляет установленную службу, удаляет shim для Codex,
восстанавливает нативные конфигурацию/каталог/историю Codex и удаляет ~/.opencodex.
Конфигурация хранится в ~/.opencodex/config.json. Если файл не удаётся разобрать (например,
JSON обрезан или испорчен вручную), opencodex сохраняет его резервную копию в
config.json.invalid-<timestamp>, выводит предупреждение и переходит на значения по умолчанию —
исходный файл никогда не теряется молча.
Типичная конфигурация с несколькими провайдерами:
{
"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"
}
}
}Записи провайдеров могут также задавать метаданные маршрутизируемого каталога. Используйте
contextWindow для видимого в Codex лимита контекста на весь провайдер, modelContextWindows —
для лимитов отдельных моделей, а modelInputModalities — для подсказок каталога
о входных модальностях конкретных моделей, например ["text"] или ["text", "image"]. Значения контекста лишь
ограничивают живые метаданные /models сверху; они никогда не увеличивают меньшее живое
контекстное окно. Встроенные резервные метаданные GPT-5.6 Sol/Terra/Luna используют контекстное
окно в 1 050 000 токенов для записей каталога OpenAI API-ключа и OpenRouter; вышестоящий
превью-доступ они не обходят. Полный список полей — в справочнике по конфигурации.
Контекст 1M у GLM-5.2 через Z.AI: через адаптер
openai-chatработают иglm-5.2, иglm-5.2[1m]— opencodex отрезает завершающий суффикс[1m]перед отправкой запроса, поскольку OpenAI-совместимые эндпоинты отклоняют id со скобками (Z.AI 400, код 1211). Суффикс[1m]— это конвенция Claude Code / эндпоинтов Anthropic; чтобы использовать его нативно, направьте адаптерanthropicна кодинговую базу Z.AI (https://api.z.ai/api/coding/paas/v4). Контекстное окно 1M задавайте через каталог моделей (modelContextWindows), а не через имя модели.
Локальные модели тоже работают. Направьте opencodex на любой OpenAI-совместимый сервер, запущенный на вашей машине:
{
"port": 10100,
"defaultProvider": "ollama",
"providers": {
"ollama": {
"adapter": "openai-chat",
"baseUrl": "http://localhost:11434/v1",
"authMode": "key",
"apiKey": "",
"defaultModel": "llama3"
},
"vllm": {
"adapter": "openai-chat",
"baseUrl": "http://localhost:8000/v1",
"authMode": "key",
"apiKey": "",
"defaultModel": "Qwen/Qwen3-32B"
}
}
}Транспорт WebSocket по умолчанию выключен. Устанавливайте "websockets": true, только если хотите, чтобы Codex объявлял и использовал WebSocket-путь Responses вместо HTTP/SSE.
По умолчанию opencodex привязывается к 127.0.0.1 (loopback) и не требует дополнительной аутентификации.
Если вы задаёте "hostname": "0.0.0.0", открывая прокси в локальной сети, opencodex требует bearer-токен
для защиты как управляющего API (/api/*), так и плоскости данных (/v1/responses,
/v1/images/generations и /v1/images/edits):
export OPENCODEX_API_AUTH_TOKEN="your-secret-token"
ocx startБез этой переменной прокси откажется запускаться при привязке за пределами loopback. Если вы
устанавливаете фоновую службу для доступа из локальной сети, экспортируйте ту же переменную перед
ocx service install, чтобы менеджер служб её получил.
Клиенты (скрипты, удалённые машины) должны передавать токен в каждом запросе:
x-opencodex-api-key: your-secret-tokenТокен сравнивается за постоянное время для защиты от атак по времени.
opencodex автоматически перепривязывает историю возобновления Codex, чтобы старые чаты OpenAI и
созданные opencodex проектные треды оставались видимыми в Codex App, пока прокси активен. Исходные
метаданные provider/source opencodex записывает в ~/.opencodex/codex-history-backup.json.
ocx stop / ocx restore возвращает сохранённые в резервной копии строки OpenAI обратно к OpenAI,
а оставшиеся пользовательские треды opencodex также переводит на OpenAI, чтобы нативный Codex
не пытался возобновить тред, провайдера которого больше нет в config.toml.
Если вы тестировали более старую сборку для разработки, где syncResumeHistory перепривязывал
историю ещё до появления поддержки резервных копий, можно выполнить явную команду восстановления:
ocx recover-history --legacy-openaiОписание всех полей — в справочнике по конфигурации.
Публичная документация — установка, провайдеры, маршрутизация, сайдкары, интеграция с Codex, селектор моделей Codex App и справочник по CLI/конфигурации — собирается из docs-site/ и публикуется на opencodex.me.
Заметки мейнтейнеров, служащие источником истины, находятся в structure/. Материалы прошлых исследований хранятся в docs/.
Инструкции для контрибьюторов — в CONTRIBUTING.md, а порядок сообщений
о проблемах безопасности — в SECURITY.md.
git clone https://github.com/lidge-jun/opencodex.git
cd opencodex
bun install
bun run dev:proxy # запустить API прокси в dev-режиме
bun run dev:gui # запустить dev-сервер панели управления в другом терминале
bun x tsc --noEmit # проверка типовbun run dev для совместимости остаётся алиасом bun run dev:proxy. В чекауте исходников API прокси
предоставляет /healthz, /v1/responses, POST /v1/images/generations,
POST /v1/images/edits и /api/*; GET / отдаёт упакованную панель управления только после того, как
bun run build:gui создаст gui/dist. Пока вы работаете над панелью управления, запускайте фронтенд отдельно:
bun run dev:guiСм. руководство для контрибьюторов.
opencodex — независимый проект, поддерживаемый сообществом; он не аффилирован с OpenAI, Anthropic или каким-либо другим провайдером и не одобрен ими.
Некоторые провайдеры — в частности Anthropic (Claude) — могут приостанавливать или ограничивать аккаунты, которые направляют API-трафик через сторонние прокси. Используйте на свой страх и риск (UAYOR). Прежде чем подключать провайдера, изучите его условия использования и убедитесь, что доступ через прокси разрешён. Мейнтейнеры opencodex не несут ответственности за какие-либо действия вышестоящих провайдеров в отношении аккаунтов.
MIT

