Codex: сторонний API, официальный вход и история
Сохраните официальный вход Codex при работе со сторонним API: ручная настройка или CC Switch. Параметры, дополнительные настройки, история и устранение ошибок.
Используйте BetterToken API Key для запросов к модели, сохраняя официальный вход Codex. Ручная настройка и CC Switch разделяют учётные данные официального аккаунта и стороннего API.
Перед началом
Войдите в официальный аккаунт в Codex App, Codex CLI или Extension. Подготовьте BetterToken API Key и полный Model ID из model plaza. Для общей конфигурации клиенты должны использовать одинаковый CODEX_HOME.
BetterToken API Key · model plaza
Способы настройки
Ручная настройка
Сохраните официальные учётные данные
Полностью закройте Codex и сохраните резервную копию конфигурации в защищённом месте. Официальные данные могут находиться в auth.json или системном хранилище. Сохраните текущий способ хранения, не заменяйте данные JSON с API Key и не создавайте фиктивный файл входа.
Отредактируйте config.toml
Откройте пользовательский config.toml: по умолчанию ~/.codex/config.toml в macOS / Linux или %USERPROFILE%\.codex\config.toml в Windows; при своём CODEX_HOME используйте его каталог. Объедините настройки, разместив корневые ключи перед таблицами TOML, без повторных таблиц. Локально замените YOUR_API_KEY на BetterToken API Key.
model_provider = "bettertoken"model = "gpt-6-astra"
[model_providers.bettertoken]name = "BetterToken"base_url = "https://bettertoken.ai/v1"wire_api = "responses"requires_openai_auth = trueexperimental_bearer_token = "YOUR_API_KEY"supports_websockets = falseСохраните данные официального входа; не заменяйте их JSON с API Key. requires_openai_auth = true использует официальный процесс авторизации; experimental_bearer_token текущего provider передаёт сторонний ключ в запросах к модели. При первом параметре Codex игнорирует env_key, поэтому не заменяйте им Bearer Key напрямую. Не публикуйте файл с ключом.
Параметры конфигурации
| Параметр | Назначение и расположение | Значения по умолчанию и примеры |
|---|---|---|
model_provider | Корень пользовательского файла; выбирает ID конфигурации ниже. | По умолчанию openai; здесь используется bettertoken. |
model | Корень файла; полный Model ID из model plaza. | Пример: gpt-6-astra; замените при необходимости. |
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. Это не переключатель сохранения файла входа. |
experimental_bearer_token | Таблица provider; Bearer Key для сторонних запросов. | Укажите BetterToken API Key. Кэш официального входа не перезаписывается. Параметр поддерживается, но ключ хранится открытым текстом. |
supports_websockets | Таблица provider; поддержка Responses WebSocket. | По умолчанию false; здесь используется HTTP/SSE. |
Дополнительные настройки модели и подключения
Эти два параметра находятся в корне config.toml. Используйте при необходимости; для сохранения входа они не обязательны.
review_model = "gpt-6-astra"model_reasoning_effort = "high"| Параметр | Назначение и расположение | Значения по умолчанию и примеры |
|---|---|---|
review_model | Корень файла; модель для /review. | Необязательно; по умолчанию модель текущего сеанса. |
model_reasoning_effort | Корень файла; интенсивность рассуждений модели. | Пример: high; доступные уровни и значения по умолчанию зависят от модели. |
Эти три настройки необязательны для подключения. При необходимости добавьте их в существующую таблицу [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; это не общий срок выполнения задачи. |
Настройка CC Switch
-
В текущем CC Switch сначала выберите OpenAI Official, запустите Codex и войдите в официальный аккаунт.
-
Откройте Настройки → Конфигурация приложений → Codex и включите Сохранять официальный вход при переключении без перехвата. Переключатель управляет прямым подключением; при перехвате маршрутизации вход сохраняется.
-
Добавьте или активируйте BetterToken на странице Codex. Укажите Base URL
https://bettertoken.ai/v1, OpenAI Responses API, BetterToken API Key и Model ID. BetterToken поддерживает Responses напрямую, без преобразования протокола и перехвата маршрутизации. -
Сохраните и активируйте настройку. Сторонний ключ записывается в provider внутри
config.toml, не в официальныйauth.json.
Единая история (необязательно)
Единая история сеансов Codex влияет только на список CLI resume. Текущая настольная версия уже показывает все сеансы; для неё переключатель не нужен. Выберите перенос существующей истории при необходимости: CC Switch сначала создаст резервную копию. Продолжение через другой provider может не работать из-за несовместимого encrypted_content; после переключения создайте новый сеанс.
Перезапустите и проверьте
-
Полностью закройте и перезапустите используемый клиент Codex, затем создайте новый сеанс.
-
Проверьте официальный вход, плагины или Remote Control в клиенте, который поддерживает эти функции.
-
Отправьте короткий запрос, проверьте выбранный Model ID и журнал использования BetterToken. Отображаемый аккаунт сам по себе не определяет, кто выставляет счёт за модель.
Уровни конфигурации и устаревшие ключи
Не размещайте модель и интенсивность рассуждений внутри [projects."<path>"]. Модель проекта можно задать корневыми ключами в .codex/config.toml доверенного проекта; provider и авторизация остаются в пользовательском файле. Современный именованный profile — файл NAME.config.toml внутри CODEX_HOME, выбираемый командой codex --profile NAME, а не старая таблица [profiles.NAME] или корневой ключ profile.
Устранение ошибок
| Симптом | Действие |
|---|---|
401, 403 или запрос входа | Проверьте текущий CODEX_HOME, официальный вход и сторонний ключ в provider; не заменяйте официальные данные JSON с API Key. |
| Настройки игнорируются или модель не меняется | Корневые ключи модели разместите перед таблицами TOML, не в [projects."<path>"]. Проверьте переопределения CLI, profile и проекта. |
disable_response_storage или windows_wsl_setup_acknowledged | Удалите старые ключи: для текущей настройки они не нужны. |
features.code_mode_tool_description_first | Если источник предупреждения — session-flags, проверьте и обновите клиент, задающий параметры запуска. Не добавляйте этот переключатель в пользовательский файл. |
features.guardianv2.thread_context | Удалите ключ, включая переопределения profile; сохраните остальные настройки Guardian. Контекст потока всегда включён. |
| История видна, но продолжение через другой provider не работает | Создайте новый сеанс или используйте исходный provider. |

