Setup OpenCode CLI: Debugging & Test Otomatis

Pelajari cara konfigurasi OpenCode CLI di terminal untuk debugging dan unit test Python otomatis dengan gateway AI lokal hemat biaya via QRIS.

D

Dimas Setiawan

Contributor

6 menit membaca
Setup OpenCode CLI: Debugging & Test Otomatis
Daftar Isi (5 Bagian)

Debugging error traceback Python sambil bolak-balik menyalin log ke antarmuka web AI adalah pemborosan fokus terbesar bagi seorang engineer. Ketika kode backend kamu melempar AssertionError atau memory leak saat integrasi database, kamu butuh agent yang langsung membaca file, mengeksekusi pytest di terminal lokal, dan memperbaiki bug secara otonom.

Evolusi agent harness modern seperti OpenCode CLI membawa kapabilitas loop otonom langsung ke lingkungan shell kamu. Alih-alih mengandalkan workflow manual yang lambat, artikel ini akan memandu kamu membangun workflow otomatisasi debugging dan pembuatan unit test Python menggunakan OpenCode CLI yang terhubung ke custom endpoint berkinerja tinggi.

Mengapa Membawa AI Agent Langsung ke Terminal?

Bekerja langsung di terminal memberikan agent akses native terhadap runtime project kamu. Agent tidak hanya menebak perbaikan kode, tetapi juga mengeksekusi test runner, memeriksa return code, dan memvalidasi apakah fix yang diberikan benar-benar menyelesaikan masalah tanpa merusak dependensi lain.

Namun, menjalankan agent loop lokal sering terbentur masalah integrasi LLM luar negeri. Developer di Indonesia kerap menghadapi penolakan kartu kredit saat berlangganan token platform luar, ketentuan minimum deposit dollar yang mahal, serta borosnya biaya token saat agent membaca ribuan baris context project berulang kali.

Di sinilah perlunya menggunakan custom endpoint terpadu seperti ModelRouter. Dengan dukungan prompt caching otomatis hingga 95% dan integrasi pembayaran QRIS instan mulai Rp 5.000 tanpa kartu kredit, kamu bisa menjalankan continuous debugging loop tanpa khawatir tagihan jebol atau akun terblokir.

Prasyarat dan Arsitektur Workflow

Workflow yang kita bangun mengadopsi prinsip unrolling agent loop, di mana OpenCode CLI bertindak sebagai eksekutor lingkungan lokal sementara penalaran logika ditangani oleh model reasoning mutakhir seperti DeepSeek V4.1 atau Claude Sonnet 4.6.

Sebelum memulai, pastikan sistem kamu sudah terpasang:

  • Python 3.10 atau versi lebih baru beserta pytest dan pip.
  • Node.js runtime (v18+) untuk menjalankan engine OpenCode CLI.
  • API Key aktif dari gateway ModelRouter dengan Base URL OpenAI-compatible.

💡 Catatan Praktisi: Jika kamu baru pertama kali menguji alur ini dan belum ingin mengisi saldo, kamu bisa memanfaatkan kuota gratis pengujian lewat Program Bansos AI untuk menguji respons agent secara instan.

Panduan Konfigurasi OpenCode CLI Step-by-Step

Ikuti langkah-langkah di bawah ini untuk mengonfigurasi agent CLI agar terhubung langsung ke custom gateway.

Langkah 1: Instalasi OpenCode CLI dan Dependensi

Pasang OpenCode CLI secara global di terminal development kamu menggunakan npm atau yarn:

npm install -g opencode-ai-cli
pip install pytest pytest-cov

Verifikasi bahwa instalasi berhasil dengan memeriksa versi binary di shell kamu:

opencode --version

Langkah 2: Konfigurasi Custom Endpoint ModelRouter

OpenCode CLI secara native mendukung standar OpenAI SDK. Kita cukup mengarahkan Base URL ke endpoint gateway ModelRouter dan memasukkan API Key yang kamu miliki.

Buat file konfigurasi di direktori home kamu ~/.opencode/config.json atau inisialisasi environment variable di terminal:

export OPENAI_BASE_URL="https://modelrouter.id/v1"
export OPENAI_API_KEY="sk-mr-live-xxxxxxxxxxxxxxxxxxxx"
export OPENCODE_DEFAULT_MODEL="deepseek/deepseek-v4.1"

Kamu juga bisa mendefinisikan konfigurasi permanen melalui file JSON proyek lokal .opencode.json:

{
  "api_base": "https://modelrouter.id/v1",
  "api_key_env": "OPENAI_API_KEY",
  "model": "deepseek/deepseek-v4.1",
  "temperature": 0.2,
  "auto_exec_commands": false,
  "caching_enabled": true
}

⚠️ Perhatian: Jangan pernah melakukan commit file yang berisi raw token API ke repository Git. Selalu simpan token rahasia di environment variable lokal atau gunakan .gitignore untuk file konfigurasi credentials.

Langkah 3: Membuat Test Harness Python Target

Sebagai contoh kasus praktis, buat sebuah modul kalkulator diskon inventaris sederhana yang sengaja memiliki bug edge-case pada logic pembulatan harga. Buat file pricing_service.py:

