Dokumentasi

Dokumentasi

CC Switch

CC Switch mengalihkan Claude Code dan Codex di antara penyedia melalui aplikasi desktop. Kunavo ditambahkan sebagai Konfigurasi Kustom — root layanan, autentikasi Bearer, Messages Anthropic native, tanpa perutean lokal.

Tiga kolom dan dua menu dropdown. https://api.kunavo.com sebagai endpoint, kunci sk-kn-… Anda, dan — bagian yang diabaikan sebagian besar panduan — biarkan API Format pada Anthropic Messages (Native) dan Auth Field pada ANTHROPIC_AUTH_TOKEN. Kunavo mendukung Messages API secara native, jadi tidak ada perutean lokal di sisi Claude Code.

CC Switch → tab Claude Code → Tambahkan penyedia
Provider Name   Kunavo
API Key         sk-kn-...
API Endpoint    https://api.kunavo.com      <- service root, no /v1, no trailing slash

Advanced Options
  API Format    Anthropic Messages (Native) <- the default; do NOT switch
  Auth Field    ANTHROPIC_AUTH_TOKEN (Default)
Endpoint adalah root layanan: tanpa /v1, tanpa garis miring di akhir. Klien bergaya Anthropic menambahkan /v1/messages sendiri — itulah sebabnya kolom ini tampak berbeda dari setiap contoh OpenAI, yang menempatkan /v1 di URL dasar. Penjelasan lengkap ada di halaman ANTHROPIC_BASE_URL.

Langkah demi langkah (tab Claude Code)

  1. Buat key di /app/keys dan salin — key hanya ditampilkan sekali.
  2. Buka CC Switch pada tab tingkat teratas Claude Code lalu klik tombol plus. Pertahankan Custom Configuration bawaan, bukan preset.
  3. Isi Provider Name, API Key, dan API Endpoint = https://api.kunavo.com.
  4. Buka Advanced Options dan pastikan API Format bernilai Anthropic Messages (Native) serta Auth Field bernilai ANTHROPIC_AUTH_TOKEN (Default). Keduanya adalah nilai bawaan; tujuannya untuk memeriksa, bukan mengubah.
  5. Simpan, lalu Activate. Kartu seharusnya tidak menampilkan penanda Needs Routing — penanda itu hanya muncul pada penyedia yang protokolnya perlu diterjemahkan.

Mengapa tidak ada penanda “Perlu Perutean”

Perutean lokal CC Switch berfungsi menjembatani protokol. Claude Code mengirim permintaan Anthropic Messages ke /v1/messages; gateway yang hanya menyediakan OpenAI Chat Completions atau Responses API tidak dapat menjawabnya, jadi rute tersebut mengonversi permintaan saat dikirim dan mengonversi respons saat kembali. Dalam proses itu, peristiwa streaming, pemanggilan alat, dan konfigurasi berpikir dibentuk ulang — ini berfungsi, tetapi menambahkan satu komponen lagi di antara editor dan model.

Kunavo menyediakan POST /v1/messages secara langsung, jadi tidak ada yang perlu dikonversi di sisi Claude Code: penyedia tetap Anthropic Messages (Native) dan rute itu sama sekali tidak dilalui. Kunavo juga menyediakan POST /v1/chat/completions dan POST /v1/responses dengan kunci yang sama, sehingga arah Codex di bawah ini dapat digunakan.

Tab CC SwitchAtur format kePerutean lokal
Claude CodeAnthropic Messages (Native)Tidak diperlukan
CodexAnthropic Messages (routing required)Wajib — rute ini menulis ulang /responses menjadi /v1/messages

Menjalankan model Claude di dalam Codex

Inilah arah yang tidak dibahas oleh panduan penyedia lainnya. Codex berkomunikasi dengan OpenAI Responses API, jadi jika diarahkan langsung ke endpoint /v1/messages, hasilnya 404 — CC Switch mengatasinya dengan mempertahankan Codex pada rute lokal dan menerjemahkan permintaannya. Pada tab Codex tidak ada preset Anthropic, jadi ini juga merupakan Custom Configuration:

CC Switch → tab Codex → Tambahkan penyedia
Provider Name      Kunavo
API Key            sk-kn-...
API Request URL    https://api.kunavo.com
Default Model      claude-sonnet-5

