Как настроить Codex config.toml: собственный API, прокси и распространённые ошибки

AIHubMix7 мин чтения
Как настроить Codex config.toml: собственный API, прокси и распространённые ошибки

Codex хранит настройки в одном файле — config.toml: какую модель использовать, к какому API обращаться и что агент может делать без подтверждения. В 2026 году формат менялся несколько раз, поэтому во многих руководствах, опубликованных в начале года, указаны настройки, из-за которых Codex теперь не запускается.

Сначала в этом руководстве приведён рабочий конфиг, а затем разобраны настройки, которые чаще всего меняют: профили, параметры проекта, песочницу и прокси. В конце приведён список ошибок, с которыми вы можете столкнуться, и объяснение их значений. Сверено с документацией OpenAI и проверено на Codex CLI 0.162.1 19 октября 2026 года. В примерах используется AIHubMix; с любым шлюзом, поддерживающим OpenAI Responses API, всё работает так же.

Кратко

  • Файл находится по адресу ~/.codex/config.toml, а в Windows — C:\Users\<you>\.codex\config.toml.
  • Для собственного провайдера нужны base_url, wire_api = "responses" и env_key. Ключ API нужно указать в переменной окружения.
  • Профили теперь хранятся в отдельных файлах ~/.codex/<name>.config.toml; их выбирают с помощью --profile <name>.
  • Файл .codex/config.toml в репозитории работает только в доверенных проектах и не может менять провайдера.
  • После каждого изменения перезапускайте Codex: файл считывается только при запуске.

Где находится config.toml

Основные настройки хранятся в ~/.codex/config.toml. Этот файл читают и CLI, и расширение для IDE. Если файла ещё нет, создайте его.

Настройки также могут дополнять файлы в двух других местах:

  • Файлы профилей — ~/.codex/<name>.config.toml; используются, только если запустить Codex с параметром --profile <name>.
  • Файлы проекта — .codex/config.toml внутри репозитория; в них можно хранить настройки, которыми команда хочет делиться.

Если вы запускаете Codex в WSL2 на Windows, он использует домашнюю папку Linux (/home/<you>/.codex/config.toml), а не Windows. Если задана переменная CODEX_HOME, Codex использует указанную в ней папку вместо ~/.codex.

Минимальная рабочая конфигурация

Этот полный конфиг ~/.codex/config.toml направляет запросы Codex в AIHubMix:

model = "gpt-6-sol"
model_provider = "aihubmix"
model_reasoning_effort = "high"

[model_providers.aihubmix]
name = "AIHubMix"
base_url = "https://aihubmix.com/v1"
wire_api = "responses"
env_key = "AIHUBMIX_API_KEY"
  • model — идентификатор вызываемой модели, а model_reasoning_effort — используемый по умолчанию уровень рассуждений.
  • model_provider должен совпадать с именем в [model_providers.<name>]. Не используйте openai, ollama или lmstudio: эти имена зарезервированы для встроенных провайдеров Codex.
  • base_url — это адрес API провайдера. wire_api = "responses" — единственное значение, которое Codex принимает сейчас.
  • env_key — это название переменной окружения, а не сам ключ.

Затем задайте эту переменную, используя ключ из консоли AIHubMix:

# macOS / Linux: add this line to ~/.zshrc or ~/.bashrc, then open a new terminal
export AIHUBMIX_API_KEY=sk-...
# Windows PowerShell: takes effect in new terminals
setx AIHUBMIX_API_KEY "sk-..."

Откройте новый терминал, запустите codex и задайте любой вопрос. Если он ответит, значит, провайдер работает. Авторизация в Codex здесь не имеет значения: ключ из codex login никогда не отправляется пользовательскому провайдеру.

Профили: отдельный файл для каждой конфигурации

В профиле хранятся только настройки, отличающиеся от основного конфига, например более глубокий уровень рассуждений и доступ к песочнице только для чтения при проверке кода. Каждый профиль — отдельный файл рядом с config.toml; его ключи указываются на верхнем уровне:

# ~/.codex/review.config.toml
model_reasoning_effort = "xhigh"
sandbox_mode = "read-only"
codex --profile review

Это изменилось в Codex 0.134.0. В старых руководствах профили размещались внутри config.toml в секциях [profiles.review], а для выбора использовалась запись profile = "review". Теперь Codex отказывается запускаться с таким селектором. Оставшаяся секция [profiles.review] сама по себе игнорируется без предупреждения, поэтому её настройки незаметно перестают работать. Для перехода перенесите ключи каждой секции в файл ~/.codex/<name>.config.toml, затем удалите секцию и строку profile = .... Подробнее — в руководстве OpenAI по расширенной настройке.

