undercode_
  1. Главная
  2. Блог
  3. Codex на Windows: установка, вход и песочница. Как я запустил его на своём ПК
Рисунок тушью: человек за компьютером, из монитора робот протягивает ему лист, вокруг робота прозрачная оболочка песочницы с оранжевым замком

Разбор10 мин чтения

Codex на Windows: установка, вход и песочница. Как я запустил его на своём ПК

Как скачать и установить Codex на Windows: приложение, Codex CLI через PowerShell или npm, вход через ChatGPT, песочница mxc, elevated и unelevated, WSL и ошибки.

Содержание · 8 разделов

Codex у меня стоит на домашнем ПК с Windows 11 Pro, и я пользуюсь им вместе с агентами на Маке. 24 октября 2026 года я всё перепроверил: заново вошёл, дал Codex простую задачу и записал, что сломалось по дороге. Сломалось два раза. Ниже по порядку: как установить Codex на Windows (приложение или Codex CLI), как войти, как дать агенту первую задачу и как я починил обе поломки.

Конфигурация: Windows 11 Pro (сборка 22000), Codex CLI 0.161.0, Node.js 23, Python 3.13. Команды сверены с документацией OpenAI на 24.10.2026. Codex обновляется часто, поэтому если команда не сработала, сначала загляните в раздел установки на сайте OpenAI.

Что такое Codex на Windows

Codex от OpenAI это ИИ-агент для кода: он читает файлы проекта, правит их и сам запускает команды и тесты. На Windows агент Codex есть в трёх видах:

  • приложение ChatGPT для Windows, в нём Codex живёт рядом с чатами, с параллельными задачами, Git и встроенным браузером;
  • Codex CLI, агент в терминале PowerShell;
  • расширение для редактора кода.

Подписка у Codex и ChatGPT общая: тот же аккаунт ChatGPT, те же лимиты. Про лимиты Codex и их сброс у меня есть отдельная статья.

Windows напрямую или через WSL

Codex умеет работать прямо в Windows, без WSL и виртуальной машины. Команды он запускает в PowerShell, а от остальной системы его отделяет собственная песочница Windows.

WSL2 нужен, если проект живёт в Linux: у вас Docker, Linux-инструменты сборки, скрипты на bash. Тогда агент работает внутри Linux, и песочница Windows не используется. Документация советует держать такие репозитории в домашней папке Linux (~/code/...), а не в /mnt/c/...: работа с диском Windows из WSL медленнее.

Я работаю напрямую в Windows. Мои проекты на Python и Node, и лишний слой мне не нужен.

Требования: рекомендуется Windows 11. На свежей Windows 10 Codex работает в режиме «как получится», ему нужна современная консоль ConPTY. Ещё нужен winget, менеджер пакетов Windows. Если его нет, обновите Windows.

Как установить Codex на Windows

Поставить Codex на ПК можно двумя способами: как приложение для рабочего стола или как Codex CLI для терминала.

Приложение (оно же Codex desktop) можно скачать из Microsoft Store или поставить одной командой:

winget install --id 9PLM9XGG6VKS -s msstore

CLI ставится официальным установщиком. Откройте новое окно PowerShell и выполните:

powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"

Если Node.js у вас уже стоит, можно через npm. У меня Codex CLI стоит именно так:

npm install -g @openai/codex

Проверка:

codex --version

Codex лучше работает, когда в системе уже есть Git и Python или Node: он сам запускает тесты и смотрит историю изменений. Git ставится так: winget install --id Git.Git.

Вход в Codex через ChatGPT или по API-ключу

Первый запуск codex откроет браузер для входа через ChatGPT. Если вы работаете на ПК удалённо, по SSH, браузер открыть некуда. Тогда вход по коду:

codex login --device-auth

Codex покажет ссылку https://auth.openai.com/codex/device и одноразовый код, он действует 15 минут. Ссылку открываете на любом устройстве, входите в аккаунт и вводите код. Я так и сделал: команду запустил с Мака по SSH, код ввёл с телефона.

Есть ещё вход по API-ключу. Ключ передаётся через стандартный ввод, в PowerShell так:

$env:OPENAI_API_KEY | codex login --with-api-key

