# OpenCode

> Подключение OpenCode к шлюзу через OpenAI-совместимого провайдера в opencode.json.

OpenCode работает через `/v1/chat/completions` в формате OpenAI.

## Быстрый старт

Сохраните ключ из кабинета в переменной окружения `AISELLER_API_KEY` — конфиг
ниже читает его оттуда:

```bash
export AISELLER_API_KEY="ваш-ключ"
```

Добавьте провайдера в `~/.config/opencode/opencode.json` (или в `opencode.json`
в корне проекта — тогда настройка действует только в нём):

```json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "aiseller": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "ai-seller",
      "options": {
        "baseURL": "https://ai-seller.vibe-codes.ru/v1",
        "apiKey": "{env:AISELLER_API_KEY}"
      },
      "models": {
        "gpt-5.6-sol": { "name": "gpt-5.6-sol" }
      }
    }
  },
  "model": "aiseller/gpt-5.6-sol"
}
```

Запустите `opencode`. Имя провайдера `aiseller` произвольное; модель задаётся
как `aiseller/<ID из каталога>`.

## Выбор модели

В `models` перечислите ID из [каталога](https://ai-seller.vibe-codes.ru/docs/models), которыми хотите
пользоваться, — OpenCode покажет их в команде `/models`. Модель по умолчанию
задаёт поле `model`.

## Как это работает

- Пакет `@ai-sdk/openai-compatible` шлёт запросы на `/v1/chat/completions` с
  вашим ключом; расход виден в кабинете.
- Инструменты OpenCode (чтение и правка файлов, команды shell) — это ваши
  функции, шлюз передаёт их модели как есть.

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

| Симптом | Причина и решение |
| --- | --- |
| Модели нет в `/models` | Она не перечислена в `provider.aiseller.models` — добавьте её ID. |
| `401 invalid_api_key` | Переменная `AISELLER_API_KEY` не задана в этом терминале или ключ отозван. |
| `404 model_not_found` | ID модели с опечаткой — сверьтесь с `GET /v1/models`. |
