Перейти к навигации

Подключение BeatAPI к Codex CLI

Подключение BeatAPI к Codex CLI

Codex CLI — агент для программирования в терминале: он читает и записывает файлы, запускает команды и выполняет задачу от начала до конца. Он обращается к поставщику в формате OpenAI Responses, который BeatAPI поддерживает через POST /v1/responses. Поэтому BeatAPI добавляется как поставщик, а не как отдельный прокси.

Что понадобится

  1. Установленный Node.js: LTS-версия v20 или новее.
  2. API-ключ BeatAPI: создайте его в Dashboard → API Keys.

Шаг 1. Установите Codex CLI

npm install -g @openai/codex

В macOS и Linux при ошибке прав доступа добавьте sudo перед командой.

Проверьте установку:

codex --version

Шаг 2. Добавьте BeatAPI как поставщика

Codex CLI хранит конфигурацию поставщиков в ~/.codex/ (C:\Users\<you>\.codex\ в Windows). Если каталога нет, один раз запустите codex и выйдите через Ctrl + C. Каталог будет создан автоматически.

2.1. Ключ

Создайте или измените ~/.codex/auth.json:

{
"OPENAI_API_KEY": "<BEATAPI_API_KEY>"
}

2.2. Поставщик

Создайте или измените ~/.codex/config.toml:

# Default model
model = "gpt-5.6-sol"
# Default provider — must match the id in [model_providers.<id>] below
model_provider = "beatapi"
[model_providers.beatapi]
name = "BeatAPI"
base_url = "https://api.beatapi.io/v1"
wire_api = "responses"
requires_openai_auth = true
ПолеЗначение
modelID модели из таблицы ниже
model_providerДолжен совпадать с ID в [model_providers.<id>]
nameПроизвольное отображаемое название
base_urlhttps://api.beatapi.io/v1: с /v1, без завершающего слеша
wire_apiresponses. В актуальных версиях Codex протокол chat удалён
requires_openai_authПри true Codex берёт ключ из auth.json

Настройки поставщика действуют только в пользовательском файле ~/.codex/config.toml. Codex игнорирует model_provider и model_providers в проектном .codex/config.toml и показывает предупреждение при запуске. ID openai, ollama и lmstudio зарезервированы, поэтому в примере задан новый ID, а не переопределён существующий.

После сохранения обоих файлов перезапустите Codex CLI.

Альтернатива: переменная окружения вместо auth.json

[model_providers.beatapi]
name = "BeatAPI"
base_url = "https://api.beatapi.io/v1"
wire_api = "responses"
env_key = "BEATAPI_API_KEY"

Затем экспортируйте BEATAPI_API_KEY в профиле оболочки. Файл auth.json больше не нужен. Так ключ не окажется в файле, который легко случайно закоммитить.

Шаг 3. Проверьте подключение и начните работу

codex "Introduce yourself in one sentence"

Если модель ответила, подключение настроено. Экран входа, 401 или 403 означают проблему с настройкой. См. частые вопросы ниже.

Запустите codex без аргументов, чтобы открыть интерактивный интерфейс, и опишите задачу обычным языком:

Create an Express.js server with a JSON health check endpoint

Codex проанализирует проект, напишет код и запустит команды, запрашивая разрешение на чувствительные действия.

Режимы подтверждения

РежимПоведение
Read OnlyЧтение файлов; запись и запуск команд требуют подтверждения
AutoЧтение, запись и запуск команд в рабочем каталоге
Full AccessДействия без подтверждений

Начните с Auto. Режим можно изменить командой /approvals.

Модели

Переключайте модель через /model в интерактивном интерфейсе либо измените model в config.toml и перезапустите Codex.

ID моделиДля каких задач подходит
gpt-5.6-solСамый сильный вариант для программирования; основной выбор для Codex
gpt-6-astraНовое поколение; тариф повышается при входе свыше 272K токенов
gpt-5.6-terraБаланс возможностей и стоимости для обычных задач
gpt-5.6-lunaБыстрые недорогие шаги в большом количестве

Все текстовые модели аккаунта отвечают через /v1/responses, поэтому выбор не ограничен этой таблицей. См. Text API. Тарифы приведены на странице цен.

У gpt-6-astra и семейства GPT-5.6 тариф повышается при входе свыше 272K токенов, у grok-4.5, grok-4.6 и grok-4.7 — свыше 200K. Длительная сессия агента может пересечь порог без уведомления в терминале. При расчёте бюджета сверяйтесь со страницей цен и записями использования.

Основные команды

КомандаНазначение
codexОткрыть интерактивный интерфейс
codex "task"Запустить с начальной инструкцией
codex exec "task"Выполнить задачу без интерактивного режима и выйти
codex --model gpt-5.6-terraЗапустить с указанной моделью
/modelПереключить модель в интерфейсе
/approvalsИзменить режим подтверждения
Ctrl + CВыйти

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

При запуске появляется экран входа

Конфигурация не считывается.

  1. Оба файла должны находиться в ~/.codex/, а не в каталоге проекта.
  2. model_provider должен точно совпадать с ID в [model_providers.<id>].
  3. auth.json должен быть корректным JSON, а config.toml — корректным TOML. Частая причина ошибки — типографские кавычки вместо прямых.

401 или 403

СтатусПричинаЧто делать
401missing_api_key или invalid_api_key: ключ отсутствует, неверен, просрочен, отключён или его лимит расходов исчерпанСверьте ключ в auth.json с Dashboard → API Keys
403forbidden: ключу или аккаунту недоступна модель, например при оплате бонусомПроверьте состояние аккаунта и запрошенную модель

Также убедитесь, что base_url равен https://api.beatapi.io/v1, а не адресу поставщика модели.

Значение wire_api = "chat" отклоняется

В актуальных версиях Codex протокол Chat Completions удалён. Укажите wire_api = "responses" и перезапустите Codex. BeatAPI поддерживает Responses, других изменений не требуется.

Все запросы возвращают 404

Обычно причина в базовом адресе. Он должен оканчиваться на /v1, без завершающего слеша и дополнительного пути.

402 insufficient_credits

Баланс равен нулю или меньше стоимости запроса. Пополните его в панели управления.

429 rate_limit_exceeded

Ключ превысил лимит частоты запросов. Подождите время из заголовка Retry-After. Минутный лимит растёт с общей суммой пополнений и отображается в панели управления.

Не работают вызовы инструментов

Убедитесь, что задано wire_api = "responses". Если определённая модель всё равно некорректно работает с протоколом инструментов Codex, попробуйте gpt-5.6-sol: это наиболее проверенное сочетание.

Поддержка

Создайте обращение в панели управления и укажите request_id из ответа с ошибкой.