Как настроить Codex CLI на Tokenator API

Codex CLI описывает провайдеров в собственном файле config.toml. Достаточно добавить один блок [model_providers.tokenator] и указать переменную окружения с ключом — дальше агент работает как обычно.

Что получится в итоге

После настройки Codex CLI перестаёт обращаться к своему стандартному провайдеру и отправляет все запросы в Tokenator. Оплата идёт токенами вашего ключа, а список доступных моделей задаётся ключом, а не инструментом.

ИнструментCodex CLI
ПротоколOpenAI-совместимый
Base URLhttps://api.tokenator.top/v1
Ключsk-your-tokenator-key

Требования и поддерживаемые ОС

  • Windows 10/11, macOS 12+ или современный Linux с 64-битной архитектурой.
  • Доступ в интернет к домену Tokenator по HTTPS.
  • API-ключ Tokenator вида sk-your-tokenator-key.

Для установки через npm нужен Node.js LTS. У Codex CLI есть и отдельные бинарные сборки, устанавливать Node в этом случае не обязательно.

Установка Codex CLI

Установка через npm
npm install -g @openai/codex
Установка через Homebrew (macOS)
brew install --cask codex

После установки один раз запустите codex, чтобы создался каталог ~/.codex.

Настройка Tokenator

  1. Зарегистрируйтесь в личном кабинете и купите пакет токенов.
  2. Ключ появится в кабинете сразу после подтверждения оплаты — копировать его нужно целиком, вместе с префиксом.
  3. В примерах ниже вместо настоящего ключа стоит плейсхолдер sk-your-tokenator-key. Не публикуйте настоящий ключ в репозиториях и скриншотах.

Конфигурация для Windows

%USERPROFILE%\.codex\config.toml
model = "gpt-5.5"
model_provider = "tokenator"

[model_providers.tokenator]
name = "Tokenator"
base_url = "https://api.tokenator.top/v1"
env_key = "TOKENATOR_API_KEY"
wire_api = "responses"
PowerShell
$env:TOKENATOR_API_KEY = "sk-your-tokenator-key"
codex
Постоянно (cmd)
setx TOKENATOR_API_KEY "sk-your-tokenator-key"

Идентификатор провайдера не должен совпадать с зарезервированными (openai, ollama, lmstudio) — поэтому в примере он назван tokenator. Ключ в файл не записывается: env_key указывает, из какой переменной окружения его взять.

Конфигурация для macOS и Linux

~/.codex/config.toml
model = "gpt-5.5"
model_provider = "tokenator"

[model_providers.tokenator]
name = "Tokenator"
base_url = "https://api.tokenator.top/v1"
env_key = "TOKENATOR_API_KEY"
wire_api = "responses"
bash / zsh
export TOKENATOR_API_KEY="sk-your-tokenator-key"
codex

Идентификатор провайдера не должен совпадать с зарезервированными (openai, ollama, lmstudio) — поэтому в примере он назван tokenator. Ключ в файл не записывается: env_key указывает, из какой переменной окружения его взять.

Первый запрос

Перед запуском инструмента полезно убедиться, что ключ и модель рабочие. Один запрос curl отвечает на оба вопроса сразу.

Проверка OpenAI-эндпоинта
curl https://api.tokenator.top/v1/chat/completions \
  -H "Authorization: Bearer sk-your-tokenator-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [{"role": "user", "content": "ping"}]
  }'
Запуск агента
cd /path/to/project
codex

Успешный ответ означает, что ключ действителен, модель разрешена для этого ключа и апстрим доступен. Расход виден в кабинете сразу после запроса.

Переключение моделей

Модель меняется в config.toml полем model — либо на запуск, флагом codex -m <model-id>.

Примеры ID моделей, доступных сейчас:

  • claude-haiku-4-5
  • claude-opus-4-6
  • claude-opus-4-7
  • claude-sonnet-4-6
  • gpt-5.5
  • deepseek-v4-flash

Актуальные ID и характеристики — в каталоге AI-моделей; там же видно, какие модели сейчас доступны. Выбрать между близкими вариантами помогает сравнение моделей.

Настройка reasoning

Codex CLI передаёт уровень усилий рассуждения в самом запросе — в конфиге это model_reasoning_effort. Значение уходит в апстрим как есть; если модель его не поддерживает, оно игнорируется без ошибки.

Reasoning оплачивается как output-токены, поэтому высокий уровень заметно увеличивает расход.

Частые ошибки и способы исправления

СимптомПричинаЧто сделать
Codex игнорирует провайдераВ конфиге не выставлен model_provider, либо идентификатор провайдера совпал с зарезервированным.Убедитесь, что model_provider = "tokenator" находится на верхнем уровне файла, до таблиц [model_providers.*].
401 или сообщение о недействительном ключеКлюч скопирован с лишними пробелами, отозван, истёк или подставлен не в ту переменную окружения.Проверьте ключ в личном кабинете и убедитесь, что переменная окружения действительно попала в тот процесс, где запускается инструмент.
403Модель не входит в список разрешённых для этого ключа.Посмотрите список моделей ключа в кабинете и выберите ID из каталога моделей.
429Превышен лимит запросов в минуту или час либо лимит одновременных стримов для ключа.Уменьшите параллелизм агента и повторите запрос с экспоненциальной задержкой. Лимиты ключа видны в кабинете.
Модель не найдена / не поддерживаетсяВ запросе указан ID, которого нет в каталоге, либо алиас, недоступный этому ключу.Скопируйте точный API ID со страницы модели — регистр и точки значимы.
Запрос завис или обрывается на длинном ответеКлиент закрыл соединение по своему таймауту раньше, чем модель закончила генерацию.Включите потоковый режим (stream: true) и увеличьте таймаут клиента: у длинных reasoning-ответов первый токен может прийти не сразу.
Ошибка вида «Request error» без деталейАпстрим-провайдер вернул ошибку. Её текст не передаётся клиенту.Повторите запрос: Tokenator сам переключается на следующего провайдера модели. Если ошибка стабильна — напишите в поддержку.

Частые вопросы

Нужна ли подписка Codex CLI или отдельный аккаунт провайдера?

Нет. Инструмент обращается к Tokenator, а оплата идёт токенами вашего ключа Tokenator.

Где посмотреть расход после подключения?

В личном кабинете: там видны запросы, израсходованные токены и остаток лимита ключа.

Можно ли использовать один ключ в нескольких инструментах?

Да. Ограничение — лимиты самого ключа: запросы в минуту и час, а также количество одновременных стримов.

Что будет, если токены закончатся посреди сессии?

Запросы начнут возвращать ошибку. Лимит восстанавливается пополнением того же ключа — переустанавливать инструмент не нужно.

Как вернуться к прежнему провайдеру?

Уберите добавленные настройки — переменные окружения или блок провайдера в конфиге. Инструмент вернётся к своему поведению по умолчанию.

Где почитать про сам формат API?

В документации Tokenator API и на странице про OpenAI-compatible API.