# opencode

> Provider Vikey di opencode.jsonc dengan @ai-sdk/openai-compatible, termasuk small_model untuk judul sesi.

opencode memanggil Vikey lewat format OpenAI chat completions.

Diuji dengan opencode 1.19.5 (versi terbaru) pada 13 November 2026.

## Config yang disarankan

1. Simpan API key di variabel environment:

    ```bash
    export VIKEY_API_KEY=API_KEY_KAMU
    ```

2. Tulis provider Vikey di `~/.config/opencode/opencode.jsonc` (berlaku untuk semua proyek) atau `opencode.jsonc` di folder proyek:

    ```jsonc title="~/.config/opencode/opencode.jsonc"
    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "vikey": {
          "npm": "@ai-sdk/openai-compatible",
          "name": "Vikey",
          "options": {
            "baseURL": "https://api.vikey.ai/v1",
            "apiKey": "{env:VIKEY_API_KEY}"
          },
          "models": {
            "vikey/agent-gpt": { "name": "Vikey Auto GPT" },
            "vikey/agent-coding": { "name": "Vikey Auto Claude" },
            "anthropic/claude-sonnet-5.5": { "name": "Claude Sonnet 5.5" },
            "openai/gpt-6.1-sol": { "name": "GPT-6.1 Sol" },
            "openai/gpt-6-luna": { "name": "GPT-6 Luna" }
          }
        }
      },
      "model": "vikey/vikey/agent-gpt",
      "small_model": "vikey/openai/gpt-6-luna"
    }
    ```

3. Jalankan `opencode`. Ganti model dengan perintah `/models`.

### Kenapa tiap baris ada

| Baris | Fungsi |
| --- | --- |
| `npm` | Paket penghubung untuk API yang kompatibel OpenAI. opencode mengunduhnya otomatis saat pertama dipakai. |
| `options.baseURL` | Dengan `/v1`. |
| `options.apiKey` | `{env:VIKEY_API_KEY}` membaca key dari variabel environment, jadi key tidak tertulis di file. |
| `models` | Model yang muncul di `/models`. Kunci di dalamnya harus sama persis dengan model id Vikey. |
| `model` | Model default, ditulis `id-provider/model-id`. Karena model id Vikey juga memakai garis miring, hasilnya seperti `vikey/vikey/agent-gpt` atau `vikey/openai/gpt-6.1-sol`. |
| `small_model` | Model untuk tugas kecil seperti membuat judul sesi. Pilih model murah supaya tugas ini hampir tidak memakan biaya. |

**Format providers di situs opencode**

Situs opencode sudah menampilkan format baru `providers` dengan `package` dan `settings`. opencode 1.19.5 mengabaikan format itu dengan pesan `cannot be represented in V1`, lalu gagal dengan `Model not found`. Pakai format `provider` seperti di atas sampai rilis opencode mendukung format baru.

## Cara lain memasukkan key

Kalau tidak mau memakai variabel environment, hapus baris `apiKey` dari config, jalankan `opencode`, ketik `/connect`, pilih **Vikey**, lalu tempel API key. opencode menyimpan key itu di penyimpanan kredensialnya sendiri.

## Cek koneksi

```bash
opencode run "balas dengan kata ok"
```

Kalau berhasil, opencode menampilkan `ok` beserta nama model yang dipakai.

## Masalah umum

| Yang kamu lihat | Penyebab | Solusi |
| --- | --- | --- |
| `Model not found: vikey/...` | Model belum ada di `models`, atau format `providers` yang belum didukung | Tambahkan model id ke `models`, pakai format `provider` |
| `401` | `VIKEY_API_KEY` belum di-export di terminal ini | Export ulang, atau pakai `/connect` |
| Judul sesi memakai model mahal | `small_model` belum diisi | Isi `small_model` dengan model murah seperti `vikey/openai/gpt-6-luna` |

Source: https://docs.vikey.ai/agents/opencode/
