Tema
Idioma

OpenCode

Configura OpenCode con GetVibe API mediante ~/.config/opencode/opencode.json: un proveedor compatible con OpenAI con baseURL getvibeapi.com/v1.

OpenCode es un paquete npm para programar con agentes en la terminal. Los proveedores se configuran en ~/.config/opencode/opencode.json.

Configuración lista para usar con todos los modelos

OpenCode no lee los tamaños de contexto de /v1/models: un modelo que agregues manualmente muestra un contexto de 0 y el historial no se compacta a tiempo. En lugar de escribir los números, descarga la configuración generada; se crea a partir de nuestro catálogo: cada modelo publicado con su nombre, contexto, límite de salida y flags de imagen / razonamiento / herramientas. No contiene ninguna clave, solo la referencia de {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"

Si ya personalizaste tu opencode.json, no lo sobrescribas: reemplaza únicamente el bloque del proveedor y conserva el resto:

# 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"
El catálogo cambia: cuando aparezcan modelos nuevos, vuelve a ejecutar el mismo comando. Elimina cualquier entrada de modelo que hayas escrito manualmente o el selector mostrará duplicados con un 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"
}

Configura GETVIBE_API_KEY antes de iniciar OpenCode e inícialo desde la misma ventana: export GETVIBE_API_KEY="sk-pv-…" (macOS/Linux) o setx GETVIBE_API_KEY "sk-pv-…" y una nueva ventana de PowerShell (Windows). Sin la variable, OpenCode envía una clave vacía y recibe un 401 «clave de API no válida». ¿Prefieres no usar una variable? Pon la propia clave en lugar de {env:GETVIBE_API_KEY} en el campo apiKey.

En models, incluye únicamente los ID de modelo públicos que necesitas. La lista completa está en el catálogo. Para el uso habitual, escribe el nombre sin :suffix: un sufijo fija un canal y desactiva el cambio automático a uno que funcione correctamente.
Las imágenes necesitan "attachment": true. OpenCode obtiene las capacidades de los modelos del registro models.dev, que no incluye GetVibe, por lo que un modelo declarado con un {} vacío se trata como si no aceptara archivos adjuntos y OpenCode envía la solicitud sin la imagen. Entonces el modelo dice correctamente que no puede ver ninguna, aunque tenga visión. Añade attachment y modalities para cada modelo que el catálogo muestre con entrada de imágenes. También comprobamos las otras integraciones publicadas: Cline, Cursor, Roo Code, Kilo Code, Aider y Continue no tienen un mapa separado de capacidades de modelos en sus ejemplos, así que esta configuración exclusiva de OpenCode no falta en esas configuraciones.
OpenCode + GetVibe API: proveedor de opencode.json | GetVibe API