Codex CLI в России: установка и настройка без VPN
TL;DR. Codex CLI от OpenAI официально требует ChatGPT-логин или ключ от OpenAI API — оба пути из России закрыты. Решение: ~/.codex/config.toml с секцией [model_providers.ofox], wire_api = "chat" и ключом от ofox.ai. Дальше CLI работает как обычно, на тех же gpt-5.3-codex и gpt-5.4. Голый OPENAI_BASE_URL не сработает — ниже разбираем почему.
Почему “просто скачать” не работает
Codex CLI — open-source coding-agent от OpenAI на Rust, ответ на Claude Code и Cursor. К весне 2026 он стабилизировался: терминальный UI, чтение репозитория, выполнение shell-команд, мульти-файл правки, две дефолтные модели — GPT-5.3 Codex (агентский) и GPT-5.4 (general).
Стандартный путь установки выглядит так: npm i -g @openai/codex, потом codex — открывается браузер с ChatGPT-логином. Для российского пользователя на этом всё и кончается. Три типичных тупика:
- ChatGPT-логин. С российского IP отваливается на странице авторизации (
Country not supported). Через VPN страница открывается, но billing-агент OpenAI выкидывает любую попытку оплаты с российской карты, а часть VPN-провайдеров уже в чёрном списке OpenAI fraud-detection. - OpenAI API key. Если ключ уже есть — ставьте и не читайте дальше. Получить новый сейчас: нужен зарубежный paspor verification, не-российский IP при регистрации и зарубежная карта для пополнения. На каждом шаге шанс провалиться.
- Перепродажа ChatGPT-аккаунтов. Нарушает ToS, аккаунт банят пачками. Депозит сгорает вместе с банкой.
Хорошая новость: Codex CLI поддерживает кастомные model_providers. Любой OpenAI-совместимый шлюз подключается за две минуты — protocol тот же, команды те же, разница только в base_url и в том, кто обрабатывает биллинг.
Установка самого CLI
Поддерживаются macOS, Windows и Linux. Через npm:
npm i -g @openai/codex
codex --version
Альтернатива без Node.js — бинарник со страницы GitHub Releases. Бинарь называется codex, других зависимостей нет.
Запускать codex без конфига пока не нужно — он сразу полезет в ChatGPT-логин и зависнет. Сначала настройте провайдера, потом запускайте.
Получаем ключ на ofox.ai
ofox.ai — OpenAI-совместимый шлюз с одним ключом на все модели (OpenAI, Anthropic, Google, open-source). Для Codex CLI нас интересуют три модели OpenAI:
| Model ID | Когда использовать |
|---|---|
openai/gpt-5.3-codex | Дефолт, дообучена под агентский кодинг — чтение проекта, мульти-файл правки, тесты |
openai/gpt-5.4 | Архитектурный рефакторинг, сложные баги, длинный контекст |
openai/gpt-5.4-mini | Опечатки, докстринги, типовые сниппеты — ≈5× дешевле |
Регистрация на ofox.ai идёт через email или Google, российские карты не нужны — пополнение через USDT и другие криптометоды. В разделе API Keys создаём ключ, копируем строку (формат sk-...).
Почему просто OPENAI_BASE_URL не сработает
Логично попробовать «быстрый» путь:
export OPENAI_API_KEY="sk-..."
export OPENAI_BASE_URL="https://api.ofox.ai/v1"
codex
В Codex CLI весны 2026 он не работает. Встроенный провайдер openai использует wire_api = "responses" (Responses API, /v1/responses), а у ofox поднят только Chat Completions (/v1/chat/completions). На первом же запросе получите 404.
Чтобы переключить wire-протокол и заодно изолировать ключ от других проектов, нужен собственный model_provider в config.toml — ниже.
Постоянная настройка через config.toml
Создайте (или отредактируйте) файл ~/.codex/config.toml:
model_provider = "ofox"
model = "openai/gpt-5.3-codex"
[model_providers.ofox]
name = "ofox.ai gateway"
base_url = "https://api.ofox.ai/v1"
env_key = "OFOX_API_KEY"
wire_api = "chat"
Что делает каждая строка:
model_provider = "ofox"— CLI больше не пойдёт вapi.openai.com, всё через ofoxmodel = "openai/gpt-5.3-codex"— модель по умолчанию (можно переопределить флагом--model)env_key = "OFOX_API_KEY"— какую переменную окружения читать вместоOPENAI_API_KEY. Имя ваше — главное, чтобы оно нигде больше не пересекалосьwire_api = "chat"— обязательно. По умолчанию Codex CLI использует Responses API (/v1/responses), который у ofox не поднят. Без этой строки получите 404 на любой запрос
Кладём ключ в shell rc:
# ~/.zshrc или ~/.bashrc
export OFOX_API_KEY="sk-..."
Перезагружаем shell (source ~/.zshrc), проверяем echo $OFOX_API_KEY, запускаем codex. Если попадаете в интерактивный UI без браузерного flow — связка работает.
Боевая проверка
Заходим в любой git-репозиторий:
cd ~/projects/my-app
codex
Пишем что-нибудь практическое, например:
прочитай README, потом покажи где входная точка и какие тесты сейчас падают
Codex прочитает файлы, выведет план и попросит подтверждение перед запуском shell-команд. Этим управляют флаги --ask-for-approval (значения: untrusted, on-request, never) и --sandbox (read-only, workspace-write, danger-full-access). Полностью отключить песочницу и подтверждения можно --dangerously-bypass-approvals-and-sandbox (алиас --yolo) — но только в изолированном окружении, для повседневной работы не стоит. В логе сетевых запросов должны мелькать обращения к api.ofox.ai/v1/chat/completions — это и есть индикатор, что подмена сработала.
Частые ошибки
Authentication failed: invalid_api_key — ключ не подгрузился. echo $OFOX_API_KEY в той же shell-сессии, откуда стартует codex. Если пусто — source файл rc или экспортируйте ключ напрямую в текущей сессии.
Model not found — имя в config.toml не совпадает с принимаемым у ofox. У ofox принимается полный ID в формате openai/gpt-5.3-codex (с префиксом провайдера). Без префикса CLI получит 404.
404 на /v1/responses — забыли wire_api = "chat" внутри [model_providers.ofox]. По умолчанию Codex CLI ходит в Responses API, у ofox такого endpoint нет — только Chat Completions.
Connection timeout или 404 — base_url ушёл не туда. У ofox API живёт на https://api.ofox.ai/v1, не на ofox.ai. Проверьте, что model_provider = "ofox" стоит в корне файла, не внутри секции [model_providers.ofox] (классический TOML-капкан).
CLI всё равно лезет в браузер — значит до конфига он не дошёл. Скорее всего лежит старый ~/.codex/auth.json от предыдущей попытки. rm ~/.codex/auth.json и перезапустите.
Tool calls работают, но качество хуже, чем у официального Codex — переключите модель на gpt-5.4. На сложных рефакторингах разница ощутима, агентский режим у gpt-5.3-codex заточен под скорость, а не глубину.
Чек-лист
npm i -g @openai/codex- Регистрация на ofox.ai → пополнение → API key
~/.codex/config.toml:model_provider = "ofox", секция[model_providers.ofox]сwire_api = "chat"export OFOX_API_KEY="sk-..."в shell rccodexв любом проекте
Ни VPN, ни ChatGPT-аккаунта, ни зарубежной карты. Команды и UX — те же, что в официальной документации Codex CLI, переход прозрачный для всего, что вы про CLI уже знаете.


