Arahkan editor kamu ke kenari

Claude Code bicara protokol Anthropic, Codex bicara protokol OpenAI, dan alat berikutnya minta akun sendiri lagi. Padahal yang mereka butuhkan dari kamu cuma dua hal yang sama: base URL yang benar dan satu key.
Satu key kn- kepakai di semuanya, dan editor yang sudah kamu buka tiap hari nggak usah diganti. Ganti model cukup ganti satu nilai, bukan menulis ulang integrasi.
Buat yang kerjanya di n8n, tulisannya ada sendiri di Arahkan n8n ke kenari, jadi yang ini khusus editor.
Satu key, dua protokol
kenari bicara dua bahasa yang sudah dipakai alat-alatmu. Klien yang kompatibel dengan OpenAI, dari Codex, OpenCode, Zoo Code, sampai SDK yang sudah nyempil di proyekmu, diarahkan ke https://kenari.id/v1. Claude Code beda sendiri, soalnya dia bicara protokol Anthropic dan menambahkan /v1 sendiri, jadi base URL-nya https://kenari.id tanpa /v1.
Pilih satu dari dua bentuk itu, tempel key kn- di header, dan alatnya nggak perlu kamu tulis ulang, sementara salah pasang bikin path-nya jadi https://kenari.id/v1/v1/... atau klien OpenAI-nya kehilangan /v1, dan yang balik biasanya 405, bukan 404.
Coba dulu tanpa saldo

Masuk ke dashboard, buka API keys, klik Buat key, dan karena key kn- cuma ditampilkan sekali, langsung salin. Satu key berlaku untuk semua model, semua provider, dan kedua API tadi.
Nggak wajib top up dulu buat cobain. Tambahin akhiran :free di id model, dan step-3-7-flash:free inilah yang kami pakai di semua prosedur di bawah, karena dia nggak memotong saldo dan tetap jalan di akun Rp 0. Ada batas per akun, dan jalurnya nggak dijamin secepat model berbayar. Cara memilih id-nya ada di Coba dulu pakai model :free.
Daftar id yang tersedia ada di GET /v1/models, publik tanpa key. Jangan di-hardcode, katalognya berubah.
Claude Code
Tiga baris di shell, taruh di ~/.zshrc supaya menetap, lalu buka terminal baru:
export ANTHROPIC_BASE_URL=https://kenari.id
export ANTHROPIC_AUTH_TOKEN=kn-...
export ANTHROPIC_MODEL=step-3-7-flash:free
Habis itu jalankan claude dan kirim pesan apa saja. Kalau yang muncul malah 401 invalid x-api-key, biasanya env-nya belum termuat di terminal itu. model_not_found artinya id-nya salah ketik, jadi salin persis step-3-7-flash:free, sedangkan 402 insufficient_balance artinya modelnya bukan varian :free dan saldomu masih Rp 0.
ANTHROPIC_API_KEY lewat header x-api-key juga diterima, dan endpoint count_tokens tersedia, jadi penghitung konteks Claude Code tetap jalan.
Codex
Codex CLI versi baru cuma bicara lewat /v1/responses, soalnya wire_api = "chat" sudah dihapus, jadi isi ~/.codex/config.toml seperti ini:
model = "step-3-7-flash:free"
model_provider = "kenari"
[model_providers.kenari]
name = "kenari"
base_url = "https://kenari.id/v1"
wire_api = "responses"
env_key = "KENARI_API_KEY"
requires_openai_auth = false
export KENARI_API_KEY=kn-...
codex
Key-nya diambil dari env, bukan dari akun OpenAI kamu, dan kalau sudah tersimpan di ~/.codex/auth.json, ganti jadi requires_openai_auth = true lalu hilangkan env_key.
Alat lain, pola yang sama
Di OpenCode, ketik /connect, pilih Kenari, lalu tempel kn-..., atau lewat shell tinggal export KENARI_API_KEY=kn-.... Zoo Code lewat pengaturannya: pilih Kenari sebagai provider, tempel key, pilih model, dan daftar modelnya ditarik dari /v1/models jadi katalognya ikut yang terbaru.
Hermes, OpenClaw, OmniRoute, dan Claude Code Router ikut pola yang sama, cuma base URL plus key. Langkah persisnya ada di dokumentasi editor.
Polanya memang itu: satu kn- untuk semuanya, dan yang kamu ganti tiap pindah model cuma isi field model, entah claude-sonnet-5, gpt-5-5, gemini-3-7-flash, atau nama rute yang kamu bikin di dashboard. Sisi klien-nya nggak usah disentuh.
Satu sesi, model berbeda per peran
Cara env tadi mengunci semua sesi Claude Code ke satu model, dan kalau kamu nggak mau begitu, ada CLI resmi:
npm install -g @kenarihq/cli
kenari login
kenari claude
kenari login membuka halaman persetujuan di browser, lalu menyimpan key-nya di ~/.kenari/credentials.json. Yang mengatur peran itu kenari configure: nilai native tetap ke provider asli, sementara nilai berawalan kenari/ lewat kenari. Wrapper-nya nggak menulis apa pun ke config Claude Code maupun Codex, jadi kalau ragu, cek pakai kenari status --check.
Cara env di atas dan CLI ini dua jalan ke tempat yang sama. Pilih salah satu. kenari claude mengambil alih ketiga variabel Anthropic untuk sesi yang dia jalankan, jadi kalau ketiganya terlanjur terpasang, biarin saja.
MCP, kalau agent-mu butuh tool
Server MCP kenari ada di https://kenari.id/mcp, dan tanpa key pun agent-mu bisa mencari dokumentasi (kenari_search_docs) dan melihat daftar model (kenari_list_models). Begitu kamu pasang header Authorization: Bearer kn-..., dia bisa cek saldo dan pemakaian, lalu kenari_web_search, kenari_web_fetch, dan kenari_x_search. Tiga yang terakhir ditagih per tool call yang berhasil, dan yang gagal nggak dipotong.
{
"mcpServers": {
"kenari": {
"url": "https://kenari.id/mcp",
"headers": { "Authorization": "Bearer kn-..." }
}
}
}
Kalau mentok
Empat kode yang paling sering mampir:
401: key salah, kepotong waktu disalin, atau env belum termuat. Salin ulangkn-..., buka terminal baru.model_not_found: id-nya salah ketik. Ambil id-nya dariGET /v1/models.402 insufficient_balance: model berbayar, saldo masih Rp 0. Pindah ke:free, atau isi saldo dulu.405: bentuk base URL-nya ketuker. OpenAI-style harushttps://kenari.id/v1, Claude Code harushttps://kenari.id.