> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.beatapi.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.beatapi.io/_mcp/server.

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

> Добавьте 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](https://beatapi.io/dashboard/apikeys).

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

#### npm

```bash
npm install -g @openai/codex
```

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

#### Homebrew (macOS)

```bash
brew install codex
```

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

```bash
codex --version
```

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

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

### 2.1. Ключ

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

```json
{
  "OPENAI_API_KEY": "<BEATAPI_API_KEY>"
}
```

### 2.2. Поставщик

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

```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
```

| Поле                   | Значение                                                       |
| ---------------------- | -------------------------------------------------------------- |
| `model`                | ID модели из таблицы ниже                                      |
| `model_provider`       | Должен совпадать с ID в `[model_providers.<id>]`               |
| `name`                 | Произвольное отображаемое название                             |
| `base_url`             | `https://api.beatapi.io/v1`: с `/v1`, без завершающего слеша   |
| `wire_api`             | `responses`. В актуальных версиях Codex протокол `chat` удалён |
| `requires_openai_auth` | При `true` Codex берёт ключ из `auth.json`                     |

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

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

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

```toml
[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. Проверьте подключение и начните работу

```bash
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](/text-api). Тарифы приведены на [странице цен](https://beatapi.io/pricing).

> **Note**
>
> У `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

| Статус | Причина                                                                                                                 | Что делать                                                                                |
| ------ | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `401`  | `missing_api_key` или `invalid_api_key`: ключ отсутствует, неверен, просрочен, отключён или его лимит расходов исчерпан | Сверьте ключ в `auth.json` с [Dashboard → API Keys](https://beatapi.io/dashboard/apikeys) |
| `403`  | `forbidden`: ключу или аккаунту недоступна модель, например при оплате бонусом                                          | Проверьте состояние аккаунта и запрошенную модель                                         |

Также убедитесь, что `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`: это наиболее проверенное сочетание.

## Поддержка

Создайте обращение в [панели управления](https://beatapi.io/dashboard) и укажите `request_id` из ответа с ошибкой.