Dokümantasyon

Dokümantasyon

Crush

Crush, Charm'ın terminal kodlama ajanıdır; aynı adı taşıyan Rust kabuğu değildir. Yapılandırması Bash biçimindedir. Bu nedenle onu başka bir uç noktaya yönlendirmek için tür, temel URL ve anahtar içeren tek bir sağlayıcı eklemek yeterlidir.

Crush'ın yapılandırması Bash'tir — crushrc içine tek bir `provider add kunavo --type openai-compat --base-url "https://api.kunavo.com/v1"` komutu Charm'ın terminal aracısını Claude ve GPT üzerinde çalıştırır.

~/.config/crush/crushrc
# A crushrc is Bash, not a settings file. Everything here is executed.
provider add kunavo \
  --type openai-compat \
  --base-url "https://api.kunavo.com/v1" \
  --api-key "${KUNAVO_API_KEY:?set KUNAVO_API_KEY}"

model add kunavo/claude-sonnet-5 \
  --name "Claude Sonnet 5" \
  --context-window 1000000 \
  --default-max-tokens 32000 \
  --price-input 1.4 \
  --price-output 7

model add kunavo/claude-haiku-4-5 \
  --name "Claude Haiku 4.5" \
  --context-window 200000 \
  --default-max-tokens 16000 \
  --price-input 0.7 \
  --price-output 3.5

model large kunavo/claude-sonnet-5
model small kunavo/claude-haiku-4-5
Temel URL'de /v1 soneki kalmalıdır. Crush'ın kendi belgelerindeki OpenAI uyumlu örneği --base-url "https://api.deepseek.com/v1"'dir; Anthropic uyumlu örneği de aynı şekilde biter. Dolayısıyla bu sonek bir tahmin değil, istemcinin kullandığı kuraldır. Soneki kaldırırsanız kimlik doğrulama hatası yerine 404 alırsınız.
openai yerine --type openai-compat kullanın. README ayrımı açıkça belirtir: openai, istekleri OpenAI üzerinden proxy'lemek veya yönlendirmek içindir; openai-compat ise OpenAI dışındaki, OpenAI uyumlu API'leri olan sağlayıcılar içindir. Kunavo ikinci duruma girer.
crushrc, Crush'ın yerleşik komutlarını içeren bir Bash dosyasıdır ve Crush'ın kendi uyarısına göre güvenilir kod sayılır; tam bir kabukta çalışır. Bunun faydası da şudur: --api-key "$(op read ...)" anahtarı dosyada tutmaz. Eski crush.json hâlâ yüklenir ancak README'de kullanımdan kaldırılmış olarak belirtilmiştir; bu nedenle crushrc ile başlayın.
Kunavo, Crush'ı çalışma zamanında test etmemiştir; bu istemciyi de bu sayfalardaki başka hiçbir istemciyi de. Burada denetlenen, Crush'ın yayımladığı yapılandırmanın Kunavo'nun yayımladığı uç noktayla eşleşmesidir; kurulum sayfası test sonucu değildir. Günlük kullandığınız istemciye geçmeden önce kapsamı sınırlı tek bir görev çalıştırın.
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 Crush kurulumunda açılır.

Adım adım

  1. /app/keys sayfasında bir anahtar oluşturup kopyalayın; anahtar yalnızca bir kez gösterilir. Anahtarı KUNAVO_API_KEY olarak dışa aktarın veya yapılandırma dosyasının içinden bir parola yöneticisinden okuyun.
  2. Yukarıdaki bloğu ~/.config/crush/crushrc içine koyun. Crush önce ./.crushrc dosyasını, sonra ./crushrc dosyasını, ardından genel olanı okur. Böylece bir proje makine düzeyindeki ayarı geçersiz kılabilir; klonladığınız bir depoda da böyle bir dosya bulunabilir.
  3. crush'ı başlatıp model seçiciyi açmak için ctrl+l'e basın. Yukarıdaki model large ve model small satırları her iki yuvayı da önceden belirler; dolayısıyla seçici kurulum için değil, model değiştirmek içindir.
  4. Kimlikleri elle kaydetmek istemiyorsanız otomatik keşif, bir openai-compat sağlayıcısının model listesi boş olduğunda veya --discover-models true iletildiğinde çalışır. Kunavo GET /v1/models isteğine yanıt verir, böylece liste kendiliğinden dolar; çakışma durumunda sizin model add alanlarınızdaki değerler geçerli olur.
  5. Kapsamı sınırlı tek bir görev çalıştırdıktan sonra /app/billing sayfasında hesabınıza kaydedilen ücreti okuyun. Terminaldeki rakam, sizin girdiğiniz --price-* değerleri üzerinden yapılan bir hesaplamadır; gerçek fatura hesap dökümüdür.