Переменную OPENAI_API_KEY с ключом нужно задать заранее. Работа тогда оплачивается по тарифам API, а не из подписки ChatGPT.

Ловушка: статус «вошёл», а Codex не работает

Это первое, что у меня сломалось. Первая же задача упала с ошибкой:

401 refresh token was already used

При этом codex login status честно писал Logged in using ChatGPT. Файл входа на ПК не обновлялся с 9 октября, а токен в нём уже был недействителен. Почему именно, я не выяснял. Судя по тексту ошибки, токен обновления кто-то уже использовал, а этот ПК остался со старой копией.

codex login status показывает, какой способ входа сохранён. Рабочий ли токен, команда не проверяет: это видно только по настоящему запросу к модели. Лечится выходом и новым входом:

codex logout
codex login --device-auth

Сам файл входа (%USERPROFILE%\.codex\auth.json) не копируйте между машинами и никому не пересылайте. По нему можно работать от вашего имени.

Песочница Codex на Windows: elevated и unelevated

Песочница следит, чтобы команды Codex не выходили за выданные права. Что можно читать, куда писать и пускать ли в сеть, задаёт режим прав: с workspace-write Codex пишет в папку проекта, с read-only только читает.

Сейчас у песочницы на Windows три варианта:

  • mxc, рекомендуемая на совместимых устройствах. Использует встроенную изоляцию процессов Windows и не требует прав администратора, отдельных пользователей и правил брандмауэра. Нужна Windows 11 24H2 (сборка 26100.9278) или 25H2 и свежий Codex. Приложение для личных аккаунтов включает её само, в CLI она включается так:
[features]
prefer_mxc = true
  • elevated, запасная, если mxc недоступна.
  • unelevated, запасная, если не настраивается elevated.

У меня сборка 22000, mxc на ней нет. Поэтому дальше речь о двух старых вариантах, которые работают на любой Windows 11. Выбор задаётся в %USERPROFILE%\.codex\config.toml:

[windows]
sandbox = "elevated"   # или "unelevated"
  • elevated надёжнее. Codex заводит в системе отдельных пользователей с урезанными правами (у меня это CodexSandboxOffline и CodexSandboxOnline), правила брандмауэра и права на папки. Для этого при первой настройке Windows спросит права администратора.
  • unelevated запасной режим. Команды идут от вашего пользователя с урезанным токеном, права на файлы ограничены, но отдельных пользователей нет и сеть изолирована слабее.

Из двух старых OpenAI советует elevated, а unelevated включать, только если elevated не настраивается.

Ловушка: setup refresh had errors

Это вторая поломка. После нового входа я дал Codex задачу: дописать функцию add(a, b) в hello.py, написать на неё тест pytest и запустить его. Через 71 секунду Codex честно ответил, что ничего не сделал:

Failed to create unified exec process: helper_unknown_error: setup refresh had errors
No — an environment setup error prevented editing the files and running pytest.

Ни один файл не изменился, на попытки ушло около 20 тысяч токенов.

Причина нашлась в журнале песочницы %USERPROFILE%\.codex\.sandbox\sandbox.<дата>.log:

runtime read/execute validation failed: ... \OpenAI\Codex\runtimes\cua_node\...\node_repl.exe:
open ACL target for root-only update: ... (os error 32)

os error 32 в Windows значит «файл занят другим процессом». Песочница при каждом запуске заново выставляет права на нужные ей файлы. Один из них, node_repl.exe из среды управления компьютером в приложении Codex, был занят, и настройка падала целиком. Чем именно он был занят, я не выяснял. Моё предположение: тем же приложением Codex, которое было открыто на ПК. Это не проверено.

Что я сделал: запустил ту же задачу в режиме unelevated, не трогая общий конфиг, одним флагом:

codex exec -s workspace-write -c 'windows.sandbox="unelevated"' "Add a function add(a, b) to hello.py and a pytest test in test_hello.py. Run the test."

Результат: 56 секунд, 15,7 тысячи токенов, файлы на месте, 1 passed. По дороге была ещё одна ошибка. Обычный запуск pytest упал на ImportError: DLL load failed while importing _ssl: один из плагинов pytest тянет за собой модуль ssl, а в песочнице не загрузилась его библиотека. Codex сам обошёл это: отключил автозагрузку плагинов (PYTEST_DISABLE_PLUGIN_AUTOLOAD=1) и запустил тест ещё раз. Если ваши тесты зависят от плагинов pytest, в unelevated режиме проверьте, что они грузятся.

