"Kenapa saya sering mengalami putus koneksi saat menggunakan model Claude di OpenCode?"—ini adalah masalah yang paling sering dikeluhkan oleh para pengembang yang menggunakan OpenCode (sekarang berganti nama menjadi Crush) untuk mengakses model Claude. Penyebab utamanya sangat sederhana: OpenCode menggunakan SDK asli Anthropic untuk memanggil Claude, sementara banyak layanan proksi API pihak ketiga hanya mendukung format yang kompatibel dengan OpenAI. Ketidakcocokan format inilah yang menyebabkan error dan pemutusan koneksi yang sering terjadi.
Nilai Utama: Setelah membaca artikel ini, Anda akan memahami arsitektur dasar pemanggilan Claude di OpenCode, 3 penyebab umum gangguan koneksi, dan solusi lengkap untuk mengatasinya secara tuntas menggunakan antarmuka format asli Anthropic dari APIYI.

Apa itu OpenCode: Dari OpenCode ke Crush
OpenCode adalah asisten pengodean AI berbasis terminal yang ditulis dalam bahasa Go, menggunakan kerangka kerja Bubble Tea untuk membangun TUI (Terminal User Interface) yang elegan. Proyek ini telah mendapatkan 11.600+ bintang di GitHub, dan kemudian diakuisisi oleh tim Charm, berganti nama menjadi Crush (charmbracelet/crush, 22.200+ bintang).
| Informasi Proyek | Detail |
|---|---|
| Nama Asli | OpenCode (opencode-ai/opencode) |
| Nama Sekarang | Crush (charmbracelet/crush) |
| Bahasa Pemrograman | Go |
| Antarmuka | TUI (Bubble Tea) |
| GitHub Stars | 22.200+ (Crush) |
| Penyedia AI yang Didukung | Anthropic, OpenAI, Gemini, Groq, OpenRouter, xAI, Bedrock, Azure |
| Sistem Alat | Operasi file, Bash, Grep, Glob, LSP, MCP |
| Lisensi Open Source | MIT |
Perbedaan Utama OpenCode dengan Claude Code dan Aider
| Fitur | OpenCode/Crush | Claude Code | Aider |
|---|---|---|---|
| Dukungan Multi-Vendor | SDK asli 7+ vendor | Hanya Anthropic | Multi-vendor |
| Format API | Format asli tiap vendor | Asli Anthropic | Kompatibel OpenAI |
| Cara Pemanggilan Claude | SDK asli Anthropic | SDK asli Anthropic | Format kompatibel OpenAI |
| Perluasan Pemikiran | Pemicu kondisi (termasuk kata kunci "think") | Dukungan bawaan | Bergantung pada model |
| Dukungan MCP | Didukung | Didukung | Tidak didukung |
| UI | Antarmuka grafis TUI | CLI + TUI | CLI murni |
Perbedaan Kunci: OpenCode menggunakan SDK asli untuk setiap penyedia AI, bukan melalui format yang kompatibel dengan OpenAI. Ini berarti saat memanggil Claude, ia menggunakan Messages API asli Anthropic (/v1/messages), bukan Chat Completions API milik OpenAI (/v1/chat/completions).
🎯 Catatan Penting: Inilah akar permasalahannya—jika layanan proksi Anda hanya menyediakan antarmuka
/v1/chat/completions, SDK asli Anthropic milik OpenCode tidak dapat melakukan pemanggilan dengan benar. APIYI (apiyi.com) mendukung format kompatibel OpenAI dan format asli Anthropic, yang dapat menyelesaikan masalah ini sepenuhnya.
3 Penyebab Utama Claude Sering Terputus di OpenCode

