# OpenCode через Konductor

OpenCode подключает провайдеров описанием в `opencode.json`. Konductor принимает формат OpenAI Chat Completions, поэтому подходит пакет `@ai-sdk/openai-compatible`.

## Настройка

Создай `opencode.json` в корне проекта (или в `~/.config/opencode/`) и опиши провайдера. Идентификаторы моделей возьми из каталога на странице [Цены](/konductor/pricing):

```json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "konductor": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Konductor",
      "options": {
        "baseURL": "https://llm.kodzavod.ru/v1",
        "apiKey": "{env:KONDUCTOR_KEY}"
      },
      "models": {
        "anthropic/claude-opus-5.5": {
          "name": "Claude Opus 5.5"
        }
      }
    }
  }
}
```

Что значат поля:

- `baseURL` — `https://llm.kodzavod.ru/v1`, с `/v1` на конце. SDK дописывает к нему `/chat/completions`.
- `apiKey` — ключ компании. Запись `{env:KONDUCTOR_KEY}` берёт его из переменной окружения, в файле ключа нет.
- `models` — модели, которые появятся в списке OpenCode. Ключ записи — идентификатор модели из каталога, `name` — подпись в интерфейсе.

## Первый запрос

Задай переменную и запусти OpenCode в проекте:

```bash
export KONDUCTOR_KEY="<ключ>"
opencode
```

Выбери модель командой `/models`: она появится под именем «Konductor».

## Если нужен формат Responses

Если модель ходит через `/v1/responses`, укажи в `npm` пакет `@ai-sdk/openai`. Ограничения этого формата описаны на странице [Codex CLI через Konductor](/konductor/docs/codex).

## Если запрос не прошёл

Смотри страницу [Ошибки 402, 403 и 429](/konductor/docs/errors). Лимит контекста и вывода можно сообщить OpenCode полем `limit` у модели; значения возьми из каталога на странице [Цены](/konductor/pricing).