Advanced Options
  Upstream Format  Anthropic Messages (routing required)
Panduan CC Switch sendiri menyertakan peringatan yang patut diulang: sebagian penyedia membatasi Claude API mereka hanya untuk klien Claude Code, sehingga kunci semacam itu mungkin menimbulkan error saat digunakan melalui Codex. Kunavo tidak melakukan pembatasan itu — kunci sk-kn-… yang sama melayani endpoint Messages dan Responses, dan tidak ada daftar izin klien pada keduanya. Jika Anda ingin melewati penerjemahan sepenuhnya, Codex CLI juga dapat diarahkan langsung ke endpoint native /v1/responses Kunavo; caranya dijelaskan di halaman Codex CLI.

Pemetaan model

CC Switch memetakan tiga tingkatan Claude Code ke ID model yang sebenarnya. Isi ketiganya serta Default fallback model — jika tidak, permintaan yang tidak cocok akan diteruskan dengan nama Claude aslinya dan menimbulkan error di hulu. Tarif dalam USD per 1 juta token, input / output, diambil langsung dari katalog.

TingkatID modelKunavo masuk / keluarMengapa
Haikuclaude-haiku-4-5$0.70 / $3.50Claude Code mengarahkan subtugas latar belakang ke sini — tingkatan termurah adalah pilihan yang tepat
Sonnetclaude-sonnet-5$1.40 / $7.00Pilihan bawaan yang sesuai untuk penyuntingan
Opusclaude-opus-5-5$2.80 / $14.00Perubahan pada tingkat arsitektur
Biarkan kotak centang 1M tidak dicentang, kecuali tingkatan tersebut benar-benar mendukung jendela konteks satu juta token. Menyatakan kapasitas konteks yang tidak dimiliki layanan hulu tidak menambah kapasitas — hanya memindahkan kegagalan ke tengah percakapan panjang.

Verifikasi sebelum menelusuri masalah aplikasi

Sepasang permintaan sudah cukup untuk memastikan apakah kegagalan berasal dari kunci, endpoint, atau CC Switch. Jika keduanya menghasilkan 200, masalah yang masih tersisa ada pada kolom di formulir — dan hampir selalu berupa Auth Field atau /v1 yang seharusnya tidak ada di endpoint.

# Settles whether a failure is the key, the endpoint, or CC Switch.
# 200 + a JSON list of model ids means the same key works in the app.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

# The Anthropic face, which is the one the Claude Code tab actually calls.
curl -sS https://api.kunavo.com/v1/messages \
  -H "Authorization: Bearer sk-kn-..." \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-haiku-4-5","max_tokens":16,
       "messages":[{"role":"user","content":"ping"}]}'

Referensi

CC Switch adalah perangkat lunak sumber terbuka di github.com/farion1231/cc-switch. Nama kolom dan perilaku di atas berasal dari panduannya sendiri — panduan perutean Claude Code dan panduan perutean Codex, yang keduanya menyatakan berlaku untuk versi 3.17.0 dan yang lebih baru. Pada versi lama, formulirnya berbeda; periksa panel About aplikasi jika kolom yang disebutkan di sini tidak tersedia. Dokumentasi Kunavo dapat ditemukan di Messages API, chat completions, dan pusat integrasi.

Pertanyaan umum

Bagaimana cara menambahkan penyedia kustom di CC Switch?

Di tab Claude Code, klik tombol plus, biarkan Custom Configuration sebagai pilihan default, lalu isi Provider Name, API Key, dan API Endpoint. API Endpoint adalah akar layanan gateway tanpa garis miring di akhir—untuk Kunavo, nilainya https://api.kunavo.com, tanpa /v1. Kemudian, buka Advanced Options dan periksa dua kolom: API Format dan Auth Field. Keduanya menentukan apakah penyedia berfungsi, dan sering tidak dicantumkan dalam panduan penyiapan.

Apakah perutean lokal CC Switch harus diaktifkan untuk Kunavo?