Penyebab 1: Format API Tidak Cocok (Paling Sering)
Ini adalah akar masalah yang dialami oleh 90% pengguna.
Jalur pemanggilan Claude di OpenCode:
OpenCode → Anthropic Go SDK → POST /v1/messages
↑ Menggunakan format asli Anthropic
Banyak layanan proksi API hanya menyediakan:
Layanan proksi → Hanya mendukung POST /v1/chat/completions
↑ Format kompatibel OpenAI
Struktur permintaan dari kedua format ini sangat berbeda:
| Item Perbandingan | Asli Anthropic (/v1/messages) |
Kompatibel OpenAI (/v1/chat/completions) |
|---|---|---|
| Endpoint Permintaan | /v1/messages |
/v1/chat/completions |
| Header Autentikasi | x-api-key: sk-ant-xxx |
Authorization: Bearer sk-xxx |
| Format Pesan | messages: [{role, content: [{type, text}]}] |
messages: [{role, content: "text"}] |
| Petunjuk Sistem | system: "..." (field tingkat atas) |
messages: [{role: "system", content: "..."}] |
| Pemanggilan Alat | Tipe tool_use / tool_result |
Format function_call / tool_calls |
| Respons Streaming | message_start, content_block_delta |
data: {"choices": [...]} |
| Pemikiran Luas | Dukungan asli untuk blok thinking |
Tidak didukung atau butuh penanganan khusus |
Ketika OpenCode mengirim permintaan format Anthropic ke endpoint yang hanya mendukung format OpenAI, server tidak dapat mengurai permintaan tersebut dan langsung mengembalikan error atau memutus koneksi.
Penyebab 2: Gangguan Transmisi Streaming
OpenCode menggunakan Messages.NewStreaming() dari Anthropic SDK untuk respons streaming. Urutan kejadian selama transmisi streaming adalah:
ContentBlockStartEvent → ContentBlockDeltaEvent (berulang) → ContentBlockStopEvent → MessageStopEvent
Jika layanan proksi API tidak mendukung format streaming Anthropic secara lengkap (misalnya tidak mengembalikan event thinking_delta, atau format content_block_stop tidak benar), penguraian event oleh OpenCode akan gagal dan koneksi terputus.
Logika percobaan ulang (retry) OpenCode hanya mencakup HTTP 429 (limit rate) dan 529 (overload). Kode error lainnya akan langsung dihentikan dan tidak akan dicoba ulang. Artinya, respons 400/500 yang disebabkan oleh kesalahan format akan langsung gagal.
Penyebab 3: Perbedaan Format Pemikiran Luas dan Pemanggilan Alat
OpenCode memiliki logika penanganan khusus untuk pemikiran luas (extended thinking) Claude:
- Diaktifkan secara otomatis saat pesan pengguna mengandung kata kunci "think"
- Setelah diaktifkan, 80% dari
maxTokensdialokasikan sebagai anggaran pemikiran - Suhu (temperature) dipaksa ke 1.0
Jika layanan proksi API tidak mendukung format blok thinking asli dari Anthropic, konten pemikiran akan hilang atau menyebabkan kesalahan penguraian. Begitu pula dengan format tool_use / tool_result asli Anthropic yang sangat berbeda dengan format function_call / tool_calls milik OpenAI.
Solusi: Gunakan Endpoint API yang Mendukung Format Asli Anthropic