Crush'ın Özel Sağlayıcılar bölümü 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 Crush ve OpenCode 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 Crush 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ışCrush içinde kullanım alanı
claude-sonnet-5$1.40 / $7.00model büyük yuvası — günlük kodlama ve düzenleme modeli
claude-haiku-4-5$0.70 / $3.50model küçük yuvası; Crush bunu başlıklar ve özetler için sürekli kullanır
claude-opus-5$3.50 / $17.50hatalı bir planın pahalıya mal olacağı bir yeniden düzenleme için model büyük yuvasına geçin
gpt-5-6-terra$0.70 / $4.20aynı anahtarla başka bir model ailesi; bir model add komutu kadar uzakta
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.

Sık sorulan sorular

Crush CLI'a özel bir API sağlayıcısını nasıl eklerim?

Bunu Bash ve Crush yerleşik komutlarıyla çalışan bir crushrc dosyasına yazın. Tek satır uç noktayı kaydeder — provider add kunavo --type openai-compat --base-url "https://api.kunavo.com/v1" --api-key "$KUNAVO_API_KEY" — model add ile her kimlik için kayıt ekleyerek çağırmak istediklerinizi, görünen adla, bağlam penceresiyle ve Crush'ın ekrandaki tahmininde kullandığı milyon token başına fiyatlarla tanımlarsınız. Crush önce ./.crushrc dosyasını, sonra ./crushrc dosyasını, ardından ~/.config/crush/crushrc dosyasını okur; bu nedenle aynı blok proje başına veya makine başına kullanılabilir.

Crush temel URL'sinin sonunda /v1 olması gerekiyor mu?

Evet. Crush'ın kendi özel sağlayıcı örneklerinde her iki tür için de bu son ek kullanılır: OpenAI uyumlu durum için https://api.deepseek.com/v1, Anthropic uyumlu durum için https://api.anthropic.com/v1. Kunavo anahtarı için değer https://api.kunavo.com/v1 olur. Bu, ANTHROPIC_BASE_URL için yalın kök adres gerektiği Claude Code'un tersidir; çünkü bu istemci yolu kendisi ekler. Aynı ağ geçidi, iki farklı yazım; /v1 eksikse 401 yerine 404 alırsınız.

--type openai mı, yoksa --type openai-compat mı kullanmalıyım?

Üçüncü taraf ağ geçitleri için openai-compat kullanın. Crush'ın README dosyası openai türünü, istekleri doğrudan OpenAI üzerinden proxy'lemek veya yönlendirmek için ayırıyor; OpenAI uyumlu API'leri olan OpenAI dışındaki sağlayıcılar içinse openai-compat kullanılmasını söylüyor. Tür, kablo protokolünün ötesindeki davranışları da belirler: model listesi boş olan bir openai-compat sağlayıcısında modeller otomatik keşfedilir. Crush ayrıca Anthropic uyumlu uç noktalar için --type anthropic türünü destekler; bu tür --extra-header anthropic-version 2023-06-01 parametresini alır.

Bu yapılandırma için crush.json hâlâ doğru yer mi?

Hayır. crush.json özgün biçimdir; Crush'ın güncel belgeleri artık bu biçimin kullanımdan kaldırıldığını ve yeni özellik almayacağını belirtiyor. Güncel biçim crushrc'dir. Her ikisinin de ayrıştırılmak yerine çalıştırıldığını unutmayın: crushrc tam bir kabukta çalışır, crush.json içindeki $(...) ifadeleri ise yükleme sırasında genişletilir. Bu nedenle belgeler, yapılandırmasını okumadığınız bir dizinde Crush'ı başlatmamanız konusunda uyarıyor; ayrıca bir parola yöneticisinden anahtar çekmenin yapılandırma içinde çalışabilmesinin nedeni de budur.

Crush'ın gösterdiği ücret neden benden alınan tutardan farklı?

Çünkü bunlar farklı kaynaklardan gelen iki ayrı sayıdır. Elle kaydedilmiş bir sağlayıcı için ekrandaki tahmin, model add komutuna girdiğiniz --price-input ve --price-output değerlerinin hesabıdır; yerleşik sağlayıcılar içinse Crush'ın harici sağlayıcı kataloğu Catwalk'tan gelir. İkisi de hesabınızı okumaz. --price-* işaretlerinden birindeki yazım hatası yanlış bir gösterime yol açar, yanlış ücret alınmasına değil. Gerçek tutarı /app/billing adresindeki kayıtla karşılaştırın.

Crush, özel bir sağlayıcı üzerinden Claude veya GPT modellerini kullanabilir mi?

Evet; Crush'ta bunu kısıtlayan hiçbir şey yoktur. İlk kurulumda sizi resmi sağlayıcı Charm Hyper'a yönlendirir, ancak özel sağlayıcı belgelenmiş ve birinci sınıf bir kullanım yoludur; herhangi bir plan kısıtlaması yoktur ve model kimliği istemcide değil uç noktada çözümlenir. Dolayısıyla openai-compat sağlayıcısında bir Claude kimliği kullanmak amaçlanan birleşimdir: tür, satıcıyı değil kablo protokolünü belirtir.