Codex написал ровно то, что просили:

def add(a, b):
    return a + b
from hello import add
def test_add():
    assert add(2, 3) == 5

Если у вас та же ошибка, порядок такой:

  1. Откройте журнал .sandbox\sandbox.<дата>.log и найдите строку с error. Там будет файл и код ошибки.
  2. Если это os error 32, попробуйте закрыть приложение ChatGPT/Codex и запустить задачу ещё раз. Я этот вариант не проверял, сразу перешёл к пункту 4.
  3. Если ошибка про права или политику, повторите настройку elevated и подтвердите запрос администратора.
  4. Не помогло: включите sandbox = "unelevated" и работайте, пока разбираетесь.

Режим полного доступа (danger-full-access) как обходной путь я не включаю. В нём Codex может писать и удалять файлы вне проекта.

Первая задача в Codex CLI

В интерактивном режиме перейдите в папку проекта и запустите codex, дальше пишете задачу обычным текстом. Для одноразовой задачи без диалога есть codex exec:

cd C:\projects\my-app
codex exec -s workspace-write "Найди, почему падает тест test_login, и почини"

-s workspace-write разрешает писать в папку проекта. Без этого флага codex exec только читает файлы.

codex exec требует, чтобы папка была Git-репозиторием: так проще смотреть и откатывать его правки. В папке без Git нужен флаг --skip-git-repo-check.

Мелочь, которую я заметил: в unelevated режиме pytest не смог записать свой кэш и оставил в папке пустые pytest-cache-files-*. На результат это не влияет, но в .gitignore их лучше добавить.

Частые ошибки Codex на Windows

401 refresh token was already used. Токен входа умер, хотя codex login status пишет «Logged in». Выполните codex logout, потом codex login --device-auth.

setup refresh had errors. Песочница не смогла выставить права на файлы. Смотрите .codex\.sandbox\sandbox.<дата>.log. При os error 32 файл занят другим процессом: попробуйте закрыть приложение Codex или временно переключитесь на unelevated.

DLL load failed while importing _ssl в тестах. Так было у меня в unelevated режиме. Codex обошёл это, отключив автозагрузку плагинов pytest: PYTEST_DISABLE_PLUGIN_AUTOLOAD=1.

Скрипт установки не запускается. PowerShell запрещает скрипты. Команда установки из документации уже содержит -ExecutionPolicy ByPass, запускайте её целиком, в новом окне PowerShell.

codex не находится после установки через npm. Откройте новое окно терминала, чтобы обновился PATH. Проверьте, что npm prefix -g есть в PATH.

Медленно работает в WSL. Проект лежит в /mnt/c/.... Перенесите его в домашнюю папку Linux.

Сетевой диск не виден Codex. Диски, подключённые в вашей обычной сессии Windows, не видны в сессии SSH и в песочнице. Работайте с локальным путём или подключайте диск в той же сессии.

Коротко

  • Codex на Windows работает напрямую, без WSL. WSL нужен только для Linux-проектов.
  • Codex CLI ставится одной командой PowerShell или через npm install -g @openai/codex.
  • Для удалённого входа есть codex login --device-auth. Строка «Logged in» в codex login status не значит, что токен рабочий.
  • На совместимой Windows 11 (24H2 и новее) песочница mxc не требует настройки: приложение для личных аккаунтов выбирает её само, в CLI её включает prefer_mxc = true. На старых сборках, если elevated не настраивается, причина в журнале .codex\.sandbox, а запасной режим unelevated включается одним флагом.

Codex у меня работает в паре с другими агентами. Как я делю между ними работу, описал в статье про Hermes Agent и OpenClaw.

Читайте также

Источники

  1. Codex CLI, установка (документация OpenAI)
  2. Песочница Codex на Windows (документация OpenAI)
  3. Codex в WSL (документация OpenAI)
  4. Приложение ChatGPT для Windows (документация OpenAI)
Консультация · 60 минут · 6 000 ₽Обсудить свою задачуОпишите задачу в Telegram-боте, разберём её на созвоне.