На Windows работать с Codex можно двумя путями, и выбор между ними - это выбор модели выполнения, а не оболочки по вкусу. Нативный путь - PowerShell, альтернатива - WSL2. Это не косметическое различие: у них разные реализации sandbox и разные предположения о путях и runtime. То, что в WSL2 выглядит как обычный Linux-toolchain, в нативном Windows работает иначе, поэтому сначала решают, где будет исполняться работа, а уже потом настраивают detали.
У нативной настройки Windows есть свои команды восстановления. Если CLI работает в ослабленном режиме, помогает /setup-default-sandbox - он приводит sandbox к рабочему состоянию по умолчанию. Отдельная деталь: /sandbox-add-read-dir добавляет абсолютный путь на чтение только на Windows. Это платформенная специфика, которую держат в голове: команды и поведение, верные в WSL2 или на macOS, на нативном Windows могут называться иначе или отсутствовать, и это проверяют, а не переносят по аналогии.
WSL2 привлекателен ровно тем, что даёт привычную Linux-среду с более сильной изоляцией, но и у него своя цена. Пути и runtime внутри WSL2 - это Linux-мир, отдельный от Windows-файловой системы, и смешивать их бездумно - источник путаницы с производительностью и доступом. Выбор WSL2 оправдан, когда весь toolchain и так Linux; нативный Windows - когда работа завязана на Windows-инструменты и скрипты. Решают по природе задачи, а не по тому, какая оболочка привычнее.
Remote connection - это принципиально другая ось: она отделяет интерфейс от хоста выполнения. UI у вас, а вычисление идёт на удалённой машине. Это мощно, но открывает целый список того, что нужно проверить перед доверием: адрес сервера, TLS, источник auth-токена, удалённый текущий каталог, версию и sandbox на той стороне. Каждый из этих пунктов - потенциальная дыра: не тот адрес, отсутствие TLS, токен из неверного источника или неожиданный sandbox на удалённом хосте.
Полезно один раз увидеть безопасное подключение к удалённому хосту. Ниже - codex --remote с адресом wss:// и --remote-auth-token-env, передающим bearer-токен из переменной окружения. Ключевая деталь: --remote-auth-token-env передаёт токен только допустимому remote endpoint, а для внешнего хоста нужен именно wss:// - защищённый транспорт. Токен из окружения, а не из командной строки, и защищённый транспорт - это минимум, ниже которого для удалённого подключения опускаться нельзя.
Вокруг remote есть два заблуждения, которые стоит развеять. Первое: API-ключ не доказывает доступ к ChatGPT workspace или cloud - это разные вещи, и наличие ключа не означает, что удалённая сторона даст доступ к workspace-функциям. Второе, более опасное: remote daemon не должен слушать публичный интерфейс без аутентификации и терминации TLS. Демон, открытый в сеть без защиты, - это приглашение выполнить код на вашей машине, а не удобство удалённой работы.
Общий принцип этой главы - выбирать модель выполнения осознанно, потому что от неё зависит и sandbox, и пути, и путь восстановления. Полезно один раз свести режимы в таблицу: нативный Windows elevated с выделенными пользователями и firewall-правилами, нативный unelevated как fallback с более слабыми ограничениями, WSL2 для Linux-toolchain. Один и тот же prompt в разных моделях выполнения встречает разные границы, и понимать, в какой именно вы работаете, - часть той же наблюдаемости, что и везде.
Типичные провалы вокруг Windows, WSL и remote предсказуемы. Выбрать оболочку по привычке, а не модель выполнения по задаче, и удивиться разному поведению sandbox. Перенести команду из WSL2 на нативный Windows по аналогии, хотя там она называется иначе. Подключиться к удалённому хосту без проверки TLS, токена и sandbox. И оставить remote daemon на публичном интерфейсе без auth и TLS. Выбирайте модель выполнения осознанно, проверяйте платформенную специфику и не поднимайте remote без защищённого транспорта и аутентификации.
| Режим | Sandbox | Когда выбирать |
|---|---|---|
| Native Windows elevated | Выделенные users, filesystem boundaries, firewall | Windows toolchain и native scripts |
| Native Windows unelevated | Fallback с более слабыми ограничениями | Нет admin-прав |
| WSL2 | Более сильная Linux-изоляция | Linux-toolchain |
# Windows native: восстановление sandbox
/setup-default-sandbox # если CLI в degraded mode
/sandbox-add-read-dir <path> # absolute read path, только на Windows
# Remote: UI отдельно от execution host
codex --remote wss://codex.example.com/session \
--remote-auth-token-env CODEX_REMOTE_TOKEN
# внешний host требует wss://; API key != доступ к ChatGPT workspace/cloud
# remote daemon не слушает public interface без auth и TLS