from decimal import Decimal, ROUND_HALF_UP

def calculate_tiered_discount(base_price: float, tier: str, quantity: int) -> float:
    """Menghitung harga akhir berdasarkan tingkatan pembeli dan jumlah barang."""
    if quantity <= 0 or base_price < 0:
        raise ValueError("Harga dan kuantitas harus bernilai positif")
        
    rates = {
        "retail": Decimal("0.05"),
        "wholesale": Decimal("0.15"),
        "vip": Decimal("0.25")
    }
    
    # Bug: Tier fallback tidak terdaftar melempar unhandled KeyError
    discount_rate = rates[tier.lower()]
    
    total = Decimal(str(base_price)) * quantity
    discount_amount = total * discount_rate
    final_price = total - discount_amount
    
    # Bug logic: Pembulatan flat tanpa memperhitungkan quantize dua desimal
    return float(final_price)

Siapkan pula unit test awal pada test_pricing_service.py yang saat ini akan mengalami kegagalan:

import pytest
from pricing_service import calculate_tiered_discount

def test_tiered_discount_valid():
    assert calculate_tiered_discount(100.0, "vip", 2) == 150.0

def test_tiered_discount_unknown_tier():
    # Seharusnya fallback ke 0% discount jika tier tidak valid
    assert calculate_tiered_discount(100.0, "guest", 1) == 100.0

def test_tiered_discount_precision():
    # Menguji presisi pembulatan desimal mata uang
    assert calculate_tiered_discount(33.333, "retail", 3) == 94.99

Eksekusi Debugging dan Auto-Generation Unit Test

Setelah lingkungan terpasang, kita dapat menjalankan agent harness untuk membaca kegagalan unit test dan mereparasi logika secara otomatis.

Langkah 4: Menjalankan Autonomous Debugging Loop

Jalankan test suite menggunakan OpenCode CLI dengan flag instruksi debugging otonom:

opencode fix "pytest test_pricing_service.py" --watch-files "pricing_service.py"

Agent akan menjalankan perintah pytest, menangkap output traceback KeyError: 'guest', membedah implementasi kode di pricing_service.py, lalu menyusun patch kode baru secara iteratif.

Begitu perbaikan diterapkan, agent akan mengeksekusi ulang perintah pytest sampai seluruh test suite menghasilkan status hijau (pass). Proses ini sepenuhnya memanfaatkan arsitektur Zero Prompt Retention (ZPR) dari ModelRouter, memastikan source code internal kamu tidak pernah direkam untuk melatih model publik.

Langkah 5: Validasi Test Coverage dan Caching Efficiency

Setelah logic utama diperbaiki, minta agent untuk melengkapi edge-case test suite agar mencapai coverage 100%:

opencode generate-tests --target pricing_service.py --framework pytest --coverage-min 95

Karena OpenCode CLI mengirimkan seluruh konteks file berulang kali selama siklus debugging, gateway ModelRouter secara otomatis mengaktifkan fitur prompt caching. Setiap prompt yang memiliki prefix konteks yang sama akan diproses jauh lebih cepat dengan diskon tarif token input hingga 95%.

Untuk melihat rincian model yang mendukung caching dengan tarif paling efisien, kamu bisa langsung memeriksa Katalog Model & Tarif.

Analisis Performa: Custom Gateway vs API Luar Negeri

Menggunakan custom endpoint gateway memberikan kendali teknis dan efisiensi finansial yang nyata bagi developer lokal. Berikut perbandingan komparatifnya:

Parameter Evaluasi Akses API Vendor Langsung Integrasi ModelRouter Keuntungan Praktis
Metode Pembayaran Kartu Kredit Internasional / Stripe QRIS Instan 24/7 Bebas risiko card decline atau kurs tak terduga
Minimum Saldo $5 - $20 USD (Rp 80.000+) Rp 5.000 Cocok untuk uji coba modular dan eksperimen
Prompt Caching Konfigurasi manual per-SDK Otomatis di server gateway Hemat bandwidth dan biaya token input hingga 95%
Akses Multi-Model Perlu multi API Key terpisah Satu API Key untuk 50+ model Fleksibel beralih dari DeepSeek ke Claude
Kebijakan Data Bervariasi, potensi training Zero Prompt Retention (ZPR) Kode proprietary aman dari kebocoran data

Mengintegrasikan agent langsung ke terminal adalah lompatan produktivitas nyata dalam siklus software development modern. Dengan mengandalkan OpenCode CLI dan gateway yang ramah infrastruktur lokal, kamu mendapatkan kecepatan eksekusi developer Silicon Valley tanpa kerumitan administrasi transaksi lintas negara.

D

Dimas Setiawan

AI & Cloud Practitioner

Coba Praktikkan Sekarang

Siap Menjalankan Model Frontier?

Daftar akun gratis tanpa kartu kredit, klaim 100 request Bansos AI, atau isi saldo via QRIS mulai Rp 5.000.

Setup OpenCode CLI: Debugging & Test Otomatis | ModelRouter