Диагностика · Codex CLI
Ошибки config.toml в Codex — рабочая настройка model_providers
Codex не загружает кривой ~/.codex/config.toml: неизвестные имена провайдеров, неверный wire_api, отсутствующие секции. Точная структура, которая нужна своему провайдеру.
Что вы видите
codex config.toml errorПочему возникает
- model_provider называет провайдера без соответствующей секции [model_providers.<name>] — ссылка и секция должны использовать один и тот же идентификатор.
- Синтаксические ошибки TOML: незакрытая строка, опечатка в заголовке секции или значения, вставленные из JSON с запятыми и фигурными скобками.
- wire_api не совпадает с тем, что обслуживает эндпоинт, поэтому запросы собираются под не тот протокол.
- Правится не тот файл, который читает Codex, — у файла профиля, передаваемого через --profile, есть конкретное ожидаемое расположение и имя.
Что делать
- Держите идентификатор провайдера одинаковым в обоих местах: model_provider = "apitoken" должен совпадать с [model_providers.apitoken].
- Используйте wire_api = "responses" для эндпоинта Responses API — OpenAI-совместимая поверхность этого шлюза обслуживает Responses и Chat Completions.
- Проверьте, что файл — настоящий TOML: строки в кавычках, по одному key = value на строку, заголовки секций в квадратных скобках.
- Запустите codex --profile <name> и посмотрите, какой файл он сообщает при загрузке; правьте именно его, а не двойника.
Минимальный корректный профиль
model = "gpt-5.6-sol"
model_provider = "apitoken"
[model_providers.apitoken]
name = "apiToken.sale"
base_url = "https://openai.api.apitoken.sale/v1"
wire_api = "responses"
env_key = "APITOKEN_API_KEY"Похожие запросы
unknown model providercodex model_providers not working
Вопросы и ответы
Почему Codex говорит, что мой провайдер модели неизвестен?+
Значение model_provider должно точно совпадать с секцией [model_providers.<name>] в том же файле. Опечатка с любой стороны ломает поиск.
wire_api должен быть responses или chat?+
Тот, что обслуживает эндпоинт. OpenAI-совместимая поверхность этого шлюза принимает Responses API — wire_api = "responses" — а также Chat Completions.
Нужен ли /v1 в base_url?+
Для профилей Codex на этом шлюзе — да: задокументированное значение https://openai.api.apitoken.sale/v1, ровно как в документации.
Пропустите сломанную настройку
apiToken.sale отдаёт стандартный Anthropic API — те же модели, те же SDK, один предоплаченный баланс. Направьте base URL вашего инструмента на него, и конфигурация с этой страницы заработает как написано.