# OpenCode с OpenCheese

> OpenCheese в OpenCode: автосинхронизация по персональной ссылке, готовый файл opencode.json, ручная настройка, варианты моделей, OpenCode 2 и решение проблем.
>
> Веб-страница: https://opencheese.dev/ru/docs/opencode/ · Все страницы документации: https://opencheese.dev/ru/docs.md

OpenCode подключается к OpenCheese как OpenAI-совместимый провайдер по адресу
`https://api.opencheese.dev/v1`. OpenCode 1.x и 2.x читают одну и ту же конфигурацию.

## Рекомендуется: автосинхронизация

С автосинхронизацией OpenCode сам загружает свои настройки OpenCheese: модели, которые вы включаете
или отключаете на странице **Цены**, а также новые модели появляются в нём без копирования файлов.

1. Войдите в аккаунт, откройте страницу **Настройка**, перейдите на вкладку **OpenCode** и
   найдите шаги автосинхронизации.
2. Выберите API-ключ, который будет использовать OpenCode, введите пароль этого ключа и создайте
   персональную ссылку.
3. Один раз выполните в терминале команду, которую показывает страница:

```bash
opencode auth login https://opencheese.dev/c/YOUR_PERSONAL_LINK
```

С этого момента OpenCode хранит ключ и загружает свою конфигурацию с OpenCheese. Для входа
запускается небольшая команда на Node.js, поэтому в `PATH` должен быть Node.js 18 или новее (так и
есть, если вы установили OpenCode через npm).

- **Обновления:** OpenCode 2 получает изменения в течение 10 минут или сразу по команде
  `opencode reload` (её лучше выполнять, когда OpenCode ничем не занят). OpenCode 1
  получает их при запуске и запускается, только если OpenCheese доступен.
- **Ваши собственные настройки:** держите небольшой `opencode.json` только с тем, что нужно вам
  самим, например с разделом `mcp`. Не перечисляйте в нём модели: указанные там модели остаются
  видимыми даже после того, как вы их отключите. Удалите или сократите `opencode.json`, который
  скопировали раньше.
- **Ссылка — это пароль:** любой, у кого она есть, может пользоваться ключом. Она показывается один
  раз. Отозвать её можно в разделе **Ваши персональные ссылки**; OpenCode, который уже выполнил вход,
  сохраняет ключ, поэтому, чтобы остановить его, отключите или удалите API-ключ. После смены пароля
  ключа снова выполните команду входа.

## Или скопируйте сгенерированный файл

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

| Система | Файл |
| --- | --- |
| macOS и Linux | `~/.config/opencode/opencode.json` |
| Windows | `%USERPROFILE%\.config\opencode\opencode.json` |

В сгенерированном файле перечислены все текстовые модели, доступные вашему ключу, с отображаемым
названием, лимитами контекста и вывода, стоимостью за токен (OpenCode показывает стоимость каждого
сообщения), вариантами рассуждений и подходящим пакетом AI SDK для каждой модели. Используйте его
вместо файла, написанного вручную, и копируйте заново после изменения тарифа или списка моделей.

## Ручная настройка с одной моделью

```json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "opencheese": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OpenCheese",
      "options": {
        "baseURL": "https://api.opencheese.dev/v1",
        "apiKey": "{env:OPENCHEESE_API_KEY}"
      },
      "models": {
        "MODEL_ID": { "name": "Model name", "variants": {} }
      }
    }
  },
  "model": "opencheese/MODEL_ID"
}
```

- `baseURL` должен заканчиваться на `/v1`.
- `{env:OPENCHEESE_API_KEY}` берёт ключ из переменной окружения; в сгенерированном файле записан сам
  ключ.
- Оставляйте `"variants": {}` у каждой модели, добавленной вручную. Без этого OpenCode 2.x предлагает
  собственные варианты рассуждений low, medium и high, которые модель может не поддерживать.
- ID моделей возьмите из ответа `GET /v1/models` с вашим ключом (см. [Модели](https://opencheese.dev/ru/docs/models.md)).

## OpenCode 2

Рекомендуемая версия — OpenCode 2. Шаг 2 на вкладке **OpenCode** переключает между OpenCode 2
(по умолчанию) и OpenCode 1 — устаревшей версией, которая поддерживается до 1 ноября; обе версии
читают одни и те же настройки. Если вы переходите с OpenCode 1: OpenCode 2 — это другой пакет, и
при первом запуске он переносит историю сессий, поэтому сначала сделайте её резервную копию. На
вкладке показаны точные команды, в том числе для возврата на OpenCode 1.

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

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

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

- **«Invalid or disabled OpenCheese API key»**: проверьте ключ на странице **API-ключи** и убедитесь,
  что переменная `OPENCHEESE_API_KEY` задана там, где запускается OpenCode. С автосинхронизацией снова
  выполните команду входа.
- **Модели нет в списке**: набор моделей зависит от вашего тарифа и ограничений ключа. С
  автосинхронизацией перезапустите OpenCode 1 или выполните `opencode reload` в OpenCode 2; если вы
  копировали файл, скопируйте его заново.
- **Отключённая модель всё ещё видна**: модель, указанная в вашем локальном `opencode.json`, остаётся
  видимой; удалите её оттуда.
- **«Not included in your current plan»**: выберите другую модель или оставьте включённым переключатель
  **Использовать модели за баланс** на странице **Обзор**, чтобы оплачивать её с баланса.