Arsitektur Dukungan Format Ganda APIYI
APIYI (apiyi.com) mendukung kedua format API secara bersamaan, sehingga pengembang dapat memilih sesuai kebutuhan alat mereka:
| Format | Endpoint Permintaan | Alat yang Sesuai | Kelengkapan Fungsi |
|---|---|---|---|
| Asli Anthropic | https://api.apiyi.com/v1/messages |
OpenCode/Crush, Claude Code | 100% Lengkap |
| Kompatibel OpenAI | https://api.apiyi.com/v1/chat/completions |
Aider, Cursor, Aplikasi Sendiri | Fungsi Dasar Lengkap |
Solusi 1: Konfigurasi Format Asli Anthropic di OpenCode (Direkomendasikan)
Karena penyedia Anthropic di OpenCode tidak secara langsung mengekspos opsi konfigurasi Base URL, Anda perlu mengaturnya melalui variabel lingkungan:
# Atur Kunci API Anthropic (gunakan Kunci dari APIYI)
export ANTHROPIC_API_KEY="sk-kunciAPIYIanda"
# Atur Base URL Anthropic (arahkan ke antarmuka asli APIYI)
export ANTHROPIC_BASE_URL="https://api.apiyi.com"
# Jalankan OpenCode
opencode
Atau atur di file konfigurasi .opencode.json:
{
"providers": {
"anthropic": {
"apiKey": "sk-kunciAPIYIanda"
}
},
"agents": {
"coder": {
"model": "claude-sonnet-4-6",
"maxTokens": 16000
},
"task": {
"model": "claude-haiku-4-5-20251001",
"maxTokens": 8000
}
}
}
Gunakan bersama variabel lingkungan:
# Tambahkan ke .bashrc atau .zshrc
export ANTHROPIC_API_KEY="sk-kunciAPIYIanda"
export ANTHROPIC_BASE_URL="https://api.apiyi.com"
Dengan cara ini, OpenCode akan memanggil https://api.apiyi.com/v1/messages melalui SDK asli Anthropic, sehingga mempertahankan semua fungsi asli: Prompt Caching, pemikiran luas, dan pemanggilan alat asli.
Solusi 2: Menggunakan Format Kompatibel OpenAI melalui Local Provider (Cadangan)
Jika Solusi 1 tidak berhasil, Anda dapat mengonfigurasi APIYI sebagai Local Provider di OpenCode:
# Atur endpoint lokal
export LOCAL_ENDPOINT="https://api.apiyi.com/v1"
export LOCAL_API_KEY="sk-kunciAPIYIanda"
{
"providers": {
"local": {
"apiKey": "sk-kunciAPIYIanda"
}
},
"agents": {
"coder": {
"model": "claude-sonnet-4-6",
"maxTokens": 16000
}
}
}
Catatan: Solusi ini menggunakan format kompatibel OpenAI (/v1/chat/completions), yang akan menghilangkan fungsi asli berikut:
- Prompt Caching (hit cache)
- Pemikiran luas asli (blok thinking)
- Format pemanggilan alat asli Anthropic
💡 Saran: Prioritaskan Solusi 1 (format asli Anthropic) untuk mendapatkan fungsi lengkap dan stabilitas terbaik.
Saat mengambil Kunci di dasbor APIYI (apiyi.com), pilih grup 【ClaudeCode】 untuk menikmati diskon 88%.
Panduan Lengkap Pemanggilan API Claude di APIYI
Mendapatkan dan Mengonfigurasi Kunci API
| Langkah | Operasi | Penjelasan |
|---|---|---|
| 1. Dapatkan Kunci | Kunjungi api.apiyi.com/token |
Halaman manajemen token di dasbor |
| 2. Pilih Token | Gunakan token default atau buat baru | Pilih grup 【ClaudeCode】 saat membuat baru untuk diskon 12% |
| 3. Catat Base URL | https://api.apiyi.com |
Alamat akses terpadu |
Dua Format Permintaan yang Didukung
Format 1: Format Asli Anthropic (Direkomendasikan untuk OpenCode/Claude Code)
Alamat permintaan: https://api.apiyi.com/v1/messages
import anthropic
client = anthropic.Anthropic(
api_key="sk-kunciAPIYIAnda",
base_url="https://api.apiyi.com"
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
messages=[
{"role": "user", "content": "Tuliskan algoritma quicksort menggunakan Python"}
]
)
print(message.content[0].text)
Format 2: Format Kompatibel OpenAI (Direkomendasikan untuk Aider/Cursor/Aplikasi Mandiri)
Alamat permintaan: https://api.apiyi.com/v1/chat/completions
import openai
client = openai.OpenAI(
api_key="sk-kunciAPIYIAnda",
base_url="https://api.apiyi.com/v1"
)
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[
{"role": "user", "content": "Tuliskan algoritma quicksort menggunakan Python"}
]
)
print(response.choices[0].message.content)
Daftar Model Claude yang Didukung
Model Utama Terbaru (Direkomendasikan):
| ID Model | Seri | Posisi | Skenario Penggunaan |
|---|---|---|---|
claude-opus-4-6 |
Opus | Penalaran terkuat | Desain arsitektur kompleks, analisis mendalam |
claude-sonnet-4-6 |
Sonnet | Performa seimbang | Coding harian, peninjauan kode |
claude-haiku-4-5-20251001 |
Haiku | Respons cepat | Tugas sederhana, klasifikasi, ekstraksi |
Model Penalaran (Mengaktifkan pemikiran tambahan secara paksa):
| ID Model | Penjelasan |
|---|---|
claude-opus-4-6-thinking |
Opus + Penalaran paksa |
claude-sonnet-4-6-thinking |
Sonnet + Penalaran paksa |
claude-haiku-4-5-20251001-thinking |
Haiku + Penalaran paksa |
Model penalaran menggunakan model dasar yang sama dengan model standar, perbedaannya adalah model penalaran akan memaksa aktivasi pemikiran tambahan (thinking), menghasilkan proses penalaran yang lebih detail, cocok untuk skenario yang memerlukan analisis mendalam.
Lihat kode pemanggilan untuk pemikiran tambahan dalam format asli Anthropic
import anthropic
client = anthropic.Anthropic(
api_key="sk-kunciAPIYIAnda",
base_url="https://api.apiyi.com"
)
# Menggunakan model thinking, memaksa pemikiran tambahan
message = client.messages.create(
model="claude-sonnet-4-6-thinking",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000 # Anggaran Token untuk pemikiran
},
messages=[
{"role": "user", "content": "Analisis kompleksitas waktu kode ini dan optimalkan"}
]
)
for block in message.content:
if block.type == "thinking":
print(f"Proses berpikir:\n{block.thinking}")
elif block.type == "text":
print(f"Jawaban akhir:\n{block.text}")
🚀 Mulai Cepat: Kunjungi APIYI
api.apiyi.com/tokenuntuk mendapatkan kunci API,
pilih grup 【ClaudeCode】 untuk menikmati diskon 12%.
Satu kunci mendukung format asli Anthropic dan format kompatibel OpenAI,
kompatibel dengan semua alat coding AI utama seperti OpenCode, Claude Code, Aider, dan Cursor.
Cara Integrasi Terbaik untuk Berbagai Alat Coding AI
| Alat | Format Antarmuka yang Disarankan | Base URL | Rekomendasi Model |
|---|---|---|---|
| OpenCode/Crush | Asli Anthropic | https://api.apiyi.com |
claude-sonnet-4-6 |
| Claude Code | Asli Anthropic | https://api.apiyi.com |
claude-sonnet-4-6 |
| Aider | Kompatibel OpenAI | https://api.apiyi.com/v1 |
claude-sonnet-4-6 |
| Cursor | Kompatibel OpenAI | https://api.apiyi.com/v1 |
claude-sonnet-4-6 |
| Cline (VS Code) | Kompatibel OpenAI | https://api.apiyi.com/v1 |
claude-sonnet-4-6 |
| Aplikasi Mandiri (Python) | Keduanya bisa | Lihat di atas | Pilih sesuai kebutuhan |
Panduan Cepat Konfigurasi Alat
OpenCode/Crush:
export ANTHROPIC_API_KEY="sk-kunciAPIYIAnda"
export ANTHROPIC_BASE_URL="https://api.apiyi.com"
Claude Code:
export ANTHROPIC_API_KEY="sk-kunciAPIYIAnda"
export ANTHROPIC_BASE_URL="https://api.apiyi.com"
claude
Aider:
export OPENAI_API_KEY="sk-kunciAPIYIAnda"
export OPENAI_API_BASE="https://api.apiyi.com/v1"
aider --model claude-sonnet-4-6
🎯 Manajemen Terpadu: Kelola semua pemanggilan API alat coding AI Anda dengan satu kunci dari APIYI apiyi.com,
mendukung 300+ model termasuk Claude, GPT, Gemini, dengan penagihan dan manajemen yang terpusat.
Pertanyaan Umum
Q1: Apa yang harus dilakukan jika OpenCode menampilkan error “agent coder not found”?
Ini adalah error yang paling sering ditemui di OpenCode, yang berarti konfigurasi penyedia AI tidak ditemukan atau tidak valid. Periksa hal-hal berikut: 1) Apakah variabel lingkungan ANTHROPIC_API_KEY sudah diatur dan valid; 2) Apakah providers.anthropic.apiKey di dalam .opencode.json sudah benar; 3) Apakah kunci API Anda masih memiliki saldo. Kunci yang diperoleh melalui APIYI apiyi.com/token dapat langsung digunakan tanpa konfigurasi tambahan.
Q2: Mengapa format asli Anthropic lebih stabil dibandingkan format yang kompatibel dengan OpenAI?
Karena OpenCode menggunakan SDK Go resmi dari Anthropic untuk melakukan pemanggilan secara langsung, di mana SDK tersebut menangani format peristiwa streaming, logika percobaan ulang (retry), dan penanganan error yang spesifik untuk Anthropic. Menggunakan format yang kompatibel dengan OpenAI memerlukan lapisan konversi perantara, yang berisiko menghilangkan informasi penting seperti peristiwa thinking_delta atau format tool_use, sehingga menyebabkan kegagalan parsing. Endpoint /v1/messages dari APIYI apiyi.com mendukung penuh protokol asli Anthropic tanpa perlu konversi format.
Q3: Apa perbedaan antara model thinking dan model biasa? Kapan harus menggunakannya?
claude-sonnet-4-6 dan claude-sonnet-4-6-thinking adalah model dasar yang sama. Versi thinking secara paksa mengaktifkan pemikiran mendalam (extended thinking) dan akan menampilkan proses penalaran yang mendetail. Versi biasa tidak mengaktifkannya secara default (di OpenCode, fitur ini akan aktif otomatis jika pesan mengandung kata kunci "think"). Saran: gunakan versi biasa untuk coding sehari-hari (lebih cepat dan hemat token), dan gunakan versi thinking untuk desain arsitektur yang kompleks atau proses debug.
Q4: OpenCode telah berganti nama menjadi Crush, apakah ada perubahan cara konfigurasi?
Arsitektur intinya tidak berubah, Crush mewarisi seluruh kode dari OpenCode. File konfigurasi mungkin berubah dari .opencode.json menjadi .crush.json (tergantung versi), namun variabel lingkungan tetap sama. Cara konfigurasi ANTHROPIC_API_KEY dan ANTHROPIC_BASE_URL tetap sepenuhnya identik. Disarankan untuk menggunakan versi terbaru Crush agar mendapatkan stabilitas dan fitur yang lebih baik.