Конфигурация проекта: .codex/config.toml

Файл .codex/config.toml в репозитории позволяет команде использовать общие настройки модели по умолчанию, уровня рассуждений или режима песочницы. Codex считывает его только в проектах, помеченных как доверенные в вашем собственном файле ~/.codex/config.toml:

[projects."/Users/you/code/my-app"]
trust_level = "trusted"

Файл проекта не может изменить адрес, на который отправляются запросы. Codex игнорирует в нём ключи model_provider, model_providers, openai_base_url, profile, notify и некоторые другие, выводя при этом предупреждение. Храните настройки провайдера в ~/.codex/config.toml. Модель в проекте выбрать всё же можно — запрос будет отправлен вашему провайдеру.

Какая настройка имеет приоритет

Если один и тот же ключ задан в нескольких местах, порядок приоритета, начиная с наивысшего, согласно разделу OpenAI Основы конфигурации, такой:

  1. Параметры командной строки, включая переопределения -c
  2. Файл проекта .codex/config.toml
  3. Профиль, выбранный с помощью --profile
  4. Ваш файл ~/.codex/config.toml
  5. Системный конфиг /etc/codex/config.toml
  6. Встроенные настройки Codex по умолчанию

Обратите внимание: настройки файла проекта имеют приоритет над профилем. Если настройка профиля, похоже, не работает, проверьте, не задан ли тот же ключ в .codex/config.toml репозитория.

Чтобы изменить настройку только для одного запуска, используйте -c:

codex -c model_reasoning_effort=high

Песочница и подтверждения

За самостоятельные действия Codex отвечают два ключа. sandbox_mode определяет, что могут делать команды, а approval_policy — когда Codex останавливается и запрашивает подтверждение.

sandbox_mode Что могут делать команды
read-only Чтение файлов; для любых других действий требуется подтверждение
workspace-write Запись в папку проекта и временные папки
danger-full-access Любые действия без песочницы
approval_policy Когда Codex запрашивает подтверждение
on-request Когда ему нужно выйти за пределы песочницы
never Никогда; заблокированные команды просто завершаются с ошибкой
sandbox_mode = "workspace-write"
approval_policy = "on-request"

[sandbox_workspace_write]
network_access = true   # off by default

Эти настройки независимы друг от друга: never отключает запросы подтверждения, но не ослабляет ограничения песочницы. В режиме workspace-write команды не могут обращаться к сети, пока вы не установите network_access = true.

Работа через прокси

В config.toml нет настройки прокси для Codex. Он использует стандартные переменные окружения:

export HTTPS_PROXY=http://127.0.0.1:7890   # your proxy address
export NO_PROXY=localhost,127.0.0.1

В документации OpenAI эти переменные не упоминаются, поэтому их работу проверили на Codex 0.162.1: запросы, в том числе к пользовательскому провайдеру, проходили через HTTPS_PROXY (или ALL_PROXY), а обращения к хостам из NO_PROXY выполнялись напрямую. Файлы PAC не поддерживаются, поэтому укажите непосредственно адрес прокси. Если в вашей компании прокси использует собственный корневой сертификат, задайте для CODEX_CA_CERTIFICATE путь к нему, как описано в справочнике по переменным окружения.

Дополнительные модели в /model

В списке выбора /model отображаются только модели OpenAI. Чтобы выбирать в нём модели GLM, Claude, Gemini или DeepSeek, добавьте каталог моделей: JSON-файл, указанный ключом верхнего уровня model_catalog_json. Разместите этот ключ перед первой строкой [table], иначе TOML сочтёт его частью этой секции, и Codex его проигнорирует.

