Как установить Codex CLI и запустить первую задачу

Codex CLI — терминальный coding-агент от OpenAI, написанный на Rust. Он запускается локально, работает с кодом в репозитории и выполняет задачи в изолированной среде. Установить его можно четырьмя способами: через автономный инсталлятор, npm, Homebrew cask или бинарник с GitHub Releases.

После установки можно выбрать способ подключения: официальную авторизацию OpenAI через ChatGPT или OpenAI API Key либо custom provider BetterToken API. В обоих случаях запускается одна и та же команда codex — отдельной версии Codex от BetterToken устанавливать не нужно.

Что понадобится перед установкой

Базовые системные требования из официальной инструкции по установке:

Платформа Требование
macOS 12 (Monterey) и выше
Linux Ubuntu 20.04+ / Debian 10+
Windows Windows 11 через WSL2; для нативного запуска действует отдельная документация

Node.js нужен только при установке через npm. Автономный инсталлятор, Homebrew cask и архив из GitHub Releases устанавливают готовый исполняемый файл.

Для официального входа через ChatGPT нужен ChatGPT-аккаунт, а для официального API-доступа — ключ с platform.openai.com. Для подключения через BetterToken нужен собственный аккаунт BetterToken и созданный в нём API Key. Node.js требуется для автоматического скрипта настройки BetterToken provider, даже если сам Codex был установлен другим способом.

Установка Codex CLI

macOS и Linux — автономный инсталлятор

Самый простой способ, Node.js не нужен:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

После завершения установки проверьте команду:

codex --version

Если видите номер версии — команда доступна.

macOS — Homebrew cask

brew install --cask codex

npm — macOS, Linux, Windows

Требуется Node.js с работающим npm. Минимальную версию Node.js смотрите в поле engines пакета на npmjs.com/@openai/codex.

npm install -g @openai/codex

Если после установки команда codex не найдена, глобальная npm-директория не в PATH. Найдите нужный путь:

npm config get prefix

Сопоставьте этот каталог с переменной PATH в своей оболочке и перезапустите терминал. Не добавляйте /bin вслепую: структура глобального каталога зависит от ОС и способа установки Node.js.

Linux — бинарник с GitHub Releases

На github.com/openai/codex/releases доступны готовые Linux-архивы:

  • codex-x86_64-unknown-linux-musl.tar.gz — для x86_64
  • codex-aarch64-unknown-linux-musl.tar.gz — для arm64

Распакуйте архив, переименуйте исполняемый файл в codex и поместите его в доступную вам директорию из PATH.

Windows

Codex CLI на Windows запускается нативно или внутри WSL2. В актуальной документации Windows Windows 11 указан как рекомендуемая база для нативного режима; полностью обновлённая Windows 10 поддерживается в режиме best effort.

Нативный Windows (PowerShell). Официальный инсталлятор:

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

При нативном запуске Codex изолирует выполнение задач через Windows Sandbox. Режим задаётся в ~/.codex/config.toml:

[windows]
sandbox = "elevated"
Значение Описание
"elevated" Рекомендуется: выделенный пользователь sandbox + правила файрволла
"unelevated" ACL-ограничения текущего пользователя без выделенного sandbox

WSL2. Установите Linux-версию Codex CLI внутри WSL2 по инструкции для Linux. Для Linux-инструментов OpenAI рекомендует хранить проект в файловой системе WSL, а не под /mnt/.

Как подключить тот же Codex CLI к BetterToken API

BetterToken не заменяет Codex CLI другим приложением. Установленный выше официальный codex продолжает работать как обычно, а в config.toml меняется model provider. Этот путь используется вместо официальной авторизации OpenAI, когда запросы к моделям должны идти через BetterToken API.

Сначала создайте аккаунт BetterToken и API Key. Остановите запущенный Codex и удалите из текущей среды старые переменные OpenAI, которые могут переопределить config.toml.

macOS и Linux:

unset OPENAI_API_KEY
unset OPENAI_BASE_URL

Windows PowerShell:

Remove-Item Env:OPENAI_API_KEY -ErrorAction SilentlyContinue
Remove-Item Env:OPENAI_BASE_URL -ErrorAction SilentlyContinue
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", $null, "User")
[Environment]::SetEnvironmentVariable("OPENAI_BASE_URL", $null, "User")

Автоматическая настройка BetterToken provider

Скрипт настраивает только provider BetterToken и не устанавливает сам Codex CLI. Для его работы нужен Node.js. Если API Key и модель не переданы параметрами, в интерактивном терминале скрипт запросит их сам — не вставляйте секрет в командную строку.

macOS и Linux:

curl -fsSL https://bettertoken.ai/install-codex-provider.sh | bash

Windows PowerShell:

iwr https://bettertoken.ai/install-codex-provider.ps1 -OutFile "$env:TEMP\install-codex-provider.ps1"; powershell -ExecutionPolicy Bypass -File "$env:TEMP\install-codex-provider.ps1"

