Оформление
Язык сайта
Валюта цен
Совместимые инструменты
Агент в терминалеРаботает

Codex CLI + Evrona

Codex CLI понимает только OpenAI Responses API: начиная с февраля 2026 года wire_api = "chat" не даёт ему стартовать. Шлюз Evrona сам обслуживает POST /v1/responses, так что прокси-переводчик не нужен: хватит провайдера в config.toml и отдельного файла профиля, а привычный codex с прежними настройками работает как работал.

Что нужно подготовить

Base URLАдрес шлюза
https://evrona.ru/v1
Ключ APIПример; ваш — в кабинете
ev-ВАШ_КЛЮЧ
Model IDЛюбая модель каталога
google/gemini-3.7-flash

Нет ключа? Создайте аккаунт — ключ создаётся в кабинете, в разделе «API-ключи», и полное значение показывается один раз. Model ID копируется из каталога целиком, вместе с префиксом до «/».

Порядок подключения

  1. Скопируйте таблицу [model_providers.evrona] с первой вкладки в ~/.codex/config.toml: в base_url — адрес шлюза с /v1 на конце, в env_key — имя переменной окружения, где лежит ключ, и wire_api = "responses". Прочие строки файла оставьте без изменений.

  2. В той же папке заведите файл профиля ~/.codex/evrona.config.toml со второй вкладки: model_provider = "evrona", в model — ID из каталога, web_search = "disabled" и multi_agent = false. С версии 0.134 Codex хранит профили в отдельных файлах, и таблица [profiles.evrona] в config.toml ломает запуск с --profile.

  3. Строка web_search = "disabled" обязательна: встроенный веб-поиск OpenAI шлюз не исполняет и без неё вернёт 400 с той же подсказкой. multi_agent = false убирает инструменты саб-агентов из каждого запроса — это около 1,7 тысячи токенов; оставляйте true только если саб-агентами Codex действительно пользуетесь.

  4. Ключ храните в переменной окружения EVRONA_API_KEY (третья вкладка): в macOS и Linux через export, в PowerShell через $env: или setx. Ключ выпускается в кабинете и виден только при создании; в конфигурационные файлы его не записывайте.

  5. Стартуйте командой codex --profile evrona. Агентный режим доступен целиком: Codex читает и правит файлы, выполняет команды в терминале, ведёт многоходовой диалог и выводит ответ потоком. Без --profile он остаётся на прежнем провайдере.

[model_providers.evrona]
name = "Evrona"
base_url = "https://evrona.ru/v1"
env_key = "EVRONA_API_KEY"
wire_api = "responses"
Обратите внимание

Рекомендуем модель openai/gpt-5.3-codex: промпты и инструменты Codex заточены под модели GPT, а у этой в каталоге есть ставка кэш-входа — Codex отправляет всю историю в каждом запросе, и повторяющееся начало идёт по льготной ставке. Модели других семейств с вызовом инструментов тоже годятся — например anthropic/claude-sonnet-4.6. Историю диалога держит сам Codex (store = false, полный input каждый ход), поэтому previous_response_id шлюз отклоняет с кодом unsupported_parameter, а получить или удалить ответ по id нельзя — 404. Встроенные инструменты OpenAI (web_search, file_search, code_interpreter, tool_search, custom) шлюз не исполняет и отвечает на них 400 с именем типа; функции, которые исполняет сам Codex, работают в полном объёме. Поля reasoning, include, prompt_cache_key, metadata, parallel_tool_calls, store и text.verbosity принимаются и до модели не доходят — это телеметрия и подсказки OpenAI; text.format кроме text, а также input_file отвечают 400 unsupported_parameter. Картинки работают: часть input_image со ссылкой data:image/png;base64,… (PNG, JPEG или WebP, до 5 МБ каждая, до 50 штук на запрос) доходит до модели, в том числе картинка из результата инструмента — её шлюз отдаёт модели отдельным пользовательским ходом. Значение detail original считается как high; внешние ссылки шлюз не скачивает, а модель без пометки «Понимает изображения» возвращает ошибку unsupported_capability. Предупреждение «Model metadata for … not found. Defaulting to fallback metadata» в начале каждой сессии — это норма: наших ID Codex не знает и берёт настройки по умолчанию. Потолок ответа: max_output_tokens Codex не задаёт, поэтому под каждый запрос резервируется вход плюс 32 000 токенов ответа — или столько, сколько покрывает остаток баланса (для gpt-5.3-codex это около 0,09 $ на запрос). Если на балансе меньше этой суммы, длинный ответ обрежется по балансу (response.incomplete), Codex повторит ход до пяти раз и упрётся в 402 — держите на балансе несколько таких резервов. Складываются резервы только при параллельных саб-агентах (multi_agent = true). На Windows неинтерактивный codex exec без настроенной песочницы блокирует запись в файлы, а значение sandbox = "elevated" в секции [windows] файла config.toml (его ставит десктоп-приложение Codex) требует подтверждения UAC и в сессии без экрана падает на запуске хелпера; для codex exec задавайте sandbox = "unelevated" и запускайте с --sandbox workspace-write. В интерактивном codex то же решают подтверждения действий. Правка файлов с кириллицей через apply_patch в PowerShell может уходить в повторные попытки — ход дорожает.

Возможности и ограничения шлюза

Вызов функций поддерживается, поэтому агентные режимы работают. Строгий JSON-режим (response_format) и снятый формат functions шлюз отклоняет ошибкой unsupported_parameter — молча параметр не теряется. Картинки на вход берут модели с пометкой «Понимает изображения» в каталоге: часть content типа image_url со ссылкой вида data:image/png;base64,… (PNG, JPEG или WebP, до 5 МБ каждая, до 50 штук на запрос). Внешние ссылки шлюз не скачивает, а модель без этой пометки возвращает ошибку unsupported_capability — обе ошибки прямо называют причину.