Каталог заменяет встроенный список, а каждая запись требует множества полей, поэтому его лучше сгенерировать, а не составлять вручную. В руководстве AIHubMix по Codex CLI есть скрипт, который создаёт каталог из 30 наиболее популярных моделей на AIHubMix. Настольное приложение всё ещё может скрывать пользовательские модели в своём списке (openai/codex#19694), поэтому переключайте модели в терминале.

Распространённые ошибки и их значение

Ниже приведены сообщения, которые Codex 0.162.1 выводил для каждой из этих ошибок.

legacy profile = "..." config is no longer supported
В вашем config.toml всё ещё есть старая строка profile = "...". Перенесите профиль в отдельный файл, как описано выше. Если запустить --profile x, когда осталась старая секция [profiles.x], появится похожая ошибка: --profile x cannot be used while ... contains legacy ... config.

wire_api = "chat" is no longer supported
Codex больше не поддерживает Chat Completions API. Замените значение на wire_api = "responses". Провайдер, который поддерживает только Chat Completions, не будет работать без прокси для преобразования запросов.

model_providers contains reserved built-in provider IDs
Вы назвали провайдера openai, ollama или lmstudio. Переименуйте секцию и значение model_provider.

approval_policy = "untrusted" is no longer supported
Удалите эту строку или используйте on-request.

Missing environment variable: AIHUBMIX_API_KEY
Переменная, имя которой указано в env_key, не задана в терминале, из которого запущен Codex. Откройте новый терминал или выполните source ~/.zshrc, затем снова запустите Codex.

401 Unauthorized after a few "Reconnecting..." lines
Запрос был отправлен без ключа. Проверьте, задан ли env_key в секции провайдера. Данные авторизации из auth.json не подходят для пользовательских провайдеров.

Model metadata for ... not found. Defaulting to fallback metadata
В Codex нет встроенных настроек для этой модели, что нормально для моделей не от OpenAI. Запросы всё равно работают. Добавьте каталог моделей, если хотите получить подходящие настройки и отображение модели в /model.

Ignored unsupported project-local config keys
В файле .codex/config.toml репозитория задан ключ, который работает только в вашей конфигурации, обычно это model_provider. Перенесите его в ~/.codex/config.toml.

missing field base_instructions
В записи каталога моделей отсутствует обязательное поле, поэтому Codex отклоняет весь файл. Создайте каталог заново с помощью скрипта, а не редактируйте его вручную.

Если настройка не применяется

  • Перезапустите Codex после редактирования.
  • Проверьте, что ключи верхнего уровня идут перед первой строкой [table].
  • Проверьте файл .codex/config.toml в репозитории: он имеет приоритет над настройками профиля.
  • Поищите оставшуюся секцию [profiles.x].
  • Запустите codex doctor: эта команда проверяет установку, конфигурацию и вход в аккаунт.

Чтобы использовать в Codex модели OpenAI, Anthropic, Google, Zhipu, DeepSeek и других провайдеров с одним ключом, воспользуйтесь AIHubMix: он предоставляет к ним доступ через Responses API по адресу https://aihubmix.com/v1. Начните с приведённого выше минимального конфига, а когда захотите переключать модели через /model, добавьте каталог моделей.

Часто задаваемые вопросы

Где находится файл Codex config.toml?
В macOS и Linux — по адресу ~/.codex/config.toml, а в Windows — C:\Users<you>.codex\config.toml. Если задана переменная CODEX_HOME, файл находится в указанной в ней папке.

Нужно ли перезапускать Codex после изменения config.toml?
Да. Codex считывает файл при запуске, поэтому закройте и заново откройте сессию терминала или приложение.

Почему Codex сообщает «конфигурация профиля в устаревшем формате больше не поддерживается»?
В Codex 0.134.0 удалили поддержку профилей, заданных в config.toml. Перенесите каждый профиль в ~/.codex/name.config.toml, удалите старые строки и запустите Codex с --profile name.

Можно ли по-прежнему использовать wire_api = "chat"?
Нет. Codex принимает только wire_api = "responses". Для провайдера, который поддерживает только Chat Completions, нужен прокси, преобразующий запросы в формат Responses API.

Почему мой пользовательский провайдер возвращает 401, хотя я вошёл в Codex?
Ключ для входа из auth.json не передаётся пользовательским провайдерам. Добавьте env_key в таблицу провайдера и задайте эту переменную в терминале.

Использует ли Codex HTTPS_PROXY?
Да. В ходе теста на Codex 0.162.1 запросы проходили через HTTPS_PROXY, а для хостов из списка NO_PROXY прокси не использовался. PAC-файлы не поддерживаются.

Почему параметр model_provider игнорируется в .codex/config.toml моего проекта?
Файлы проекта не могут менять маршрут запросов, поэтому репозиторий не может перенаправлять ваш трафик. Укажите провайдера в ~/.codex/config.toml; в файле проекта по-прежнему можно задать модель.

Источники