Тема
Язык

OpenCode

Настройте OpenCode для работы с GetVibe API через ~/.config/opencode/opencode.json: провайдер, совместимый с OpenAI, с baseURL getvibeapi.com/v1.

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

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

OpenCode не читает размеры контекста из /v1/models: модель, добавленная вручную, показывает контекст 0, и история не компактируется вовремя. Вместо того чтобы вписывать числа вручную, скачайте сгенерированный конфиг — он собран из нашего каталога: все опубликованные модели с именем, контекстом, лимитом вывода и флагами image / reasoning / tool. В нём нет ключа, только ссылка {env:GETVIBE_API_KEY}.

# macOS / Linux — a fresh config with every model and its context
mkdir -p ~/.config/opencode
curl -fsSL https://getvibeapi.com/api/integrations/opencode.json -o ~/.config/opencode/opencode.json
# Windows PowerShell
New-Item -ItemType Directory -Force "$HOME\.config\opencode" | Out-Null
Invoke-WebRequest https://getvibeapi.com/api/integrations/opencode.json -OutFile "$HOME\.config\opencode\opencode.json"

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

# Already have an opencode.json — replace only the provider block (needs jq)
cd ~/.config/opencode && cp opencode.json opencode.json.bak
curl -fsSL https://getvibeapi.com/api/integrations/opencode.json -o provider.json
jq --slurpfile pv provider.json '.provider = ((.provider // {}) + $pv[0].provider)' opencode.json.bak > opencode.json
# Only the models you need (comma-separated IDs); ?variants=1 adds pinned channels too
curl -fsSL "https://getvibeapi.com/api/integrations/opencode.json?models=claude-opus-5.5,openai/gpt-6.1-sol"
Каталог меняется — когда появляются новые модели, выполните ту же команду снова. Удалите все записи моделей, добавленные вручную, иначе в списке появятся дубликаты с контекстом 0.

opencode.json вручную

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "getvibe": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "GetVibe",
      "options": {
        "baseURL": "https://getvibeapi.com/v1",
        "apiKey": "{env:GETVIBE_API_KEY}"
      },
      "models": {
        "gpt-6.1-sol": {
          "name": "GPT-6.1 Sol",
          "attachment": true,
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          }
        },
        "claude-opus-5.5": {
          "name": "Claude Opus 5.5",
          "attachment": true,
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          }
        },
        "deepseek-v4.1-flash": {
          "name": "DeepSeek V4.1 Flash",
          "attachment": true,
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          }
        },
        "kimi-k3.1-pro": {
          "name": "Kimi K3.1 Pro",
          "attachment": false,
          "modalities": {
            "input": [
              "text"
            ],
            "output": [
              "text"
            ]
          }
        }
      }
    }
  },
  "model": "getvibe/gpt-6.1-sol"
}

Задайте GETVIBE_API_KEY перед запуском OpenCode и запустите его из того же окна: export GETVIBE_API_KEY="sk-pv-…" (macOS/Linux) или setx GETVIBE_API_KEY "sk-pv-…" с последующим открытием нового окна PowerShell (Windows). Без этой переменной OpenCode отправляет пустой ключ и получает 401 «invalid API key». Предпочитаете обойтись без переменной? Укажите сам ключ вместо {env:GETVIBE_API_KEY} в поле apiKey.

В models перечислите только те публичные ID моделей, которые вам нужны. Полный список — в каталоге. Для обычного использования указывайте имя без :suffix: суффикс закрепляет один канал и отключает автоматическое переключение на работоспособный.
Изображениям нужен "attachment": true. OpenCode берёт возможности моделей из реестра models.dev, где GetVibe не указан, поэтому модель, у которой {} объявлен пустым, считается не принимающей вложения, и OpenCode отправляет запрос без изображения. Тогда модель честно отвечает, что не видит изображения, хотя зрение у неё есть. Добавьте attachment и modalities для каждой модели, которая в каталоге указана с поддержкой изображений на входе. Мы проверили и другие опубликованные интеграции: в примерах Cline, Cursor, Roo Code, Kilo Code, Aider и Continue нет отдельной карты возможностей моделей, так что эта настройка, относящаяся только к OpenCode, в тех конфигах не пропущена.
OpenCode + GetVibe API — провайдер opencode.json | GetVibe API