Антон Ларичев
Установка Codex на Windows состоит из двух разных дел, и второе обычно застаёт врасплох. Сам агент ставится одной командой npm install -g @openai/codex и на Windows работает так же, как на macOS: пакет скачивается из npm без всяких препятствий. А вот первый же запрос к модели закончится отказом: по умолчанию Codex авторизуется через аккаунт ChatGPT, а этот путь из России закрыт — ни вход, ни оплата подписки российской картой не пройдут. Поэтому после установки нужен второй шаг: прописать Codex другой адрес модельного провайдера и ключ к нему. Ключ можно взять в AI для кода от PurpleSchool — это OpenAI-совместимый шлюз с оплатой в рублях, официальная инструкция под Windows там есть. Ниже — вся последовательность: npm, PowerShell, config.toml и расширение для VS Code.
Что нужно перед установкой на Windows
Codex CLI — обычный npm-пакет, поэтому в системе должны быть Node.js и npm. Откройте PowerShell и проверьте:
node -v
npm -v
Ответом должны быть номера версий. Вариант «node не распознан как имя командлета» означает одно из двух: Node.js в системе нет вообще или его каталог не виден PowerShell. Разбор обоих случаев — в отдельной статье про установку Node.js на Windows. Пока эти две команды не отвечают версиями, за Codex браться рано: ставить его просто некуда.
Ещё одно уточнение до начала: все команды ниже — для PowerShell. Если вы живёте внутри WSL, синтаксис будет другой, bash-овый, и этому посвящён отдельный раздел в конце. Специально переходить в WSL ради Codex не нужно — нативный путь через PowerShell рабочий.
Шаг 1: устанавливаем Codex CLI через npm
Команда одна и та же для всех систем:
npm install -g @openai/codex
Флаг -g ставит пакет глобально: исполняемый файл codex попадает в каталог глобальных пакетов npm и должен стать доступен из любой папки. Проверяем:
codex --version
Если в ответ пришёл номер версии — установка закончена. Если PowerShell пишет, что команда не найдена, пакет на месте, но каталог npm не прописан в PATH. Посмотрите, куда именно npm кладёт глобальные пакеты, и убедитесь, что система видит бинарник:
npm config get prefix
Get-Command codex
npm config get prefix вернёт путь вроде C:\Users<имя>\AppData\Roaming\npm — его нужно добавить в переменную PATH пользователя и перезапустить терминал. Get-Command codex после этого вернёт путь до исполняемого файла. Это первое место, где Windows отличается от macOS: там каталог npm обычно уже в PATH, здесь — далеко не всегда.
Шаг 2: почему одной установки мало
Пакет установлен, но агент пока нерабочий, и дело не в установке. Скачивание из npm никто не ограничивает — упирается всё в доступ к моделям: авторизоваться аккаунтом ChatGPT и оплатить подписку российской картой не получится. Переустанавливать пакет или чистить кеш npm в этой ситуации бесполезно.
Выручает то, как Codex устроен внутри. Адрес модели у него не вшит в код, а описывается в конфиге секцией model_providers — туда подставляется любой эндпоинт с совместимым API. Вы не патчите агента и не ставите его сборку со стороны: бинарник остаётся тем же, что скачался из npm, другим становится только маршрут запроса. Отсюда и два рабочих сценария — поднять свой обратный прокси на зарубежном сервере либо подключиться к готовому шлюзу. Их сравнение с минусами каждого есть в статье Codex в России: как установить и настроить без VPN. В этой инструкции идём вторым путём — у PurpleSchool на странице продукта выложен готовый блок конфига именно под Windows, его и разберём по полям.
Шаг 3: задаём ключ в PowerShell
Codex читает ключ не из конфига, а из переменной окружения — для доступа через PurpleSchool она называется PURPLESCHOOL_API_KEY. На Windows её задают двумя командами:
[Environment]::SetEnvironmentVariable("PURPLESCHOOL_API_KEY", "ваш ключ", "User")
$env:PURPLESCHOOL_API_KEY="ваш ключ"
Разница между ними — главный источник путаницы на Windows. Первая команда пишет значение в профиль пользователя: область User означает, что переменная переживёт перезагрузку, но подхватят её только процессы, запущенные после. Уже открытое окно PowerShell о ней не узнает. Вторая команда задаёт переменную для текущей сессии — она работает сразу, но исчезает вместе с закрытым окном терминала. Поэтому на практике нужны обе: одна на будущее, вторая чтобы не перезапускать терминал прямо сейчас.
Проверить, что значение на месте:
$env:PURPLESCHOOL_API_KEY
Пустой вывод означает, что в этой сессии переменной нет — и Codex её тоже не увидит.
Шаг 4: настраиваем config.toml
Основная часть настройки — конфигурационный файл Codex. На Windows он лежит по пути $env:USERPROFILE.codex\config.toml, то есть C:\Users<имя>.codex\config.toml. Каталога .codex может ещё не быть — создайте его и откройте файл в блокноте:
New-Item -ItemType Directory -Force "$env:USERPROFILE\.codex"
notepad "$env:USERPROFILE\.codex\config.toml"
Блокнот предложит создать файл, если его нет. Добавьте в него блок ниже, не удаляя остальные свои настройки:
model = "<MODEL_NAME>"
model_provider = "purpleschool"
[model_providers.purpleschool]
name = "PurpleSchool OpenAI Proxy"
base_url = "https://app.purpleschool.ru/api-v2/public/ai-proxy/openai/v1"
env_key = "PURPLESCHOOL_API_KEY"
wire_api = "responses"
supports_websockets = false
Пять строк, каждая из которых обязательна:
model_providerуказывает, какой из описанных провайдеров брать по умолчанию. Значение должно быть буквально равно имени секции —purpleschoolв двух местах. Расхождение здесь не вызывает ошибку: Codex просто останется на провайдере по умолчанию и упрётся в тот же отказ по региону.base_url— куда уходят запросы. Это и есть подмена адреса, ради которой правится файл.env_key— не ключ, а название переменной, из которой Codex ключ прочитает при старте. Благодаря этому в самом конфиге секрета нет: файл можно копировать между машинами и не бояться утечки.wire_api— протокол общения с провайдером. Значениеresponsesберётся из инструкции шлюза, произвольно его менять не нужно.<MODEL_NAME>— плейсхолдер: подставьте имя доступной вам модели. На странице PurpleSchool приведён примерgpt-5.6-sol.
Дальше обязательно новое окно PowerShell: только свежий процесс прочитает и пользовательскую переменную, и поправленный конфиг. Из него зайдите в каталог проекта и позовите агента:
cd C:\projects\my-app
codex
Рабочим каталогом для агента становится та папка, из которой вы его позвали, — читать и менять файлы он будет в ней. Что настройка удалась, видно по первому же запросу: агент отвечает по коду, а не отказом из-за региона.
Если править конфиги руками не хочется, те же настройки умеет прописать установщик:
npx @purpleschool/ai-for-code
Он спросит клиента и операционную систему и сделает всё сам. Ручную настройку всё равно стоит понимать: когда что-то отвалится, чинить придётся именно эти два места — переменную и config.toml.
Как подключить Codex в VS Code на Windows
Расширение не заменяет CLI, а надстраивается над ним — шаги 1, 3 и 4 нужно выполнить до его установки, иначе панель откроется, но запросы отправлять будет некуда.
- Поставьте официальное расширение Codex из Visual Studio Marketplace, его идентификатор —
openai.chatgpt. - Убедитесь, что
PURPLESCHOOL_API_KEYзаписана в профиль пользователя черезSetEnvironmentVariableс областьюUser, а не только в текущей сессии. - Полностью закройте VS Code и откройте заново. Это не формальность: переменные окружения читаются процессом при старте, и редактор, запущенный до того как вы сохранили ключ, его не увидит.
- Вызовите боковую панель Codex. Значка на панели активности может не оказаться — тогда откройте Command Palette и выполните
Codex: Open Codex Sidebar.
Более подробный разбор пути через расширения, включая Codex и Claude Code рядом, — в статье Claude Code и Codex в VS Code: подключение из России.
Частые ошибки на Windows
PowerShell не знает команду codex. Пакет установлен, но PATH о нём не в курсе — возвращайтесь к шагу 1: узнать каталог через npm config get prefix, дописать его в PATH пользователя, открыть терминал заново.
Codex жалуется на отсутствие ключа. Типичная причина — переменную задали в одном окне терминала, а агента запускают в другом; либо записали её в профиль уже после того, как это окно открылось. Проверять нужно там же, где запускаете codex: выведите $env:PURPLESCHOOL_API_KEY — пустая строка значит, что в этой сессии ключа нет.
В терминале работает, а в расширении нет. Тот же механизм, но для процесса редактора: окружение VS Code фиксируется в момент запуска. Закрывать нужно приложение целиком, а не одно окно, и только потом открывать снова.
Ошибка региона осталась той же, что до настройки. Это признак того, что конфиг не подхватился. Проверяйте три вещи в таком порядке: реальный путь файла — блокнот легко сохраняет его как config.toml.txt вместо config.toml; совпадение model_provider с именем секции [model_providers.purpleschool]; был ли перезапущен терминал после правки.
Ошибка сменилась на другую. Значит, региональная часть настроена, а упираетесь вы уже в что-то своё: истёкший ключ, опечатку в base_url, недоступное имя модели. Отличать их удобно по тому, что в сообщении: регион и авторизация — это про ключ и адрес, «модель не найдена» — про значение model.
WSL: когда нужен другой синтаксис
Если вы работаете не в PowerShell, а внутри подсистемы Linux, Windows-специфика из этой статьи не применяется — внутри WSL у вас Linux со своим домашним каталогом. Ключ задаётся строкой в конфиге оболочки, ~/.bashrc или ~/.zshrc:
export PURPLESCHOOL_API_KEY="ваш ключ"
Ключевое слово export здесь не декоративное: без него значение останется внутри самой оболочки, а дочерние процессы — в том числе Codex — его не увидят. Общий механизм, включая ответ на вопрос, почему уже запущенные программы не подхватывают новые значения, разобран в статье про переменные окружения.
Конфиг Codex в этом случае тоже живёт внутри WSL — по пути ~/.codex/config.toml, а не в профиле Windows. Содержимое блока model_providers при этом ровно то же. Путать два конфига не стоит: правки в файле Windows на запуск внутри WSL не влияют и наоборот.
Сколько стоит доступ через PurpleSchool
Платить можно российской картой, в рублях — ни зарубежный банк, ни виртуальная карта не понадобятся. Тарифов три: «Помощник» за 499 ₽ в месяц, «Напарник» за 1 199 ₽ и «Соавтор» за 2 499 ₽. Отличие между ними — в месячном объёме токенов; сколько именно даёт каждый, смотрите на странице продукта, там же указаны текущие условия. Отключить продление можно в личном кабинете в любой момент.
Один ключ работает и с моделями GPT в Codex, и с моделями Claude в совместимых клиентах, так что переключаться между агентами можно без второй подписки.
Заключение
Установка Codex на Windows из России — это четыре шага и два места, где Windows отличается от инструкций для macOS:
- Node.js и npm в системе,
node -vотвечает версией. npm install -g @openai/codex, проверка черезcodex --version, при необходимости — каталог npm в PATH.PURPLESCHOOL_API_KEYв переменных окружения — постоянная черезSetEnvironmentVariableплюс сессионная через$env:.- Блок
[model_providers.purpleschool]в$env:USERPROFILE.codex\config.tomlи новое окно терминала.
Отличия от macOS ровно два: PATH для глобальных пакетов npm и синтаксис переменных окружения в PowerShell. Всё остальное — агентный режим, правки файлов, запуск команд — работает так же, как на любой другой системе. Инструкции для остальных редакторов и автонастройка одной командой — на странице AI для кода.




Комментарии
0