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_64codex-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_url—https://bettertoken.ai/v1;wire_api—responses;model_providerсовпадает с provider id в[model_providers.custom];requires_openai_auth—false;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.