Dokumentasi
Junie CLI
Junie CLI menerima endpoint khusus melalui file JSON, bukan layar pengaturan. Sembilan baris dalam $JUNIE_HOME/models/kunavo.json dan junie --model custom:kunavo sudah menjalankan Claude dan GPT melalui satu kunci — dengan lalu lintas tugas pendukung diarahkan ke layanan yang murah.
Junie CLI menerima endpoint khusus sebagai profil JSON di $JUNIE_HOME/models/, dengan baseUrl sebagai URL endpoint lengkap dan fasterModel menentukan tujuan traffic pembantunya.
{
"id": "claude-sonnet-5",
"baseUrl": "https://api.kunavo.com/v1/chat/completions",
"displayName": "Kunavo",
"providerName": "Kunavo",
"apiType": "OpenAICompletion",
"apiKey": "${KUNAVO_API_KEY}",
"fasterModel": {
"id": "claude-haiku-4-5"
}
}baseUrl adalah endpoint lengkap, termasuk seluruh jalurnya. JetBrains menyatakannya dengan jelas: “baseUrl digunakan sebagai URL endpoint lengkap — Junie tidak menambahkan jalur ke URL tersebut,” dan menginstruksikan Anda untuk “menetapkannya ke endpoint lengkap untuk apiType yang Anda pilih”. Jadi, kolom ini bukan origin maupun akar /v1 yang dibutuhkan sebagian besar klien — nilainya adalah https://api.kunavo.com/v1/chat/completions. Berhenti di https://api.kunavo.com/v1 adalah penyebab paling mungkin munculnya 404 dari profil yang sudah benar dalam aspek lain.apiKey dan extraHeaders menerima referensi $${VAR_NAME}, dan JetBrains mendokumentasikan bentuk kegagalannya secara tepat: “Jika variabel lingkungan yang dirujuk belum ditetapkan, profil gagal dimuat dan Junie melaporkan kesalahan yang mengidentifikasi variabel yang tidak tersedia.” Ekspor KUNAVO_API_KEY sebelum memulai Junie — profil dibaca saat dimuat, bukan saat permintaan pertama, jadi shell yang kehilangan hasil ekspor tersebut akan membuat profil menghilang dari /model, bukan menghasilkan 401.fasterModel adalah tujuan Junie mengirim pekerjaan yang tidak Anda minta. JetBrains menjelaskannya sebagai “Model yang digunakan untuk tugas pendukung internal seperti merangkum konteks atau mengklasifikasikan tugas”, dan menyatakan bahwa jika primaryModel atau fasterModel “tidak didefinisikan secara eksplisit, keduanya mewarisi properti tingkat atas”. Karena itu, profil tanpa blok fasterModel menagihkan pekerjaan pengelolaan internal dengan tarif model utama Anda. Penggantian satu baris di atas adalah solusi lengkapnya, dan itulah alasan blok tersebut ada dalam konfigurasi minimal, bukan dalam lampiran.curl di bawah adalah bagian yang dapat Anda pastikan dalam sepuluh detik; bagaimana Junie berperilaku di atasnya adalah urusan antara Anda dan JetBrains.sk-kn-) dan tambahkan kredit mulai dari $10 — panggilan dibayar dari saldo tersebut, dan panggilan yang gagal tidak ditagihkan. Dasbor kemudian terbuka pada penyiapan Junie CLI.Langkah demi langkah
- Buat kunci di
/app/keysdan salin — kunci hanya ditampilkan sekali. Ekspor sebagaiKUNAVO_API_KEYdi shell yang akan Anda gunakan untuk memulai Junie, atau masukkan kunci literal ke dalam file; JetBrains mencatat bahwa “Nilai tanpa referensi$${...}apa pun digunakan sebagaimana adanya”. - Simpan JSON di atas sebagai
$JUNIE_HOME/models/kunavo.jsonuntuk akun Anda, atau.junie/models/kunavo.jsonuntuk membagikannya melalui repositori. Nama file tanpa.jsonmenjadi ID profil — itulah yang membuat pemilih di bawah menampilkancustom:kunavo. - Tetapkan
idke ID model yang benar-benar Anda inginkan. Kolom ini dijelaskan sebagai “Pengenal model sebagaimana yang diharapkan oleh endpoint API”, jadi slug Kunavo dari tabel di bawah dapat langsung dimasukkan; ID diresolusikan di endpoint, bukan di dalam Junie. - Mulai Junie dan pilih profil:
junie --model custom:kunavo, atau perintah/modeldalam sesi interaktif. Model khusus “muncul dalam daftar pemilihan model setelah penyedia bawaan”. - Berikan tugas yang mengedit file, bukan sapaan. Junie adalah klien agentik dan mengandalkan pemanggilan alat untuk hampir semua yang dilakukannya, sehingga percobaan pertama yang membaca dan menulis sesuatu memberi Anda jauh lebih banyak informasi daripada satu balasan.
Diperiksa terhadap Halaman LLM Khusus JetBrains untuk Junie pada 21 September 2026. Pengaturan pihak ketiga dapat berubah; jika nama bidang di sini tidak lagi sama dengan yang Anda lihat, halaman tersebut adalah acuan, bukan halaman ini.
Verifikasi sebelum men-debug klien
Satu permintaan menentukan apakah masalahnya ada pada endpoint, kunci, atau berkas konfigurasi. Jika ini mengembalikan JSON, base URL dan kunci yang sama berfungsi di Junie CLI.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."ID model yang harus dimasukkan ke bidang
Setiap model teks dapat diakses melalui ID model — daftar terkininya ada di GET /v1/models, dan katalog beserta harga ada di halaman model. Tarif dalam USD per 1 juta token, input / output.
| ID model | Kunavo masuk / keluar | Kegunaannya di Junie CLI |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | primaryModel untuk pekerjaan biasa — tugas yang mengedit file |
claude-opus-5 | $3.50 / $17.50 | rencana yang kesalahannya akan menimbulkan biaya besar, ditetapkan per sesi |
claude-haiku-4-5 | $0.70 / $3.50 | peran fasterModel: merangkum konteks, mengklasifikasikan tugas |
gpt-5-6-sol | $2.00 / $12.00 | pendapat kedua dari keluarga model lain — profil kedua, kunci yang sama |
Dua nilai apiType lain yang dilayani Kunavo
apiType menyebutkan format permintaan, bukan vendor, dan Junie menerima empat nilai: OpenAICompletion, OpenAIResponses, Google, dan Anthropic. Kunavo menyediakan tiga rute, sehingga dua dari tiga nilai lainnya memiliki baseUrl yang sesuai di sini — dan karena Junie tidak menambahkan jalur, mengubah format berarti mengubah URL dalam pengeditan yang sama:
"apiType": "OpenAICompletion"denganhttps://api.kunavo.com/v1/chat/completions— profil di atas, dan profil yang direkomendasikan halaman ini karena rutenya paling banyak digunakan di antara ketiganya."apiType": "Anthropic"denganhttps://api.kunavo.com/v1/messages— Kunavo melayani format Messages pada jalur tersebut."apiType": "OpenAIResponses"denganhttps://api.kunavo.com/v1/responses.
Manakah dari ketiga format yang paling baik dijalankan Junie untuk model tertentu merupakan pertanyaan yang hanya dapat dijawab oleh pengujian saat dijalankan, bukan dengan membaca dokumentasi, jadi halaman ini tidak memberi peringkat selain baris pertama tersebut. Pilih satu, pastikan URL dan apiType tetap sesuai, dan jika profil yang sudah diberi kunci mengembalikan 401, nyatakan kredensial secara eksplisit alih-alih menebak header Junie: JetBrains mendokumentasikan apiKey hanya dalam bentuk negatif — “Jika tidak disertakan, permintaan dikirim tanpa header Authorization” — dan tidak pernah menyatakan skema yang digunakan ketika nilai tersebut tersedia. extraHeaders didokumentasikan sebagai “header HTTP tambahan untuk disertakan dalam setiap permintaan” dan menerima referensi $${VAR} yang sama, sehingga "extraHeaders": {"Authorization": "Bearer $${KUNAVO_API_KEY}"} merupakan bentuk yang tidak ambigu.
Pertanyaan umum
Bagaimana cara menambahkan penyedia khusus ke Junie CLI?
Junie CLI membaca penyedia khusus dari profil JSON, bukan dari layar pengaturan. Letakkan file dalam $JUNIE_HOME/models/ untuk akun Anda atau .junie/models/ di dalam proyek; nama file tanpa ekstensi .json menjadi ID profil. Kunci yang wajib ada adalah id, baseUrl, dan apiType, sedangkan apiKey, displayName, providerName, extraHeaders, extraBody, temperature, maxContextLength, primaryModel, dan fasterModel bersifat opsional. Lalu pilih profil tersebut dengan `junie --model custom:<id>` atau perintah /model — model khusus muncul dalam daftar setelah penyedia bawaan.
Apakah baseUrl Junie CLI memerlukan /v1 atau jalur lengkap?
Jalur lengkap. JetBrains menyatakan bahwa baseUrl digunakan sebagai URL endpoint lengkap dan bahwa Junie tidak menambahkan jalur ke URL tersebut, serta menginstruksikan Anda untuk menetapkannya ke endpoint lengkap untuk apiType yang Anda pilih. Untuk profil OpenAICompletion yang mengarah ke Kunavo, nilainya adalah https://api.kunavo.com/v1/chat/completions — bukan origin, dan bukan akar /v1 yang dibutuhkan klien seperti Kilo Code. Kedua contoh profil dalam dokumentasi JetBrains sendiri menyertakan jalur lengkap karena alasan yang sama.
Mengapa Junie menyatakan profil gagal dimuat karena variabel lingkungan tidak tersedia?
Karena nilai apiKey dan extraHeaders mendukung referensi ${VAR_NAME}, dan JetBrains mendokumentasikan bahwa jika variabel lingkungan yang dirujuk belum ditetapkan, profil gagal dimuat dan Junie melaporkan kesalahan yang menyebutkan variabel yang tidak tersedia. Resolusi berlangsung saat profil dimuat, sehingga gejalanya adalah profil menghilang dari daftar model, bukan permintaan yang gagal. Ekspor variabel sebelum memulai Junie, atau ganti referensi tersebut dengan nilai literal.
Bisakah Junie CLI menggunakan kunci BYOK sendiri dengan gateway seperti Kunavo?
Layar BYOK dan profil khusus merupakan dua jalur yang berbeda. Halaman BYOK JetBrains membahas penyambungan ke penyedia yang disebutkan — OpenAI, Anthropic, Google, xAI, OpenRouter, atau GitHub Copilot — melalui /account atau "Gunakan kunci API Anda sendiri" pada layar selamat datang, dan menyatakan bahwa semua penggunaan ditagihkan oleh penyedia tanpa memerlukan langganan JetBrains AI. Endpoint yang tidak ada dalam daftar tersebut, termasuk Kunavo, dimasukkan sebagai profil LLM khusus, yaitu file JSON di halaman ini. Penggunaan kunci milik Anda sendiri adalah kemampuan Junie CLI: dokumentasi plugin JetBrains menyatakan bahwa kemampuan ini tidak didukung melalui plugin Junie.
Mengapa Junie memanggil model yang tidak saya pilih?
Junie membagi profil menjadi dua peran, dan fasterModel didokumentasikan sebagai model yang digunakan untuk tugas pendukung internal seperti merangkum konteks atau mengklasifikasikan tugas. Jika Anda tidak mendefinisikan blok tersebut, JetBrains menyatakan bahwa kedua peran mewarisi properti tingkat atas — sehingga lalu lintas tugas pendukung berjalan pada model utama Anda dan ditagihkan dengan tarifnya. Pengaturan fasterModel.id ke ID yang lebih murah, seperti dalam profil di halaman ini, adalah cara mengendalikannya; baseUrl, apiType, dan apiKey tingkat atas diwarisi oleh kedua peran, jadi hanya id yang perlu diubah.
Apakah Kunavo telah menguji Junie CLI?
Tidak. Yang diperiksa pada 21 September 2026 adalah dokumentasi LLM Khusus JetBrains sendiri — nama kolom, urutannya, nilai apiType yang diterima, dan aturan endpoint lengkap dikutip darinya. Kunavo belum menginstal Junie CLI, menetapkan build, ataupun mengirim permintaan melaluinya, dan tidak membuat klaim apa pun di sini tentang streaming, siklus pemanggilan alat, atau perutean model di dalam klien. Satu hal yang dapat Anda pastikan secara terpisah adalah apakah endpoint dan kunci berfungsi sama sekali, yang diperiksa oleh curl di halaman ini.