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 Основы конфигурации, такой:
- Параметры командной строки, включая переопределения
-c - Файл проекта
.codex/config.toml - Профиль, выбранный с помощью
--profile - Ваш файл
~/.codex/config.toml - Системный конфиг
/etc/codex/config.toml - Встроенные настройки 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; в файле проекта по-прежнему можно задать модель.
Источники
- Основы конфигурации, OpenAI
- Расширенная настройка, OpenAI
- Справочник по конфигурации, OpenAI
- Руководство по интеграции с Codex CLI, AIHubMix
- Настройка прокси в Codex CLI: SOCKS, HTTP и корпоративные сети, Daniel Vaughan