Tidak. Perutean lokal digunakan untuk menerjemahkan protokol—misalnya, mengubah permintaan /v1/messages Claude Code menjadi OpenAI Responses atau Chat Completions saat penyedia hulu hanya mendukung protokol tersebut. Kunavo menyediakan Anthropic Messages API secara langsung di https://api.kunavo.com/v1/messages, jadi API Format tetap menggunakan nilai default Anthropic Messages (Native), kartu penyedia tidak menampilkan penanda Needs Routing, dan permintaan dikirim langsung ke penyedia hulu. Gateway yang hanya menawarkan Chat Completions harus menjalankan perutean lokal untuk setiap permintaan.

Mengapa API Endpoint tidak mencantumkan /v1, padahal contoh OpenAI mencantumkannya?

Karena kedua konvensi tersebut memang berbeda. Klien bergaya Anthropic menambahkan /v1/messages sendiri, jadi hanya memerlukan origin—https://api.kunavo.com. OpenAI SDK mengharuskan /v1 sudah tercantum di base_url, jadi memerlukan https://api.kunavo.com/v1. Tab Claude Code di CC Switch menggunakan konvensi Anthropic, jadi /v1 tidak dicantumkan. Membalik format ini adalah kesalahan penyiapan yang paling umum di semua klien; halaman ANTHROPIC_BASE_URL menjelaskan kedua format tersebut.

Haruskah saya mengatur Auth Field ke ANTHROPIC_API_KEY?

Tidak—gunakan nilai default, ANTHROPIC_AUTH_TOKEN. Nilai tersebut membuat CC Switch mengirim Authorization: Bearer <key>. Jika memilih ANTHROPIC_API_KEY, CC Switch akan mengirim header x-api-key, yang juga diterima Kunavo. Jadi, header bukan masalahnya; persetujuan yang diperlukanlah masalahnya. Claude Code meminta persetujuan satu kali sebelum menggunakan ANTHROPIC_API_KEY dalam sesi interaktif. Jika ditolak, kunci itu akan diabaikan setelahnya—kegagalan autentikasi yang tampak seperti masalah kunci, padahal kuncinya benar.

Bisakah saya menjalankan model Claude di Codex melalui CC Switch?

Ya, dan inilah bagian yang sering dilewatkan dalam panduan penyedia. Di tab Codex, tambahkan Custom Configuration dengan API Request URL https://api.kunavo.com dan Default Model seperti claude-sonnet-5, lalu atur Upstream Format ke Anthropic Messages (routing required) di Advanced Options. Perutean lokal harus aktif untuk konfigurasi ini karena Codex menggunakan Responses API dan perutean tersebut mengubah /responses menjadi /v1/messages. Panduan CC Switch sendiri memperingatkan bahwa beberapa penyedia membatasi Claude API mereka untuk klien Claude Code, sehingga kunci mereka gagal digunakan melalui Codex. Kunavo tidak menerapkan batasan itu: kunci sk-kn- yang sama dapat digunakan untuk kedua sisi.

ID model apa yang harus saya cantumkan dalam pemetaan model CC Switch?

Gunakan ID katalog Kunavo. Pembagian default yang baik adalah claude-haiku-4-5 ($0.70 / $3.50 per 1 juta token) pada tingkat Haiku, karena Claude Code mengirim sub-tugas latar belakang ke sana; claude-sonnet-5 ($1.40 / $7.00) pada Sonnet; dan claude-opus-5-5 ($2.80 / $14.00) pada Opus. Selalu isi juga model fallback Default — jika dibiarkan kosong, CC Switch meneruskan permintaan yang tidak cocok menggunakan nama Claude asli, dan permintaan tersebut gagal di upstream. Daftar terbaru tersedia di GET /v1/models.

Di mana CC Switch menyimpan kunci API saya?

Di penyimpanan CC Switch sendiri, bukan di konfigurasi klien. CC Switch menyimpan penyedia di ~/.cc-switch/cc-switch.db dan, saat perutean lokal mengambil alih klien, hanya menuliskan alamat rute lokal ke ~/.claude/settings.json dengan placeholder di entri autentikasi—kunci sebenarnya disisipkan oleh rute saat permintaan diteruskan. Ini merupakan karakteristik CC Switch, bukan Kunavo. Informasi ini berguna karena kunci yang Anda tempelkan bukanlah kunci yang tersimpan di berkas yang mungkin akan Anda commit.