kosareva.cloud

Codex CLI из России: установка, вход и настройка config.toml под свой провайдер

Codex CLI ставится одной командой, но штатный вход из России закрыт. Разбираем, как обойтись без него: свой провайдер в config.toml или локальная модель через Ollama.

/ Короткий ответ

Что это значит

Codex CLI — это агент OpenAI для терминала: он читает проект, правит файлы и запускает команды. Ставится через npm одной командой, а вот запуск из России штатно не проходит: Codex просит либо вход через аккаунт ChatGPT, либо ключ OpenAI, и оба пути из России закрыты — ChatGPT отвечает, что сервис недоступен в вашей стране, а API-ключ без зарубежной карты не выдаётся.

Хорошая новость в том, что Codex CLI умеет работать с любым OpenAI-совместимым API. Провайдер описывается в файле ~/.codex/config.toml секцией [model_providers.имя] с полями base_url, env_key и wire_api. Ключ берётся из переменной окружения, имя которой вы указали в env_key. После этого Codex не спрашивает вход и ходит по вашему адресу.

Есть и полностью автономный вариант: локальная модель через Ollama или LM Studio, например gpt-oss. Работает без интернета и без ключей, но требует видеокарту с памятью под модель и заметно уступает облачным моделям на больших задачах.

/ Почему

Почему штатный вход не работает

  • Вход через ChatGPT. Аккаунт OpenAI из России не регистрируется и не открывается, вход в Codex через него обрывается на этом же экране.
  • Ключ OpenAI. Выдаётся в консоли платформы, которая из России не открывается, а пополнение требует зарубежную карту.
  • VPN. Вход пройдёт, но 403 по региону может вернуться на любом запросе, а аккаунт с российской оплатой рискует блокировкой.
  • config.toml не подхватился. Опечатка в имени секции, файл не в ~/.codex/ или в model_provider указано имя, которого нет в model_providers.
  • wire_api не тот. По умолчанию Codex ходит через Responses API, который у сторонних провайдеров есть не всегда; для них нужен wire_api = "chat".
/ Что делать

Порядок действий

01

Установите Codex CLI

Нужен Node.js. После установки команда codex доступна из любого каталога.

npm i -g @openai/codex
codex --version
02

Опишите провайдера в config.toml

Файл ~/.codex/config.toml, создайте, если его нет. Имя секции произвольное, оно же подставляется в model_provider.

model = "gpt-5-6"
model_provider = "kosareva"

[model_providers.kosareva]
name = "kosareva.cloud"
base_url = "https://api.kosareva.cloud/v1"
env_key = "KOSAREVA_API_KEY"
wire_api = "chat"
03

Положите ключ в переменную окружения

Имя переменной должно совпадать с env_key. Добавьте строку в ~/.zshrc или ~/.bashrc, чтобы не вводить каждый раз.

export KOSAREVA_API_KEY="ваш-ключ"
codex
04

Проверьте, что запрос доходит

Если Codex снова просит вход, конфиг не прочитан: проверьте путь к файлу и совпадение имён. Если пишет 401, ключ в переменной пустой или неверный, проверьте curl на тот же base_url.

curl https://api.kosareva.cloud/v1/models \
  -H "Authorization: Bearer $KOSAREVA_API_KEY"
05

Хотите без облака — Ollama

Поставьте Ollama, скачайте модель и опишите второго провайдера с адресом локального сервера. Переключать можно флагом --model или сменой model_provider.

[model_providers.ollama]
name = "Ollama"
base_url = "http://localhost:11434/v1"
wire_api = "chat"
/ По инструментам

Где это чинится в разных инструментах

  • Терминал. Основной сценарий: codex в каталоге проекта, конфиг в ~/.codex/config.toml, ключ в переменной окружения.
  • VS Code. Codex можно запускать во встроенном терминале, переменные должны быть видны редактору. Наше расширение VS Code умеет записать провайдера в config.toml за вас.
  • Несколько провайдеров. Секций [model_providers.*] может быть сколько угодно, активный выбирается полем model_provider или флагом при запуске.
  • CI и контейнеры. Конфиг кладётся в образ, ключ передаётся секретом в ту же переменную, что в env_key.
/ FAQ

Частые вопросы

Обязателен ли wire_api = "chat"?

Для сторонних провайдеров — да, если у них нет Responses API. С chat Codex ходит в /chat/completions, который есть у всех OpenAI-совместимых сервисов.

Какую модель указать в model?

Ту, что есть у вашего провайдера, в его написании. У нас это имя без точек: gpt-5-6, claude-sonnet-5, deepseek-v4-flash. Список — в /prices/.

Работает ли Codex CLI на Windows?

Да, через PowerShell или WSL. Путь к конфигу тот же: папка .codex в домашнем каталоге, переменную задавайте через $env: или setx.

/ На kosareva.cloud

Как это выглядит у нас

Codex CLI с нашим шлюзом настраивается одной секцией в config.toml: base_url https://api.kosareva.cloud/v1, wire_api = "chat", ключ из кабинета в переменной из env_key. Запросы идут с российских IP, оплата в рублях по факту: GPT-5.6 стоит 432 ₽ за миллион входных токенов и 2 160 ₽ за миллион выходных, GPT-5.6 Luna — 21,6 и 129,6 ₽. Наше расширение VS Code записывает эту секцию само.

Ключ, который работает из России

OpenAI-совместимый адрес, оплата в рублях, ключ сразу после регистрации. Пополнение картой от 50 ₽.

Получить ключ