# Codex с OpenCheese

> Codex CLI, Codex Desktop и расширение для IDE на OpenCheese: провайдер модели в config.toml, Responses API, API-ключ, уровень рассуждений, решение проблем.
>
> Веб-страница: https://opencheese.dev/ru/docs/codex/ · Все страницы документации: https://opencheese.dev/ru/docs.md

Codex работает с OpenAI Responses API, который OpenCheese предоставляет по адресу
`https://api.opencheese.dev/v1`. Нужен Codex 0.120 или новее: более старые сборки используют
протокол chat, который OpenAI удалила, и их конфигурация не загрузится.

Codex CLI, настольное приложение Codex и расширение Codex для IDE (VS Code, Cursor и другие форки
VS Code) читают один и тот же `~/.codex/config.toml`, поэтому одной настройки хватает на все три.

## Самый быстрый способ: сгенерированный файл

Войдите в аккаунт, откройте страницу **Настройка**, перейдите на вкладку **Codex**, выберите
API-ключ и подтвердите пароль, затем объедините сгенерированный файл со своей пользовательской
конфигурацией:

| Система | Файл |
| --- | --- |
| macOS и Linux | `~/.codex/config.toml` |
| Windows | `%USERPROFILE%\.codex\config.toml` |
| Codex внутри WSL | `~/.codex/config.toml` в вашем домашнем каталоге WSL |

## Ручная настройка

```toml
model = "MODEL_ID"
model_provider = "opencheese"
model_reasoning_summary = "auto"

[model_providers.opencheese]
name = "OpenCheese"
base_url = "https://api.opencheese.dev/v1"
wire_api = "responses"
env_key = "OPENCHEESE_API_KEY"
request_max_retries = 4
stream_max_retries = 5
stream_idle_timeout_ms = 300000
```

Затем экспортируйте ключ в той оболочке, из которой запускается Codex, причём в одинарных кавычках
(в ключе есть символы `$`, которые в двойных кавычках оболочка раскрыла бы):

```bash
export OPENCHEESE_API_KEY='YOUR_OPENCHEESE_API_KEY'
```

- `base_url` должен заканчиваться на `/v1`: Codex сам добавляет `/responses`.
- `wire_api` должен быть равен `"responses"`; текущие версии Codex отклоняют `"chat"`.
- Все корневые ключи (`model`, `model_provider`, ...) должны стоять до первого заголовка
  `[table]`, иначе файл не удастся разобрать.
- Сгенерированный файл хранит ключ в `experimental_bearer_token`. `env_key`, напротив, держит его
  вне файла. Используйте что-то одно, но не оба сразу: Codex отклоняет такую комбинацию.
- Держите эти настройки в пользовательской конфигурации. В `.codex/config.toml` внутри проекта
  Codex игнорирует `model_provider` и выводит предупреждение при запуске.

## Модели и уровень рассуждений

`/model` в Codex показывает встроенные в Codex модели OpenAI, а не каталог OpenCheese; модель из
этого списка работает, только если у вашего ключа есть модель с таким же ID. Чтобы
использовать любую другую модель, задайте `model` в `config.toml` или запустите Codex с нужной
моделью на эту сессию:

```bash
codex -m MODEL_ID
```

`model_reasoning_effort` задаёт начальный уровень рассуждений (например, `"high"`); сгенерированный
файл начинает с `max`, если модель его поддерживает, иначе с `high` или `medium`. Если модель не
поддерживает выбранный уровень, запрос отклоняется с сообщением, в котором перечислены доступные
ей уровни. Codex читает `config.toml` только при запуске, поэтому перезапускайте его после каждой
правки.

В режиме **Fast** Codex переключается на Fast-версию модели, если она есть: ответы приходят быстрее
и стоят дороже. Если у модели нет Fast-версии, отвечает обычная.

## Расход и стоимость

Каждый запрос отображается в панели на странице **Транзакции** с расходом токенов и
стоимостью; запросы одного разговора объединены в одну сессию.

## Решение проблем

- **Конфигурация не загружается**: обновите Codex до версии 0.120 или новее и проверьте, что ни
  один корневой ключ не стоит после заголовка `[table]`.
- **«Invalid or disabled OpenCheese API key»**: проверьте ключ на странице **API-ключи**, а также
  что переменная `OPENCHEESE_API_KEY` задана в оболочке, из которой запускается Codex.
- **Вместо API отвечает сайт**: в `base_url` должен быть указан `api.opencheese.dev`.
- **`/model` не показывает мои модели OpenCheese**: так и должно быть: эта команда показывает
  встроенный каталог Codex. Задайте `model` в `config.toml` или используйте `codex -m MODEL_ID`.
