Подключение в Codex CLI
Что это значит:
- Нужен отдельный API-ключ: обычный ключ платформы Veai не подойдёт, запросите ключ для Codex у администратора Вашей организации
- Доступен ограниченный набор моделей
- DLP не работает: данные, которые Вы отправляете, не проверяются
- Подключение работает только внутри Veai VPC
Если задачу можно решить другим инструментом, лучше выбрать его: остальные подключения работают без этих ограничений — см. список инструментов.
-
Откройте или создайте файл
~/.codex/config.toml, где~обозначает Вашу домашнюю директорию- Если в файле уже есть настройки (их создаёт приложение ChatGPT), не удаляйте их
-
Добавьте в самое начало файла три строки:
model = "auto"model_provider = "veai"model_catalog_json = "./model-catalog-full.json" -
Добавьте в самый конец того же файла блок ниже:
[model_providers.veai]name = "veai"base_url = "<YOUR_URL>"wire_api = "responses"requires_openai_auth = true- Замените
<YOUR_URL>на выданный Вам OpenAI-compatible URL- Если Вы видите эту инструкцию, но у Вас нет OpenAI-compatible URL, обратитесь к администратору организации
- Замените
-
Создайте рядом с
config.tomlфайлmodel-catalog-full.jsonсо списком моделей VeaiСкачать готовый файл
model-catalog-full.json— или скопируйте его содержимое вручную:Содержимое файла
model-catalog-full.json{"models": [{"slug": "auto","id": "auto","display_name": "Veai Auto","description": "Автоматический выбор модели: высокое качество при максимальной доступности","context_window": 372000,"max_output_tokens": 32768,"base_instructions": "default","shell_type": "default","visibility": "list","supported_in_api": true,"priority": 1,"support_verbosity": false,"truncation_policy": {"mode": "bytes","limit": 10000},"experimental_supported_tools": [],"supported_reasoning_levels": [{"effort": "low","description": "low"},{"effort": "medium","description": "medium"},{"effort": "high","description": "high"},{"effort": "xhigh","description": "xhigh"}]},{"slug": "OpenAI/gpt-5.6-sol","id": "OpenAI/gpt-5.6-sol","display_name": "OpenAI GPT-5.6 Sol","description": "Самое высокое качество среди моделей OpenAI","context_window": 372000,"max_output_tokens": 32768,"base_instructions": "default","shell_type": "default","visibility": "list","supported_in_api": true,"priority": 2,"support_verbosity": false,"truncation_policy": {"mode": "bytes","limit": 10000},"experimental_supported_tools": [],"supported_reasoning_levels": [{"effort": "low","description": "low"},{"effort": "medium","description": "medium"},{"effort": "high","description": "high"},{"effort": "xhigh","description": "xhigh"}]},{"slug": "OpenAI/gpt-5.6-terra","id": "OpenAI/gpt-5.6-terra","display_name": "OpenAI GPT-5.6 Terra","description": "Баланс качества и скорости среди моделей OpenAI","context_window": 372000,"max_output_tokens": 32768,"base_instructions": "default","shell_type": "default","visibility": "list","supported_in_api": true,"priority": 3,"support_verbosity": false,"truncation_policy": {"mode": "bytes","limit": 10000},"experimental_supported_tools": [],"supported_reasoning_levels": [{"effort": "low","description": "low"},{"effort": "medium","description": "medium"},{"effort": "high","description": "high"},{"effort": "xhigh","description": "xhigh"}]},{"slug": "OpenAI/gpt-5.6-luna","id": "OpenAI/gpt-5.6-luna","display_name": "OpenAI GPT-5.6 Luna","description": "Самая быстрая и дешёвая среди моделей OpenAI","context_window": 372000,"max_output_tokens": 32768,"base_instructions": "default","shell_type": "default","visibility": "list","supported_in_api": true,"priority": 4,"support_verbosity": false,"truncation_policy": {"mode": "bytes","limit": 10000},"experimental_supported_tools": [],"supported_reasoning_levels": [{"effort": "low","description": "low"},{"effort": "medium","description": "medium"},{"effort": "high","description": "high"},{"effort": "xhigh","description": "xhigh"}]},{"slug": "OpenAI/gpt-5.5","id": "OpenAI/gpt-5.5","display_name": "OpenAI GPT-5.5","description": "Модель OpenAI прошлого поколения","context_window": 272000,"max_output_tokens": 16384,"base_instructions": "default","shell_type": "default","visibility": "list","supported_in_api": true,"priority": 5,"support_verbosity": false,"truncation_policy": {"mode": "bytes","limit": 10000},"experimental_supported_tools": [],"supported_reasoning_levels": [{"effort": "low","description": "low"},{"effort": "medium","description": "medium"},{"effort": "high","description": "high"},{"effort": "xhigh","description": "xhigh"}]},{"slug": "Anthropic/fable-5","id": "Anthropic/fable-5","display_name": "Anthropic Fable 5","description": "Самая мощная модель Anthropic","context_window": 1000000,"max_output_tokens": 128000,"base_instructions": "default","shell_type": "default","visibility": "list","supported_in_api": true,"priority": 6,"support_verbosity": false,"truncation_policy": {"mode": "bytes","limit": 10000},"experimental_supported_tools": [],"supported_reasoning_levels": [{"effort": "low","description": "low"},{"effort": "medium","description": "medium"},{"effort": "high","description": "high"},{"effort": "xhigh","description": "xhigh"}]},{"slug": "Anthropic/opus-5","id": "Anthropic/opus-5","display_name": "Anthropic Opus 5","description": "Высокое качество, дешевле Fable 5","context_window": 1000000,"max_output_tokens": 65536,"base_instructions": "default","shell_type": "default","visibility": "list","supported_in_api": true,"priority": 7,"support_verbosity": false,"truncation_policy": {"mode": "bytes","limit": 10000},"experimental_supported_tools": [],"supported_reasoning_levels": [{"effort": "low","description": "low"},{"effort": "medium","description": "medium"},{"effort": "high","description": "high"},{"effort": "xhigh","description": "xhigh"}]},{"slug": "Anthropic/sonnet-5","id": "Anthropic/sonnet-5","display_name": "Anthropic Sonnet 5","description": "Баланс качества и скорости среди моделей Anthropic","context_window": 1000000,"max_output_tokens": 65536,"base_instructions": "default","shell_type": "default","visibility": "list","supported_in_api": true,"priority": 8,"support_verbosity": false,"truncation_policy": {"mode": "bytes","limit": 10000},"experimental_supported_tools": [],"supported_reasoning_levels": [{"effort": "low","description": "low"},{"effort": "medium","description": "medium"},{"effort": "high","description": "high"},{"effort": "xhigh","description": "xhigh"}]},{"slug": "Anthropic/haiku-4.5","id": "Anthropic/haiku-4.5","display_name": "Anthropic Haiku 4.5","description": "Самая быстрая и дешёвая среди моделей Anthropic","context_window": 264000,"max_output_tokens": 64000,"base_instructions": "default","shell_type": "default","visibility": "list","supported_in_api": true,"priority": 9,"support_verbosity": false,"truncation_policy": {"mode": "bytes","limit": 10000},"experimental_supported_tools": [],"supported_reasoning_levels": [{"effort": "none","description": "none"},{"effort": "low","description": "low"}]}]}Чтобы добавить модель, скопируйте любой блок и подставьте своё значение
slug.- Поле
priorityзадаёт порядок в списке выбора модели: чем меньше число, тем выше модель в списке - Чтобы получить весь список моделей, обратитесь к администратору организации или перейдите по ссылке
<YOUR_URL>/models - Если после обновления Codex появилась ошибка
failed to parse model_catalog_json, добавьте в каждую модель поле, указанное в тексте ошибки
- Поле
-
Откройте или создайте файл
~/.codex/auth.jsonи заполните его содержимым ниже:{"auth_mode": "apikey","OPENAI_API_KEY": "<YOUR_API_KEY>"}- Замените
<YOUR_API_KEY>на выданный Вам API-ключ- Если Вы видите эту инструкцию, но у Вас нет API-ключа, обратитесь к администратору организации
- Аккаунт OpenAI не нужен: ключ используется только для запросов к Вашему шлюзу
- Если Вы ранее входили через аккаунт ChatGPT, выполните
codex logoutи создайте файл заново
- Замените
-
Запустите Codex:
codex -
Для выбора модели используйте
/modelauto– автоматический выбор модели: высокое качество при максимальной доступностиOpenAI/gpt-5.6-sol– самое высокое качество среди моделей OpenAIOpenAI/gpt-5.6-terra– баланс качества и скорости среди моделей OpenAIOpenAI/gpt-5.6-luna– самая быстрая и дешёвая среди моделей OpenAIOpenAI/gpt-5.5– модель OpenAI прошлого поколенияAnthropic/fable-5– самая мощная модель AnthropicAnthropic/opus-5– высокое качество, дешевле Fable 5Anthropic/sonnet-5– баланс качества и скорости среди моделей AnthropicAnthropic/haiku-4.5– самая быстрая и дешёвая среди моделей Anthropic- Список показывает по восемь моделей, остальные доступны прокруткой вниз

-
Отправьте любое сообщение и убедитесь, что модель отвечает
- Если появляется ошибка
404 Not Found, значит ключ неверный или отозванный: проверьте содержимое~/.codex/auth.jsonлибо обратитесь к администратору организации за перевыпуском ключа
- Если появляется ошибка
Если Вы пользуетесь и Codex CLI, и приложением ChatGPT
Файл config.toml у них общий, а приложение умеет работать только с моделями OpenAI. Чтобы в приложении остались только рабочие модели, а в Codex CLI были доступны все, разделите каталоги:
-
В
config.tomlукажите каталог для приложения:model_catalog_json = "./model-catalog.json"— и положите рядом файлmodel-catalog.jsonиз инструкции Codex в ChatGPT -
Оставьте на месте и полный каталог
model-catalog-full.json -
Создайте файл
~/.codex/full.config.tomlс одной строкой:model_catalog_json = "./model-catalog-full.json" -
Запускайте Codex CLI с этим профилем:
codex --profile full
В случае ошибок см. Значения ошибок.