Lunos logoLunos

Integrasi: OpenCode dengan Lunos

Panduan ini menunjukkan cara mengkonfigurasi OpenCode agar menggunakan Lunos sebagai provider AI sehingga Anda bisa menjalankan workflow coding bertenaga model Lunos langsung dari terminal.

Apa itu OpenCode?

OpenCode adalah asisten coding AI berbasis terminal yang berjalan di shell Anda. OpenCode mendukung berbagai provider melalui ekosistem AI SDK dan bisa diperluas dengan subagent untuk tugas seperti eksplorasi codebase. Konfigurasi dilakukan lewat satu file JSONC.

Prasyarat

  • OpenCode terinstal di perangkat Anda (opencode.ai)
  • API key Lunos (dapatkan dari dashboard)
  • Base URL Lunos: https://api.lunos.tech/v1

Langkah Setup

1) Install OpenCode

macOS / Linux

curl -fsSL https://opencode.ai/install.sh | bash

Windows (PowerShell)

irm https://opencode.ai/install.ps1 | iex

Cek dokumentasi OpenCode untuk metode instalasi alternatif (Homebrew, Scoop, dll.) jika tersedia.

2) Buat file konfigurasi

OpenCode membaca konfigurasi dari .config/opencode/opencode.jsonc relatif terhadap home directory Anda.

macOS / Linux

Buat direktori dan file konfigurasi:

mkdir -p ~/.config/opencode

Lalu buat file ~/.config/opencode/opencode.jsonc dengan isi berikut:

Windows

Buat direktori konfigurasi:

New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.config\opencode"

Lalu buat file %USERPROFILE%\.config\opencode\opencode.jsonc dengan isi berikut:

3) Tambahkan konfigurasi provider Lunos

Paste ini ke file opencode.jsonc Anda:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "lunos": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "https://api.lunos.tech/v1",
        "apiKey": "api-key-lunos-anda"
      },
      "models": {
        "deepseek/deepseek-v4-flash": {
          "name": "deepseek/deepseek-v4-flash"
        }
      }
    }
  },
  "model": "lunos/deepseek/deepseek-v4-flash",
  "agent": {
    "explorer": {
      "description": "Fast explorer subagent for codebase exploration",
      "mode": "subagent",
      "model": "lunos/deepseek/deepseek-v4-flash"
    }
  }
}

Ganti "api-key-lunos-anda" dengan API key Lunos Anda yang sebenarnya.

4) Tambahkan model lain (opsional)

Anda bisa mendaftarkan beberapa model Lunos di provider yang sama:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "lunos": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "https://api.lunos.tech/v1",
        "apiKey": "api-key-lunos-anda"
      },
      "models": {
        "deepseek/deepseek-v4-flash": {
          "name": "deepseek/deepseek-v4-flash"
        },
        "anthropic/claude-sonnet-4-20250514": {
          "name": "anthropic/claude-sonnet-4-20250514"
        },
        "openai/gpt-4o": {
          "name": "openai/gpt-4o"
        }
      }
    }
  },
  "model": "lunos/deepseek/deepseek-v4-flash",
  "agent": {
    "explorer": {
      "description": "Fast explorer subagent for codebase exploration",
      "mode": "subagent",
      "model": "lunos/deepseek/deepseek-v4-flash"
    }
  }
}

5) Jalankan OpenCode

Dari direktori project Anda:

opencode

OpenCode akan menggunakan provider dan model Lunos yang ditentukan di konfigurasi Anda.

Referensi konfigurasi

Field Deskripsi
provider.lunos.npm Paket AI SDK untuk provider OpenAI-compatible
provider.lunos.options.baseURL Endpoint API Lunos (https://api.lunos.tech/v1)
provider.lunos.options.apiKey API key Lunos Anda
provider.lunos.models Map model ID yang tersedia melalui provider ini
model Model default dalam format provider/model-id
agent.explorer Konfigurasi subagent untuk tugas eksplorasi codebase

Mengganti model

Untuk mengubah model aktif, update field "model" di konfigurasi:

"model": "lunos/anthropic/claude-sonnet-4-20250514"

Formatnya adalah nama-provider/model-id — di mana nama-provider sesuai dengan key yang Anda definisikan di "provider" (dalam hal ini lunos).

Subagent

OpenCode mendukung subagent untuk mendelegasikan tugas tertentu. Contoh konfigurasi sudah menyertakan subagent explorer untuk navigasi codebase yang cepat. Anda bisa menambahkan subagent lain dengan pola yang sama:

"agent": {
  "explorer": {
    "description": "Fast explorer subagent for codebase exploration",
    "mode": "subagent",
    "model": "lunos/deepseek/deepseek-v4-flash"
  },
  "reviewer": {
    "description": "Code review subagent",
    "mode": "subagent",
    "model": "lunos/anthropic/claude-sonnet-4-20250514"
  }
}

Troubleshooting

Error autentikasi (401/403)

  • Pastikan API key benar dan aktif di dashboard.
  • Pastikan key belum dicabut atau kedaluwarsa.

Model tidak ditemukan

  • Pastikan model ID sesuai persis dengan model yang tersedia di daftar model Lunos.
  • Model ID bersifat case-sensitive.
  • Field "model" harus menggunakan format lunos/model-id (prefix provider + model ID).

Konfigurasi tidak terbaca

  • Pastikan file berada di path yang benar:
    • Linux/macOS: ~/.config/opencode/opencode.jsonc
    • Windows: %USERPROFILE%\.config\opencode\opencode.jsonc
  • Validasi sintaks JSONC (trailing comma dan komentar diperbolehkan, tapi periksa typo).

Timeout koneksi atau error jaringan

  • Pastikan base URL adalah https://api.lunos.tech/v1 (dengan suffix /v1).
  • Periksa bahwa jaringan Anda mengizinkan koneksi HTTPS keluar.

Keamanan

  • Jangan pernah commit API key ke repository.
  • Gunakan API key terpisah per project atau per environment jika memungkinkan.
  • Tambahkan opencode.jsonc ke .gitignore global jika berisi secret:
# Linux/macOS
echo ".config/opencode/opencode.jsonc" >> ~/.gitignore_global

# Windows (PowerShell)
Add-Content "$env:USERPROFILE\.gitignore_global" ".config/opencode/opencode.jsonc"