Dokümantasyon

Dokümantasyon

Junie CLI

Junie CLI özel bir uç noktayı ayarlar ekranından değil, JSON dosyasından alır. $JUNIE_HOME/models/kunavo.json dosyasındaki dokuz satır ve junie --model custom:kunavo komutuyla, Claude ve GPT'yi tek anahtarla çalıştırabilirsiniz — yardımcı istekleri de ucuz bir yere yönlendirilir.

Junie CLI, özel uç noktayı $JUNIE_HOME/models/ içindeki JSON profili olarak alır; baseUrl eksiksiz uç nokta URL'sidir ve fasterModel yardımcı trafiğinin nereye gideceğini belirler.

$JUNIE_HOME/models/kunavo.json — veya .junie/models/kunavo.json
{
  "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, yolu da dâhil olmak üzere eksiksiz uç noktadır. JetBrains bunu açıkça belirtiyor: “baseUrl, eksiksiz uç nokta URL'si olarak kullanılır — Junie buna bir yol eklemez” ve “seçtiğiniz apiType için tam uç nokta olarak ayarlamanızı” söylüyor. Dolayısıyla bu alan kaynak adresi de çoğu istemcinin istediği /v1 kökü de değildir — https://api.kunavo.com/v1/chat/completions. https://api.kunavo.com/v1 ile yetinmek, doğru yapılandırılmış bir profilden 404 alma olasılığını en çok artıran hatadır.
Eksik bir ortam değişkeni yalnızca isteğin değil, profilin tamamının yüklenmesini engeller. apiKey ve extraHeaders değerleri $${VAR_NAME} referanslarını kabul eder; JetBrains hata durumunu açıkça şöyle belgeliyor: “Başvurulan bir ortam değişkeni ayarlanmamışsa profil yüklenemez ve Junie eksik değişkeni belirten bir hata bildirir.” Junie'yi başlatmadan önce KUNAVO_API_KEY değerini dışa aktarın — profil ilk istek sırasında değil, yükleme sırasında okunur. Dolayısıyla dışa aktarmanın kaybolduğu bir kabuk, 401 hatası yerine profilin /model listesinden kaybolmasına yol açar.
fasterModel, Junie'nin istemediğiniz işleri gönderdiği yerdir. JetBrains bunu “bağlamı özetleme veya görevleri sınıflandırma gibi dahili yardımcı görevlerde kullanılan model” olarak tanımlıyor ve primaryModel ya da fasterModel “açıkça tanımlanmamışsa üst düzey özellikleri devraldıklarını” belirtiyor. Bu nedenle fasterModel bloğu olmayan bir profilde, yardımcı işler ana modelinizin ücretinden faturalandırılır. Yukarıdaki tek satırlık geçersiz kılma, çözümün tamamıdır; bloğun ek bölümde değil, asgari yapılandırmada bulunmasının nedeni budur.
Bu profil, JetBrains'in yayımladığı şemadan ve aşağıdaki tarihte okunan bilgilerden türetilmiştir. Kunavo, Junie CLI'ı kendi uç noktasına bağlayarak çalıştırmamıştır — oturum, akışlı tur veya araç gidiş dönüşü yapılmamış; hiçbir istemci derlemesi sabitlenip onaylanmamıştır. Yayımlanmış bir kurulum sayfası test değildir ve buradaki bilgiler de test sonucu olarak okunmamalıdır. Aşağıdaki curl, on saniyede sınayabileceğiniz kısımdır; Junie'nin bununla nasıl çalıştığı ise JetBrains'e bağlıdır.
Henüz anahtarınız yok mu? Bir Kunavo hesabı oluşturun, bir anahtar oluşturun ( sk-kn- ile başlar) ve $10'dan kredi ekleyin — çağrılar bu bakiyeden ödenir ve başarısız çağrılar ücretlendirilmez. Ardından kontrol paneli Junie CLI kurulumunda açılır.

Adım adım

  1. /app/keys adresinde anahtar oluşturup kopyalayın — yalnızca bir kez gösterilir. Junie'yi başlatacağınız kabukta KUNAVO_API_KEY olarak dışa aktarın veya dosyaya doğrudan anahtar yazın. JetBrains'in belirttiği üzere, “Herhangi bir $${...} referansı içermeyen değerler doğrudan kullanılır”.
  2. Yukarıdaki JSON'u hesabınız için $JUNIE_HOME/models/kunavo.json dosyasına, depoyla paylaşmak içinse .junie/models/kunavo.json dosyasına kaydedin. .json uzantısı olmadan kullanılan dosya adı profil kimliği olur — aşağıdaki seçicinin custom:kunavo göstermesini sağlayan budur.
  3. id değerini gerçekten kullanmak istediğiniz model kimliğine ayarlayın. Bu değer “API uç noktasının beklediği model tanımlayıcısı” olarak tanımlanır; dolayısıyla aşağıdaki tablodan bir Kunavo slug'ını doğrudan kullanabilirsiniz. Kimlikler Junie içinde değil, uç noktada çözümlenir.
  4. Junie'yi başlatıp profili seçin: junie --model custom:kunavo veya etkileşimli oturumda /model komutu. Özel modeller “yerleşik sağlayıcıların ardından model seçimi listesinde görünür”.
  5. Selamlaşma yerine bir dosyayı düzenleyen görev verin. Junie, neredeyse yaptığı her işte araç çağırmaya dayanan bir ajan istemcisidir. Bu nedenle bir şeyi okuyup yazdığı ilk çalıştırma, tek bir yanıttan çok daha fazla bilgi verir.

Junie için JetBrains'in Custom LLMs sayfası ile 21 Eylül 2026 tarihinde kontrol edilmiştir. Üçüncü taraf ayarları değişebilir; buradaki alan adı gördüğünüzle artık eşleşmiyorsa yetkili kaynak bu sayfa değil, ilgili sayfadır.

Kısa sürüm budur. Model seçimi, gerçek bir oturumun maliyeti ve hata durumlarını içeren tam rehber Junie CLI ile Claude Code karşılaştırması — uç nokta sınırı içindedir.

İstemcide hata ayıklamadan önce doğrulayın

Tek bir istek, hatanın uç noktadan mı, anahtardan mı yoksa yapılandırma dosyasından mı kaynaklandığını kesinleştirir. Bu JSON döndürürse aynı temel URL ve anahtar Junie CLI içinde çalışır.

# 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-..."

Alana hangi model kimliği yazılmalı

Her metin modeline model kimliğiyle erişilebilir — güncel liste GET /v1/models, fiyatları içeren katalog ise modeller sayfasında. Ücretler 1 milyon token başına USD cinsindendir; giriş / çıkış.

Model kimliğiKunavo giriş / çıkışJunie CLI içinde kullanım alanı
claude-sonnet-5$1.40 / $7.00dosyaları düzenleyen sıradan işler için primaryModel
claude-opus-5$3.50 / $17.50yanlış yapılması pahalıya mal olacak bir planı oturum başına sabitlemek için
claude-haiku-4-5$0.70 / $3.50bağlamı özetleme ve görevleri sınıflandırma gibi fasterModel rolü
gpt-5-6-sol$2.00 / $12.00başka bir model ailesinden ikinci görüş — aynı anahtarı kullanan ikinci profil
Faturalandırma aylık ücret olmadan, ön ödemeli bakiyeden token başına yapılır — faturalandırmaya bakın. Tekrarlanan bağlamda — bir düzenleyicinin veya sohbet istemcisinin gönderdiği içeriğin çoğu budur — istem önbellekleme, faturayı model seçiminden daha fazla değiştirir.

Kunavo'nun yanıt verdiği diğer iki apiType değeri

apiType, bir satıcıyı değil istek biçimini belirtir ve Junie dört değer kabul eder: OpenAICompletion, OpenAIResponses, Google ve Anthropic. Kunavo üç rota sunar; dolayısıyla diğer üç değerden ikisinin burada karşılık gelen bir baseUrl rotası vardır. Junie yol eklemediğinden, biçimi değiştirmek URL'yi de aynı düzenlemede değiştirmek demektir:

  1. "apiType": "OpenAICompletion" ve https://api.kunavo.com/v1/chat/completions ile — yukarıdaki profil. Bu sayfa, üç rota arasında en yaygın şekilde kullanılan rota olduğundan bunu önerir.
  2. "apiType": "Anthropic" ve https://api.kunavo.com/v1/messages ile — Kunavo bu yolda Messages biçimine yanıt verir.
  3. "apiType": "OpenAIResponses" ve https://api.kunavo.com/v1/responses ile.

Belirli bir model için üç Junie sürücüsünden hangisinin en iyi olduğunu ancak çalışma zamanı testi yanıtlayabilir; belgeleri okumak bunu göstermez. Bu nedenle bu sayfa ilk satırın ötesinde bir sıralama yapmıyor. Birini seçin; URL ile apiType değerini uyumlu tutun. Anahtarın ayarlandığı bir profilden 401 alırsanız Junie'nin başlık biçimini tahmin etmek yerine kimlik bilgisini açıkça belirtin: JetBrains, apiKey hakkında yalnızca olumsuz durumu belgeliyor — “Atlanırsa istekler Authorization başlığı olmadan gönderilir” — ve mevcut olduğunda kullanılan şemayı hiç belirtmiyor. extraHeaders, “her isteğe eklenecek ek HTTP başlıkları” olarak belgelenmiştir ve aynı $${VAR} referanslarını kabul eder; bu da "extraHeaders": {"Authorization": "Bearer $${KUNAVO_API_KEY}"} seçeneğini belirsizliği ortadan kaldıran biçim yapar.

Sık sorulan sorular

Junie CLI'a özel sağlayıcıyı nasıl eklerim?

Junie CLI, özel sağlayıcıları ayarlar ekranından değil JSON profillerinden okur. Hesabınız için $JUNIE_HOME/models/ dizinine veya bir projeyle paylaşmak için projenin içindeki .junie/models/ dizinine dosya koyun; .json uzantısı olmadan kullanılan dosya adı profil kimliği olur. Zorunlu anahtarlar id, baseUrl ve apiType'tır; apiKey, displayName, providerName, extraHeaders, extraBody, temperature, maxContextLength, primaryModel ve fasterModel isteğe bağlıdır. Ardından `junie --model custom:<id>` veya /model komutuyla profili seçin — özel modeller listede yerleşik sağlayıcıların ardından görünür.

Junie CLI'ın baseUrl değerine /v1 mi yoksa tam yol mu eklenmeli?

Tam yol. JetBrains, baseUrl değerinin eksiksiz uç nokta URL'si olarak kullanıldığını ve Junie'nin buna yol eklemediğini belirtiyor; ayrıca seçtiğiniz apiType için tam uç noktanın ayarlanmasını söylüyor. Kunavo'ya bağlanan bir OpenAICompletion profili için bu, https://api.kunavo.com/v1/chat/completions adresidir — kaynak adresi veya Kilo Code gibi istemcilerin istediği /v1 kökü değil. JetBrains'in kendi belgelerindeki iki örnek profil de aynı nedenle tam yol içerir.

Junie neden eksik ortam değişkeni nedeniyle profilin yüklenemediğini söylüyor?

Çünkü apiKey ve extraHeaders değerleri ${VAR_NAME} referanslarını destekler. JetBrains, başvurulan ortam değişkeni ayarlanmamışsa profilin yüklenemediğini ve Junie'nin eksik değişkeni adlandıran bir hata bildirdiğini belgeliyor. Değişken, profil yüklenirken çözümlenir; dolayısıyla istek hatası yerine profil model listesinden kaybolur. Junie'yi başlatmadan önce değişkeni dışa aktarın veya referansı doğrudan bir değerle değiştirin.

Junie CLI, Kunavo gibi bir ağ geçidiyle kendi BYOK anahtarını kullanabilir mi?

BYOK ekranı ile özel profil iki ayrı yöntemdir. JetBrains'in BYOK sayfası, /account veya karşılama ekranındaki "Use your own API key" seçeneği üzerinden OpenAI, Anthropic, Google, xAI, OpenRouter ya da GitHub Copilot adlı bir sağlayıcıya bağlanmayı kapsar ve tüm kullanım ücretinin JetBrains AI aboneliği gerekmeksizin sağlayıcı tarafından alındığını belirtir. Kunavo da dâhil bu listede olmayan bir uç nokta, bu sayfadaki JSON dosyasıyla özel LLM profili olarak eklenir. Kendi anahtarınızı getirme, Junie CLI özelliğidir: JetBrains'in eklenti belgelerine göre Junie eklentisinde desteklenmez.

Junie neden seçmediğim bir modeli çağırıyor?

Junie bir profili iki role ayırır. fasterModel, bağlamı özetleme veya görevleri sınıflandırma gibi dahili yardımcı işler için kullanılan model olarak belgelenmiştir. Bu bloğu tanımlamazsanız JetBrains'e göre roller üst düzey özellikleri devralır; dolayısıyla yardımcı istekler ana modelinizde çalışır ve onun tarifesinden ücretlendirilir. Bu sayfadaki profilde olduğu gibi fasterModel.id değerini daha ucuz bir kimliğe ayarlayabilirsiniz. Üst düzey baseUrl, apiType ve apiKey her iki role de devredilir; bu nedenle yalnızca kimliğin değiştirilmesi yeterlidir.

Kunavo Junie CLI'ı test etti mi?

Hayır. 21 Eylül 2026'da kontrol edilen, JetBrains'in kendi Custom LLMs belgeleridir — alan adları, sıraları, kabul edilen apiType değerleri ve tam uç nokta kuralı bu belgelerden aktarılmıştır. Kunavo, Junie CLI'ı yüklememiş, bir derleme sürümünü sabitlememiş veya üzerinden istek göndermemiştir; akış, araç gidiş dönüşü ya da istemci içindeki model yönlendirmesi hakkında da iddiada bulunmaz. Tek başına sınayabileceğiniz şey, uç nokta ve anahtarın çalışıp çalışmadığıdır; bu sayfadaki curl bunu yapar.