Tema
Bahasa

OpenCode

Siapkan OpenCode dengan GetVibe API melalui ~/.config/opencode/opencode.json: penyedia yang kompatibel dengan OpenAI dengan baseURL getvibeapi.com/v1.

OpenCode adalah paket npm untuk agentic coding di terminal. Provider dikonfigurasi di ~/.config/opencode/opencode.json.

Config siap pakai dengan semua model

OpenCode tidak membaca ukuran context dari /v1/models: model yang Anda tambahkan secara manual menampilkan context 0 dan riwayat tidak dipadatkan tepat waktu. Daripada mengetikkan angkanya sendiri, unduh konfigurasi yang dihasilkan — konfigurasi itu dibangun dari katalog kami: setiap model yang dipublikasikan beserta nama, context, batas output, dan flag image / reasoning / tool-nya. Isinya tidak memuat key, hanya referensi {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"

Jika opencode.json Anda sudah dikustomisasi, jangan timpa — ganti hanya blok penyedianya dan pertahankan sisanya:

# 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"
Katalog berubah — saat model baru muncul, jalankan lagi perintah yang sama. Hapus entri model yang Anda ketik secara manual, atau pemilih akan menampilkan duplikat dengan konteks 0.

opencode.json secara manual

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

Atur GETVIBE_API_KEY sebelum menjalankan OpenCode dan jalankan dari jendela yang sama: export GETVIBE_API_KEY="sk-pv-…" (macOS/Linux) atau setx GETVIBE_API_KEY "sk-pv-…" dan jendela PowerShell baru (Windows). Tanpa variabel tersebut, OpenCode mengirim kunci kosong dan menerima 401 “kunci API tidak valid”. Tidak ingin menggunakan variabel? Masukkan kunci itu sendiri sebagai pengganti {env:GETVIBE_API_KEY} di kolom apiKey.

Di models, cantumkan hanya public model ID yang Anda butuhkan. Daftar lengkapnya ada di katalog. Untuk penggunaan normal, tulis nama polosnya tanpa :suffix: suffix akan mengunci satu channel dan menonaktifkan peralihan otomatis ke channel yang sehat.
Gambar memerlukan "attachment": true. OpenCode mengambil kemampuan model dari registry models.dev, yang tidak mencantumkan GetVibe, sehingga model yang dideklarasikan dengan {} kosong dianggap tidak menerima lampiran dan OpenCode mengirim permintaan tanpa gambar. Model kemudian dengan jujur mengatakan tidak dapat melihatnya, padahal ia punya kemampuan vision. Tambahkan attachment dan modalities untuk setiap model yang ditampilkan katalog dengan input gambar. Kami juga memeriksa integrasi lain yang dipublikasikan: Cline, Cursor, Roo Code, Kilo Code, Aider, dan Continue tidak memiliki peta kemampuan model terpisah dalam contoh mereka, jadi pengaturan khusus OpenCode ini memang tidak hilang dari konfigurasi tersebut.
OpenCode + GetVibe API — provider opencode.json | GetVibe API