Codex Desktop и сторонний API: API-ключ и custom provider
Настройте Codex CLI и Codex App через config.toml, auth.json, BetterToken API Key и Base URL Responses. С настройкой, примерами и устранением частых ошибок.
Codex CLI и Codex App используют общие config.toml и auth.json для локальных задач. BetterToken API Key передаётся через OpenAI Responses.
Codex Desktop third-party API и API-ключ
Для подключения задайте model_provider = "bettertoken", Base URL https://bettertoken.ai/v1 и wire_api = "responses". Полную схему файла смотрите в руководстве по config.toml. Для VS Code используется отдельная конфигурация Codex Extension, а значения provider объясняет справка по model_provider и wire_api.
Ключевые параметры
| Поле | Значение |
|---|---|
| API Key | auth.json → OPENAI_API_KEY |
| Base URL | https://bettertoken.ai/v1 |
| Model | gpt-6-astra |
Подготовка
- Установите Node.js, если используете npm или скрипт Automatic setup от BetterToken
- Создайте API Key BetterToken
- Скопируйте Model ID из model plaza или окна Setup для ключа
Уже есть аккаунт? Войдите, пополните баланс и создайте ключ в консоли.
Установка
Можно использовать официальные автономные установщики для macOS/Linux или Windows без Node.js. Если предпочитаете npm, сначала установите Node.js, затем выполните:
npm install -g @openai/codexНайдите файлы и создайте резервные копии
Если задан свой CODEX_HOME, редактируйте config.toml и auth.json в этом каталоге. Иначе используйте ~/.codex в macOS / Linux или %USERPROFILE%\.codex в Windows. CLI и App должны использовать один каталог. В WSL каталог пользователя отдельный.
Перед изменениями полностью закройте Codex. Сохраните резервные копии обоих файлов в защищённом месте. Создайте отсутствующие файлы. Заменяйте существующие настройки, не добавляйте повторные ключи или таблицы; сохраните остальные параметры.
Настройка командой
Скрипт Automatic setup от BetterToken записывает конфигурацию provider для Codex. Для него нужен Node.js; если API Key или Model ID не переданы параметрами, скрипт запросит их интерактивно.
macOS / Linux
curl -fsSL "https://bettertoken.ai/install-codex-provider.sh" | bashWindows
iwr "https://bettertoken.ai/install-codex-provider.ps1" -OutFile "$env:TEMP\install-codex-provider.ps1"; powershell -ExecutionPolicy Bypass -File "$env:TEMP\install-codex-provider.ps1"После установки сверьте оба файла с ручной конфигурацией ниже и исправьте отличия до запуска Codex.
Ручная настройка
Измените config.toml
Здесь используется пользовательский config.toml. Разместите корневые ключи перед всеми таблицами TOML, не внутри [projects."<path>"]: эта таблица хранит trust_level проекта. ID выбранного provider должен совпадать с именем его таблицы. Для файловой авторизации удалите из выбранного provider поля env_key и experimental_bearer_token.
model_provider = "bettertoken"model = "gpt-6-astra"cli_auth_credentials_store = "file"
[model_providers.bettertoken]name = "BetterToken"base_url = "https://bettertoken.ai/v1"wire_api = "responses"requires_openai_auth = truesupports_websockets = falseВ примере используется GPT-6 Astra (gpt-6-astra). Для другой модели скопируйте полный ID из model plaza и замените model. GPT, Kimi и GLM используют одинаковую файловую авторизацию; автоматическая настройка доступна для GPT.
Измените auth.json
Файл auth.json находится в том же каталоге, что и config.toml. Если файла auth.json нет, создайте его в этом каталоге. Запишите в него следующий JSON, замените YOUR_API_KEY на свой BetterToken API Key и сохраните файл.
{ "auth_mode": "apikey", "OPENAI_API_KEY": "YOUR_API_KEY"}Параметры конфигурации
| Параметр | Назначение и расположение | Значения по умолчанию и примеры |
|---|---|---|
model_provider | Корень пользовательского файла; выбирает ID конфигурации ниже. | По умолчанию openai; здесь используется bettertoken. |
model | Корень файла; полный Model ID из model plaza. | Пример: gpt-6-astra; замените при необходимости. |
cli_auth_credentials_store | Корень файла; хранилище данных входа. | Здесь задано file: читается auth.json в том же каталоге. |
name | Таблица provider; только отображаемое имя. | BetterToken не является Model ID. |
base_url | Таблица provider; Base URL API модели. | Используйте https://bettertoken.ai/v1; Codex добавит /responses. |
wire_api | Таблица provider; протокол запросов. | Сейчас поддерживается только responses; это и значение по умолчанию. |
requires_openai_auth | Таблица provider; авторизация OpenAI и её хранилище. | По умолчанию false; здесь true. Это не переключатель сохранения файла входа. |
supports_websockets | Таблица provider; поддержка Responses WebSocket. | По умолчанию false; здесь используется HTTP/SSE. |
auth_mode | В auth.json; режим авторизации. | Здесь apikey: он заменяет официальную авторизацию ChatGPT. |
OPENAI_API_KEY | В auth.json; ключ для API-авторизации. | Замените YOUR_API_KEY на BetterToken API Key. |
Файловая авторизация здесь переключает Codex в режим API Key. Для сохранения официального аккаунта используйте отдельную настройку; не смешивайте режимы. Они различаются целью авторизации, а не клиентом CLI, App или Extension.
Дополнительные настройки
Эти три настройки необязательны для подключения. При необходимости добавьте их в существующую таблицу [model_providers.bettertoken], не создавая дубликат.
request_max_retries = 4stream_max_retries = 8stream_idle_timeout_ms = 300000| Параметр | Назначение и расположение | Значения по умолчанию и примеры |
|---|---|---|
request_max_retries | Таблица provider; число повторов HTTP-запроса. | По умолчанию 4; настройте под своё подключение. |
stream_max_retries | Таблица provider; повторы подключения после обрыва потока. | По умолчанию 5; 8 — дополнительное пользовательское значение. |
stream_idle_timeout_ms | Таблица provider; тайм-аут бездействия потока в миллисекундах. | По умолчанию 300000; это не общий срок выполнения задачи. |
Уровни конфигурации и устаревшие ключи
Не размещайте модель и интенсивность рассуждений внутри [projects."<path>"]. Модель проекта можно задать корневыми ключами в .codex/config.toml доверенного проекта; provider и авторизация остаются в пользовательском файле. Современный именованный profile — файл NAME.config.toml внутри CODEX_HOME, выбираемый командой codex --profile NAME, а не старая таблица [profiles.NAME] или корневой ключ profile.
Проверка подключения
Сохраните оба файла. Запустите новый сеанс Codex CLI прямо из терминала:
codexПолностью закройте Codex App, включая фоновые процессы, затем откройте его и создайте новую локальную задачу. Отправьте короткий запрос в каждом используемом клиенте. Нормальный ответ подтверждает подключение этого клиента.
Codex CLI 0.164.0 также прошёл тесты авторизации через переменные окружения, включая вызовы инструментов для чтения файлов: env_key работал как с requires_openai_auth = false, так и без этого поля.
Смена модели
Измените model и при необходимости review_model, сохраните файл и полностью перезапустите Codex. Используйте ID из окна Setup или model plaza.
Частые ошибки
При 401, 403 или запросе входа проверьте активный каталог, Key в auth.json, auth_mode = apikey, cli_auth_credentials_store = file и requires_openai_auth = true. При ошибке провайдера или модели проверьте совпадение ID провайдера, https://bettertoken.ai/v1, wire_api = responses и доступность модели. Если изменения не применились, проверьте переопределения конфигурации и убедитесь, что CLI и App используют один CODEX_HOME.
Расширенная настройка
Codex Extension
CLI, App и Extension используют общую конфигурацию при одинаковом CODEX_HOME. Выбирайте авторизацию по задаче: API Key или сохранение официального входа.
Связанные FAQ
Официальная документация
Технические детали
Протокол Responses
Codex использует OpenAI Responses. Укажите base_url = "https://bettertoken.ai/v1" и сохраните wire_api = "responses". Codex сам добавляет /responses.

