Codex CLI на предоплаченном балансе через один блок provider
Codex CLI подключается одним блоком model provider в ~/.codex/config.toml: в base_url указывается https://api.relayswitch.io/v1, а ключ хранится в переменной окружения. Работа с Codex не меняется, а каждый шаг списывается за токены с предоплаченного баланса через маршрут Responses.
01Что такое Codex и что здесь меняется
Codex CLI является консольным агентом для кодинга от OpenAI. В его конфигурации есть настройка model_provider со значением по умолчанию openai, поэтому запросы уходят на собственный интерфейс OpenAI. Эту настройку можно заменить: опишите своего провайдера в config.toml, указав адрес эндпоинта и имя переменной окружения, в которой хранится ключ, и направьте model_provider на него. Команды и способ работы с Codex остаются прежними; меняется только то, кто выставляет счет.
Codex говорит только на одном протоколе, Responses API от OpenAI: в справочнике по его конфигурации сказано, что wire_api поддерживает только значение responses. Поэтому у шлюза в первую очередь нужно проверить наличие /v1/responses, а не только /v1/chat/completions. Здесь есть оба маршрута, и Codex использует первый.
02config.toml: один блок provider
В блоке ниже четыре строки, и API-ключ в файл не записывается. Что значит каждая настройка:
model_providerвыбирает блок по имени его таблицы. Имя вы задаете сами, ноopenai,ollama,lmstudio,amazon-bedrock,amazon-bedrock-runtimeиgcpявляются встроенными ID Codex, и переопределить их нельзя.- В
base_urlуказывается https://api.relayswitch.io/v1, с/v1; Codex добавляет к нему/responses. env_keyсодержит имя переменной окружения, в которой хранится ключ, а не сам ключ. Поскольку ключ остается в переменной окружения, файл конфигурации можно безопасно коммитить и синхронизировать.- У
wire_apiтолько одно допустимое значение,responses, и оно же стоит по умолчанию, так что эту строку можно удалить. requires_openai_authпо умолчанию равенfalse, и писать его не нужно: пользовательский провайдер использует ключ изenv_key, а не вход в аккаунт OpenAI.
# ~/.codex/config.tomlmodel = "gpt-6.1-sol"model_provider = "relayswitch" [model_providers.relayswitch]name = "RelaySwitch"base_url = "https://api.relayswitch.io/v1"env_key = "RELAYSWITCH_API_KEY"wire_api = "responses"03Сохраните ключ в переменной окружения и запустите codex
Запишите этот блок в ~/.codex/config.toml. Этот каталог задается переменной окружения CODEX_HOME и по умолчанию равен ~/.codex; провайдер нужно описывать именно в этом файле уровня пользователя. Затем выполните export ключа в терминале, где запускается Codex, и начинайте. Добавьте строку export в конфигурационный файл своего shell, чтобы новые терминалы тоже ее получали.
export RELAYSWITCH_API_KEY="sk-relay-..."codex04Проверьте маршрут Responses через curl
Перед запуском Codex отправьте один небольшой запрос Responses, чтобы убедиться, что ключ и адрес верны. Опция -i выводит строку статуса и заголовки ответа, включая ID запроса.
Если пришел ответ 200, запустите codex и отправьте первую команду. Этот запрос появится на странице Usage в консоли через несколько секунд, вместе с токенами и стоимостью. Чтобы временно сменить модель, используйте codex --model с нужным ID.
curl -i https://api.relayswitch.io/v1/responses \ -H "Authorization: Bearer sk-relay-..." \ -H "content-type: application/json" \ -d '{"model": "gpt-6.1-sol", "input": "Reply with ok"}'05Цены на модели GPT и стоимость одной задачи
В этой таблице модели GPT из каталога, в USD за миллион токенов, с отдельными ценами на вход, кешированный вход и выход. Codex рассчитан на модели GPT и маршрут Responses, поэтому убедитесь, что ID, который вы пишете в config.toml, отвечает на проверку через curl выше.
Codex на каждом шаге заново отправляет диалог и вывод инструментов. Эти токены оплачиваются по цене кешированного входа, когда попадают в кеш, и ответ сообщает число кешированных токенов; попадут они в кеш или нет, зависит от модели и самого запроса. Отсюда конкретные способы экономить: используйте более дешевую модель для повседневных правок и переходите на более дорогую только для сложных ревью и рефакторинга, начинайте новую сессию после завершения задачи, чтобы контекст не рос бесконечно, и создайте отдельный ключ для Codex с бюджетом в долларах и дневным лимитом расходов. Когда лимит достигнут, шлюз отвечает 402 и останавливается только этот ключ; остальной баланс аккаунта не затрагивается.
| Модель | Разработчик | Вход | Выход | Контекст |
|---|---|---|---|---|
| GPT-6.1 Solgpt-6.1-sol | OpenAI | $0.582 | $2.91 | 1,050,000 |
| GPT-6 Lunagpt-6-luna | OpenAI | $0.0625 | $0.20 | 1,050,000 |
| GPT-6 Solgpt-6-sol | OpenAI | $0.60 | $3.00 | 1,050,000 |
| GPT-6 Astragpt-6-astra | OpenAI | $3.00 | $15.00 | 1,050,000 |
| GPT-5.6 Lunagpt-5.6-luna | OpenAI | $0.12 | $0.72 | 1,050,000 |
| GPT-5.6 Solgpt-5.6-sol | OpenAI | $1.20 | $3.00 | 1,050,000 |
| GPT-5.6 Terragpt-5.6-terra | OpenAI | $1.20 | $3.60 | 1,050,000 |
| GPT-5.5gpt-5.5 | OpenAI | $1.80 | $9.00 | 1,050,000 |
| GPT-5.4 Minigpt-5.4-mini | OpenAI | $0.75 | $4.50 | 400,000 |
| GPT-5.4gpt-5.4 | OpenAI | $1.50 | $9.00 | 1,050,000 |
| GPT-5.3-Codexgpt-5.3-codex | OpenAI | $1.75 | $14.00 | 400,000 |
| GPT-4o minigpt-4o-mini | OpenAI | $0.15 | $0.60 | 128,000 |
| GPT-4ogpt-4o | OpenAI | $2.50 | $10.00 | 128,000 |
| GPT-4.1 Nanogpt-4.1-nano | OpenAI | $0.10 | $0.40 | 1,048,576 |
| GPT 5.4 Nanogpt-5.4-nano | OpenAI | $0.40 | $2.50 | 400,000 |
| GPT 5.6gpt-5.6 | OpenAI | $0.9412 | $4.7059 | 1,050,000 |
| GPT 6.1 Terragpt-6.1-terra | OpenAI | $0.2941 | $1.4706 | 1,000,000 |
| gpt-oss-120bgpt-oss-120b | OpenAI | $0.20 | $1.80 | |
| gpt-oss-20bgpt-oss-20b | OpenAI | $0.16 | $0.72 |
USD за миллион токенов
06Профили для моделей и меню /model
Профиль представляет собой файл с именем ~/.codex/<name>.config.toml, в котором записаны только строки, отличающиеся от config.toml; он накладывается поверх него, когда Codex запускается командой codex --profile <name>. Начиная с Codex 0.134.0 таблицы [profiles.<name>] внутри config.toml больше не читаются, а селектор profile = верхнего уровня удален; руководства, написанные до этого, используют старый способ и при копировании не работают. Значение model_reasoning_effort должно соответствовать уровням, которые поддерживает выбранная модель; Codex отправляет его в каждом запросе, а шлюз передает модели как есть.
При работе с пользовательским провайдером меню /model в Codex по-прежнему показывает встроенные модели OpenAI, а не модели вашего провайдера. Выбор любой из них перезапишет активный файл профиля: модель сменится, провайдер нет. Если записанный ID есть в каталоге, Codex работает по цене этой модели; если нет, придет ответ 404. Чтобы сменить модель, используйте --profile или --model.
07Частые ошибки
Статусы с 401 по 404 возвращаются до того, как запрос дошел до модели, а 429, 502 и 503 не несут ответа; ни один из них не оплачивается. Полная таблица по статусам есть на странице OpenAI API. Для кодинга с Claude в терминале используйте Claude Code; оба инструмента работают с одним ключом и балансом, а как создать ключ, описано на странице Claude API ключ.
| 401 | Ключ неверен или уже отозван, либо RELAYSWITCH_API_KEY пуста в терминале, где запускается Codex. Выполните export еще раз и перезапустите. |
| 402 | Баланса не хватает, или бюджет ключа исчерпан. Все заработает, как только вы пополните баланс или поднимете бюджет. |
| 404 | ID модели нет в каталоге, обычно потому, что меню /model перезаписало профиль. Верните строку model. |
| 429 | Достигнут лимит частоты запросов ключа. Подождите столько, сколько указано в заголовке retry-after, или поднимите лимит запросов в минуту для этого ключа в консоли. |
| Блок provider не применяется | Имя таблицы совпадает со встроенным ID, или в model_provider указано не имя этой таблицы. |
| Профиль не применяется | Он все еще записан как таблица [profiles.<name>] в config.toml; перенесите его строки в отдельный файл. |
Частые вопросы
- Что такое Codex CLI?
- Codex CLI является консольным агентом для кодинга от OpenAI. Настройка model_provider в его конфигурации определяет, куда уходят запросы; по умолчанию она равна openai, и ее можно направить на провайдера, которого вы сами описали в config.toml.
- Как настроить Codex со своим API-ключом?
- Добавьте в ~/.codex/config.toml блок model_providers.relayswitch с полями name, base_url (https://api.relayswitch.io/v1) и env_key (RELAYSWITCH_API_KEY). Затем укажите на верхнем уровне model_provider со значением relayswitch и model с одним из ID GPT из каталога. Сохраните ключ в переменной окружения через export и запустите codex.
- Нужен ли аккаунт ChatGPT или API-ключ OpenAI?
- Согласно справочнику по конфигурации Codex, requires_openai_auth у пользовательского провайдера по умолчанию равен false, а запросы аутентифицируются ключом из переменной окружения, на которую указывает env_key. Ваш аккаунт и баланс находятся в RelaySwitch, а ключ начинается с sk-relay-.
- Нужен ли /v1 в base_url и что писать в wire_api?
- В base_url указывается https://api.relayswitch.io/v1, с /v1; Codex добавляет к нему /responses. У wire_api только одно допустимое значение, responses, и оно же стоит по умолчанию, так что строку можно удалить. Значение chat из старых руководств больше не работает.
- Как узнать, что модель не подменили незаметно?
- Две вещи вы можете проверить сами. Каждая модель раз в сутки получает один и тот же тестовый промпт, и ответ сравнивается с предыдущими результатами; результаты открыты по адресу https://api.relayswitch.io/v1/proof. У каждого запроса также есть подписанная квитанция, где записаны ID модели, оплаченные токены и стоимость. Значение model_reasoning_effort Codex отправляет в каждом запросе, и шлюз передает его модели как есть.
- Токены в Codex кажутся дорогими, как сэкономить?
- Codex на каждом шаге заново отправляет диалог и вывод инструментов, поэтому расходы приходятся в основном на вход и кешированный вход. Три способа: более дешевая модель для повседневных правок и дорогая только для сложных задач, новая сессия после завершения задачи, а также бюджет в долларах и дневной лимит на ключе Codex, чтобы он останавливался при достижении лимита.
Один блок provider, одна переменная окружения
base_url https://api.relayswitch.io/v1, модели GPT оплачиваются за токены по ценам каталога, а ежедневная проверка открыта для всех.