Используйте только команду для своей операционной системы. В готовой конфигурации проверьте:

  • base_urlhttps://bettertoken.ai/v1;
  • wire_apiresponses;
  • model_provider совпадает с provider id в [model_providers.custom];
  • requires_openai_authfalse;
  • model скопирован из актуальной группы GPT Key на странице моделей BetterToken.

Если конфигурацией управляет CC Switch, не заменяйте её ручным блоком из другой инструкции. Полные варианты автоматической, CC Switch и ручной настройки собраны в официальной документации подключения Codex к BetterToken.

Официальная авторизация OpenAI

Следующие команды относятся к официальному подключению OpenAI. При использовании custom provider BetterToken команда codex login status не является проверкой BetterToken API: для этого нужно запустить тестовую задачу и проверить ответ.

Вход через ChatGPT

Выполните команду:

codex login

Откроется браузер — завершите вход через свой ChatGPT-аккаунт. Codex сохранит сессию локально, при следующих запусках повторный вход не нужен.

Если запустить codex без аргументов до авторизации, интерфейс тоже предложит войти. Основной способ инициировать вход — codex login.

Вход через API Key

Не передавайте ключ как аргумент команды и не выводите его через echo — значение попадёт в историю shell.

Задайте переменную OPENAI_API_KEY в текущей рабочей среде или через менеджер секретов. Не вставляйте значение в текст статьи, команду или вывод. Когда переменная задана, передайте её через stdin pipe:

printenv OPENAI_API_KEY | codex login --with-api-key

Значение ключа не отображается на экране и не попадает в историю команд.

Проверка авторизации

После входа проверьте статус:

codex login status

Команда показывает текущий способ авторизации или сообщает, что вход не выполнен.

Если статус указывает на отсутствие авторизации — повторите вход соответствующим способом.

Для выхода и удаления сохранённых учётных данных:

codex logout

Файл ~/.codex/auth.json содержит токен доступа — обращайтесь с ним как с паролем. Не удаляйте его вручную: для очистки всегда используйте codex logout.

Документация по авторизации: developers.openai.com/codex/auth. Справочник login-подкоманд и флагов: developers.openai.com/codex/cli/reference.

Первая задача в тестовом репозитории

Начинайте в тестовом репозитории, чтобы не затрагивать рабочий код. Клонируйте любой публичный репозиторий, например сам Codex:

git clone https://github.com/openai/codex codex-test
cd codex-test

Запустите только-читаемую задачу:

codex --sandbox read-only "Explain the entry point of this project"

Флаг --sandbox read-only разрешает model-generated командам только чтение. Если Codex вернул осмысленное описание структуры без изменения файлов, первый запуск завершён.

Для продолжения в TUI с тем же ограничением запустите:

codex --sandbox read-only

Введите в интерфейсе: What files are in this project and what does each do?

Если вы используете официальное подключение OpenAI, убедитесь, что авторизация остаётся активной:

codex login status

Если вы используете BetterToken provider, нормальный ответ подтверждает соединение. Дополнительно можно открыть Dashboard BetterToken и убедиться, что запрос, модель и расход input/output/cache tokens появились в истории использования.

Что делать, если что-то не работает

codex: command not found после npm install

Выполните npm config get prefix, сопоставьте полученный каталог с PATH и перезапустите терминал. Точный исполняемый путь зависит от ОС и способа установки Node.js, поэтому не добавляйте /bin вслепую.

Браузер не открылся при входе через ChatGPT

На удалённом сервере без графического интерфейса сначала попробуйте официальный device-code flow (beta):

codex login --device-auth

Его нужно предварительно разрешить в настройках безопасности ChatGPT или в разрешениях workspace. Если этот вариант недоступен, используйте вход через API Key:

printenv OPENAI_API_KEY | codex login --with-api-key

Подробности о callback, device code и запасных вариантах перечислены в официальной документации авторизации.

Codex не отвечает после подключения BetterToken

Проверьте пять пунктов: base_url равен https://bettertoken.ai/v1, wire_api остаётся responses, model ID взят из актуальной группы GPT Key, model_provider совпадает с [model_providers.custom], а старые OPENAI_API_KEY и OPENAI_BASE_URL не переопределяют конфигурацию. После изменения config.toml полностью перезапустите Codex в новом терминале.

codex login status показывает Not logged in

  • Вход через ChatGPT: выполните codex login ещё раз и завершите вход в браузере.
  • Вход через API Key: убедитесь, что OPENAI_API_KEY задана в рабочей среде, затем повторите printenv OPENAI_API_KEY | codex login --with-api-key.
  • Не удаляйте ~/.codex/auth.json вручную — используйте codex logout.

Документация Codex CLI: github.com/openai/codex. Подключение того же Codex CLI к BetterToken API: docs.bettertoken.ai/en/ai-tools/codex.