Tema
Idioma

OpenCode

Configure o OpenCode com a GetVibe API por meio de ~/.config/opencode/opencode.json: um provedor compatível com a OpenAI com baseURL getvibeapi.com/v1.

OpenCode é um pacote npm para programação agêntica no terminal. Os provedores são configurados em ~/.config/opencode/opencode.json.

Configuração pronta com todos os modelos

O OpenCode não lê os tamanhos de contexto de /v1/models: um modelo adicionado manualmente mostra um contexto de 0 e o histórico não é compactado a tempo. Em vez de digitar os números, baixe a configuração gerada — ela é criada a partir do nosso catálogo: todos os modelos publicados com nome, contexto, limite de saída e flags de imagem / raciocínio / ferramentas. Ela não contém nenhuma chave, apenas a referência {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"

Se o seu opencode.json já estiver personalizado, não o substitua — troque apenas o bloco do provedor e mantenha o restante:

# 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"
O catálogo muda: quando novos modelos aparecerem, execute o mesmo comando novamente. Exclua todas as entradas de modelo que você digitou manualmente, ou o seletor exibirá duplicatas com um contexto de 0.

opencode.json manualmente

{
  "$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"
}

Defina GETVIBE_API_KEY antes de iniciar o OpenCode e inicie-o na mesma janela: export GETVIBE_API_KEY="sk-pv-…" (macOS/Linux) ou setx GETVIBE_API_KEY "sk-pv-…" e uma nova janela do PowerShell (Windows). Sem a variável, o OpenCode envia uma chave vazia e recebe um erro 401 “invalid API key”. Prefere não usar variável? Coloque a própria chave no lugar de {env:GETVIBE_API_KEY} no campo apiKey.

Em models, liste apenas os IDs públicos dos modelos de que você precisa. A lista completa está no catálogo. Para uso normal, escreva o nome simples, sem um :suffix: um sufixo fixa um canal e desativa a troca automática para um canal saudável.
As imagens precisam de "attachment": true. O OpenCode obtém os recursos dos modelos do registro models.dev, que não lista o GetVibe; portanto, um modelo declarado como um {} vazio é tratado como não aceitando anexos, e o OpenCode envia a solicitação sem a imagem. O modelo então diz corretamente que não consegue ver uma imagem, embora tenha visão. Adicione attachment e modalities para todos os modelos que o catálogo mostrar com entrada de imagem. Também verificamos as outras integrações publicadas: Cline, Cursor, Roo Code, Kilo Code, Aider e Continue não têm um mapa separado de recursos dos modelos em seus exemplos, portanto essa configuração exclusiva do OpenCode não está ausente dessas configurações.
OpenCode + GetVibe API — provedor opencode.json | GetVibe API