Ringkasan: Pilih Format API yang Tepat, Claude Berjalan Stabil di OpenCode
Penyebab utama sering terputusnya koneksi model Claude di OpenCode/Crush adalah ketidakcocokan format API—OpenCode menggunakan format asli Anthropic, sementara banyak layanan proksi API hanya mendukung format yang kompatibel dengan OpenAI.
Solusinya sangat jelas:
- Gunakan layanan API yang mendukung format asli Anthropic — Titik akhir
/v1/messagesdari APIYI. - Konfigurasikan variabel lingkungan yang benar —
ANTHROPIC_BASE_URL=https://api.apiyi.com - Pilih model yang sesuai — Gunakan
claude-sonnet-4-6untuk penggunaan harian, danclaude-sonnet-4-6-thinkinguntuk penalaran mendalam.
Kami merekomendasikan penggunaan APIYI (apiyi.com) untuk mengelola semua pemanggilan model API pada alat pengodean AI Anda secara terpusat. Kunjungi api.apiyi.com/token untuk mendapatkan kunci API, dan pilih grup 【ClaudeCode】 untuk menikmati diskon 12%. Satu kunci API kompatibel dengan format asli Anthropic maupun format yang kompatibel dengan OpenAI, sehingga cocok untuk semua alat pengodean AI utama di pasaran.
📝 Penulis Artikel: Tim Teknis APIYI | APIYI apiyi.com – Platform akses terpadu untuk 300+ API Model Bahasa Besar
Referensi
-
Repositori GitHub OpenCode (Diarsipkan): Kode proyek dan dokumentasi asli
- Tautan:
github.com/opencode-ai/opencode - Keterangan: Telah berganti nama menjadi Crush
- Tautan:
-
Repositori GitHub Crush: Proyek penerus yang sedang dikembangkan secara aktif
- Tautan:
github.com/charmbracelet/crush - Keterangan: Versi terbaru yang dikelola oleh tim Charm
- Tautan:
-
Dokumentasi API Anthropic: Spesifikasi format asli Messages API
- Tautan:
docs.anthropic.com/en/api/messages - Keterangan: Format permintaan dan respons lengkap untuk titik akhir
/v1/messages
- Tautan:
-
Dokumentasi APIYI: Panduan akses API Claude
- Tautan:
apiyi.com - Keterangan: Mendukung format asli Anthropic dan format yang kompatibel dengan OpenAI secara bersamaan
- Tautan: