OpenCode

Настройка OpenCode с PlusVibe API через ~/.config/opencode/opencode.json: OpenAI-совместимый провайдер, baseURL plusvibeapi.ru/v1.

OpenCode — npm-пакет для агентного кодирования в терминале. Провайдеры настраиваются в ~/.config/opencode/opencode.json.

Готовый конфиг со всеми моделями

OpenCode не читает размер контекста из /v1/models: у модели, добавленной вручную, он показывает контекст 0 и не сжимает историю вовремя. Вместо ручного ввода скачайте готовый конфиг — его собирает наш каталог: все опубликованные модели с названием, контекстом, лимитом ответа и флагами «картинки / рассуждения / инструменты». Ключа внутри нет, только ссылка {env:PLUSVIBE_API_KEY}.

# macOS / Linux — новый конфиг со всеми моделями и их контекстом
mkdir -p ~/.config/opencode
curl -fsSL https://plusvibeapi.ru/api/integrations/opencode.json -o ~/.config/opencode/opencode.json
# Windows PowerShell
New-Item -ItemType Directory -Force "$HOME\.config\opencode" | Out-Null
Invoke-WebRequest https://plusvibeapi.ru/api/integrations/opencode.json -OutFile "$HOME\.config\opencode\opencode.json"

Если opencode.json уже настроен под себя, не перезаписывайте его — замените только блок провайдера, остальные настройки останутся:

# Уже есть свой opencode.json — заменить только блок провайдера (нужен jq)
cd ~/.config/opencode && cp opencode.json opencode.json.bak
curl -fsSL https://plusvibeapi.ru/api/integrations/opencode.json -o provider.json
jq --slurpfile pv provider.json '.provider = ((.provider // {}) + $pv[0].provider)' opencode.json.bak > opencode.json
# Только нужные модели (ID через запятую); ?variants=1 — ещё и закреплённые каналы
curl -fsSL "https://plusvibeapi.ru/api/integrations/opencode.json?models=anthropic/claude-opus-5,openai/gpt-5.6-luna"
Каталог меняется — появились новые модели, повторите ту же команду. Старые записи моделей, которые вы вводили вручную, удалите: иначе в списке будут дубли с контекстом 0.

opencode.json вручную

{
  "provider": {
    "plusvibe": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "https://plusvibeapi.ru/v1",
        "apiKey": "{env:PLUSVIBE_API_KEY}"
      },
      "models": {
        "gpt-5.6-terra": {
          "attachment": true,
          "modalities": { "input": ["text", "image"], "output": ["text"] }
        },
        "claude-opus-4.8": {
          "attachment": true,
          "modalities": { "input": ["text", "image"], "output": ["text"] }
        }
      }
    }
  }
}

Задайте PLUSVIBE_API_KEY в shell и запустите OpenCode обычным способом.

В models укажите только нужные публичные ID моделей. Полный список — в каталоге. Для обычной работы используйте голое имя без :suffix: суффикс закрепляет один канал и отключает автоматическое переключение на здоровый канал.
Картинки: нужен "attachment": true. OpenCode берёт список возможностей моделей из справочника models.dev, а PlusVibe в нём нет — поэтому у модели, описанной пустым {}, вложения считаются недоступными, и OpenCode отправляет запрос без изображения. Модель честно отвечает, что картинку не видит, хотя у неё есть зрение. Добавьте attachment и modalities каждой модели, у которой в каталоге указан ввод «изображение».
OpenCode + PlusVibe API — opencode.json провайдер | PlusVibe API