Crush - Terminal için Gelişmiş Bir AI Kodlama Ajanı
(github.com/charmbracelet)- Terminalde çalışan bir AI kodlama ajanı olarak, çeşitli LLM (büyük dil modelleri) ile entegre şekilde çalışarak kod yazımı, iş akışı otomasyonu ve kod bağlamının korunmasıyla kod üretkenliğini artırmayı destekler
- Çoklu modelleri seçebilir veya oturum sırasında serbestçe model değiştirebilir ve proje bazında oturum/bağlamın korunmasını destekler
- LSP (Language Server Protocol) entegrasyonu, genişletilebilir MCP (Model Context Protocol) desteği, .gitignore ve ayrı dosya dışlama gibi geliştirici dostu özellikler sunar
- macOS, Linux, Windows, FreeBSD gibi başlıca terminal ortamlarında çalışır ve paket yöneticisi veya Go, ikili dosya dahil birden fazla kurulum yöntemi sunar
- Sezgisel ayar ile gelişmiş özelleştirmeyi aynı anda destekleyerek, ortam değişkenleri, JSON ayarları ve araç beyaz listesi gibi özelliklerle ileri düzey kullanıcıları da gözeten bir tasarıma sahiptir
Crush
- Terminal ortamında çalışan bir AI kodlama ajanı olarak, geliştiricinin tercih ettiği LLM ile serbestçe entegre olur ve kod yazımı, düzenleme, otomasyonu destekler
- Çeşitli modelleri (Anthropic, OpenAI, Groq, OpenRouter vb.) özgürce seçip değiştirebilir; oturum başına bağlamı bağımsız yönetir
- LSP (Language Server Protocol) ile her dile uygun ek bağlam alarak daha akıllıca kod desteği sağlar
- MCP (Model Context Protocol) ile harici sistemler, HTTP, komut satırı ve SSE gibi çeşitli kaynaklardan ek bilgi toplayıp kullanır
Ana Özellikler
- Çoklu model desteği: OpenAI, Anthropic, Groq, OpenRouter gibi çeşitli LLM entegrasyonları; doğrudan ekleme imkânı
- Oturum tabanlı çalışma: Proje bazında birden fazla çalışma oturumu ve bağlamı ayırma ve yönetme
- Esnek model değiştirme: Oturumun ortasında dahi serbestçe model değiştirilebilir, mevcut bağlam korunur
- LSP entegrasyonu: Go, TypeScript, Nix gibi başlıca diller için LSP bağlantısı ile kod bağlamı güçlendirilir
- Genişletilebilirlik: MCP protokolü tabanlı olarak harici HTTP/CLI/SSE gibi ek işlevleri kolayca genişletebilirsiniz
- Geniş platform desteği: macOS, Linux, Windows (WSL, PowerShell), FreeBSD, OpenBSD, NetBSD gibi ana işletim sistemi terminallerinin tümünde çalışır
- Sezgisel ayar: Ek yapılandırma gerektirmeden hemen kullanılabilir, gerekirse proje bazlı/küresel JSON ayarları desteklenir
- Güçlü dışlama (ignoring) özelliği:
.gitignore,.crushignoredosyalarıyla bağlam hariç tutulan dosya/klasörleri yönetme - Araç beyaz listesi: Araç çalıştırmada önceden onay ve otomatik çalıştırma seçenekleri desteklenir;
--yolobayrağıyla tüm prompt atlanabilir (dikkatli kullanım gerekir) - Özel sağlayıcı: OpenAI ve Anthropic uyumlu API'leri ekleyip fiyat ve bağlam gibi detaylı seçenekleri belirleyebilirsiniz
Kurulum ve Başlangıç
- Homebrew, NPM, Arch, Nix, Debian/Ubuntu, Fedora/RHEL gibi farklı paket yöneticileri ve ikili dosya/Go ile kurulabilir
- İlk çalıştırmada tercih edilen LLM API anahtarını (OpenAI, Anthropic, Groq vb.) girmeniz gerekir; ortam değişkenleriyle de belirtilebilir
- Ortam değişkeniyle entegre edilebilen öne çıkan LLM'ler:
OPENAI_API_KEY,ANTHROPIC_API_KEY,GROQ_API_KEY,OPENROUTER_API_KEY,GEMINI_API_KEY,VERTEXAI_PROJECTvb.
Ayar Örnekleri
- Küresel veya proje düzeyinde JSON dosyasıyla (
./.crush.json,./crush.json,$HOME/.config/crush/crush.json) gelişmiş seçenekleri uygulama - LSP ayarları: Her dil için komut belirtebilme
{ "lsp": { "go": { "command": "gopls" }, "typescript": { "command": "typescript-language-server", "args": ["--stdio"] } } } - MCP ayarları: HTTP/CLI/SSE tabanlı harici genişletme örneği
{ "mcp": { "filesystem": { "type": "stdio", "command": "node", "args": ["/path/to/mcp-server.js"] } } } - Dosya dışlama ve araç onayı
.crushignoreile belirli dosya/klasörleri hariç tutma- Araç çalıştırma beyaz listesi veya
--yolobayrağıyla prompt atlama
Gelişmiş Kullanıcı Özellikleri
- Özel sağlayıcı kaydı: OpenAI/Anthropic uyumlu API ekleme, fiyat/bağlam gibi ayrıntılı seçenekleri belirleme
- Loglama: Proje bazlı günlük dosyaları sağlanır;
crush logs,crush logs --followgibi CLI komutlarıyla gerçek zamanlı izleme - Hata ayıklama seçeneği:
--debugbayrağı veya yapılandırmayla ayrıntılı log etkinleştirme
2 yorum
aider gerçekten pek iyi değil;;
Hacker News görüşü
Terminal tabanlı yapay zeka kodlama ajanlarının çoğunun metin tabanlı arayüzü gösterişli hale getirmeye çalışması tuhaf geliyor. Bol boşluk, çizgi sanatı, widget'lar, ASCII art, gradyanlar, hatta animasyonlar ekleniyor. Ama istediğim tam tuş atamaları, sekme otomatik tamamlama, tutarlı scrollback ya da titreşimsiz metin render etme gibi temel özellikler eksik. Yine de bu araç en azından
node.jsile yazılmamış; bu yüzden terminal çıktısında gereksiz yeniden çizimleri azaltması gibi performans açısından umut veriyor. Ama REPL ya da CLI beklentisiyle kullanınca, etkileşim modeli aynı olsa da tamamen farklı çalışıyor; editör veya okuyucu türü Unix TUI'lerden de belirgin biçimde farklı hissettiriyor. Bu akım sadece Claude Code'u mu taklit ediyor yoksa daha önce mi başladı, merak ediyorum. Bu yüzden ben hâlâ Aider'ı tercih ediyorum. REPL'e daha yakın bir görünüm ve kullanım sunuyorBu araç Charm adlı şirket tarafından yapıldı ve misyonları komut satırı penceresini çekici hale getirmek. LLM furyasından yıllar önce de aktiflerdi. Golang için CLI framework'leri ve araçları yapıyorlar
Terminalde sevdiğim şey, komutları yazıp çeşitli kaynaklar ve programlardan gelen eylem ve çıktıları log gibi sırayla akıp giderken görebildiğim, kaydırma odaklı iş akışı. Aslında istediğim şey güçlü, HTML tabanlı, çok programlı bir kaydırma iş akışı. Ama bugünlerde bu denemeler iki tarafın da dezavantajlarını birleştiriyor gibi. İyi bir UI'yi daha iyi bir render sistemi üzerinde görmek isterim
Bu metin tabanlı UI akımı aslında AI ajanlarından önce de charmbracelet'in kendine özgü tarzıydı. Geleneksel TUI'lerden farklı olarak tuş atamalarının sezgisel biçimde keşfedilebilir olmasını seviyorum
Bu arayüzlerin bugünlerde hızla hayran ve geliştirici toplamasının nedenlerinden biri de, birçok kişinin zaten grafik tabanlı IDE tarzı editörlere alışkın olması olabilir. Her geliştirici sadece terminalde çalışmıyor. (Benim hâlâ X/Wayland'i bile açmadığım günler oluyor)
En azından emacs içinde Claude Code kullanılabiliyor https://github.com/stevemolitor/claude-code.el
Bu aracın güzel yanlarından biri, henüz erken aşamada olduğu için kodunun çok açık ve modüler olması. Araç çağrıları, oturumlar, otomatik özetleme, kalıcılık yönetimi gibi konularda bir ajan tasarlamak isteyenler için mükemmel bir plan niteliğinde. Bu commit bağlantısını kesinlikle kaydetmeye değer
Demo GIF'te neler olduğunu gerçekten okumak isteyenler için ffmpeg ile yavaşlatıp videoya çevirdim ve yükledim https://share.cleanshot.com/XBXQbSPP
Yaklaşık 15 dakika ciddi şekilde kullandım. Claude Code ile karşılaştırınca artıları: güzel bir UI, değişen dosyaları ve maliyeti takip etmeyi sağlayan kullanışlı bir kenar çubuğu, ayrıca değişiklikleri kabul etmek için akıcı bir UX (kısayol tuşları, kolay okunur diff'ler). Eksileri ise birden fazla modeli bir arada kullanamaması ve dizine gereksiz yere çok sayıda ikili dosya eklemesi. İlk
init,CHARM.mdadlı bir dosya oluşturuyor ama bu, modelle paylaşmak istediğim bilgilerle örtüşmedi. Örneğin Go test case'lerimde PascalCase kullandığım bilgisi aktarılmıyor. AyrıcaCtrl+Cile çıkınca terminalim çöküyorinit'inCHARM.mdoluşturması konusunda artık herkesin iyi bilinen tek bir agent instruction dosyası standardında (AGENT.mdgibi) anlaşmasını gerçekten isterim. Amp'in kendi CLI aracı için öne çıkardığı bir standart ama ironisinin farkında olsam da bu yaklaşımı destekler hale geldim https://ampcode.com/AGENT.md. Ya da şöyle dolaylı hack'ler de var https://kau.sh/blog/agents-md/Asıl önemli soru, yeni ajanlardan hangilerinin yerel modelleri düzgün desteklediği. Harici API bağımlılığını ortadan kaldırmak istiyorum ve belli ölçüde performans kaybını kabul etmeye hazırım
Crush için Ollama desteği ekleyen bir issue üzerinde çalışılıyor (2 haftadır)
Çoğu ajan OpenAI uyumlu endpoint'lerde çalışıyor
OpenHands ile istediğiniz herhangi bir LLM'i yapılandırabilirsiniz https://github.com/All-Hands-AI/OpenHands
Aider'ın da yerel modelleri desteklediği belirtiliyor ama ben bizzat denemedim https://aider.chat/docs/llms.html
Claude Code, opencode, aider, cortex gibi bu yeni araçların hepsini karşılaştıran bir tablo olsa gerçekten harika olurdu. Her birinin nasıl çalıştığı ya da neyle ayrıştığı bir bakışta pek anlaşılmıyor
Ticari modellerle karşılaştırma veya benchmark yapmak maliyet yüzünden çok zor. Yakın zamanda bir makale yazarken, birden fazla SOTA ticari modeli değerlendirmek için 10 bin dolardan fazla harcadım. Açık modellerle karşılaştırma daha ucuza yapılabiliyordu ama hakemler "en iyiler" ile kıyas görmek istiyordu, dolayısıyla yapacak bir şey yoktu. Üstelik ticari modellerin iç yapısı ya da stack'i şeffaf değil ve her an değişebiliyor; bu yüzden çok verimsiz. Akademik araştırmalarda ticari modellerle kıyaslamayı her durumda zorunlu tutmanın iyi bir fikir olmadığını düşünüyorum
Sanırım ilk adı opencode'du ama geliştiriciler arasında bir anlaşmazlık çıktığı için adı değişti
Performans yalnızca araca bağlı değil; kullanılan modele, kod tabanına (bağlam) ve verilen göreve (prompt) göre de değişiyor. Bu öğeler birbirinden bağımsız değil ve kombinasyona göre performans ciddi biçimde değişebiliyor. Örneğin Claude Sonnet 4 + Claude Code, backend Python özelliği geliştirmede iyiydi; Gemini 2.5 Pro ise frontend React kodunu düzenlemede daha iyiydi. Yani tüm değişkenleri sabitleyip sadece aracı kıyaslayamazsınız; araçmodelbağlam*prompt kombinasyonlarını düşünmek gerekir. 16x Eval bunun bir kısmını ele alıyor ama araç gibi unsurlar henüz dahil değil https://eval.16x.engineer/
"glamorous" Britanya İngilizcesinde de kullanılan bir ifade https://dictionary.cambridge.org/dictionary/english/glamorous
Son birkaç haftadır Crush kullanıyorum ve gerçekten çok umutluyum. Charm'ı uzun zamandır takip ediyorum; geliştirici deneyimini gerçekten anlayan ve insanların seveceği araçları istikrarlı biçimde üreten az sayıdaki ekipten biri. AI kodlama yarışına bu kadar erken katılmaları da iyi bir işaret. Gerçekten kullanan insanlar tarafından yapılmış bir araç olduğu çok belli
Bir tane daha çıktı ama bu kez tasarım gerçekten iyi. Kesinlikle deneyeceğim. Tüm araçlarda eksik bulduğum şeylerden biri (DÜZENLEME: opencode GitHub kimlik doğrulamasını destekliyor), aylık abonelikli hizmetlere (
github copilot,claude code,openai codex,cursorvb.) mevcut aboneliğimle doğrudan kimlik doğrulaması yapamamam. Hizmete aboneyim ama arayüzünü sevmiyorsam onu özgürce değiştirebilmek harika olurduLSP destekli: Crush, genel olarak yaptığı gibi LSP'yi ek bağlam olarak kullanıyor. Benim için en ilginç özellik bu. Çoklu oturum ve proje özellikleri de ilgimi çekiyor