Büyük kod tabanlarından temel kod yapısını çıkararak AI'nin kolayca anlayabileceği formata dönüştürür, böylece AI ajanları mevcut API'leri ilk denemede doğru şekilde kullanan kod yazabilir.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"janreges-ai-distiller": {
"command": "node",
"args": [
"~/.mcp/ai-distiller/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/janreges/ai-distiller.git ~/.mcp/ai-distiller
cd ~/.mcp/ai-distiller aid)Not: Bu aracın ilk versiyonudur. GitHub üzerinden discussion oluşturarak veya issue açarak herhangi bir geri bildirim için minnettar olacağız. Teşekkürler!
🚀 MCP Sunucusu Mevcut: AI Distiller için Model Context Protocol sunucusunu NPM'den yükleyin: @janreges/ai-distiller-mcp - Claude, Cursor ve diğer MCP-uyumlu AI araçlarıyla sorunsuzca entegre edin!
🤔 Neden AI Distiller?
Binlerce dosya ve fonksiyona sahip büyük ölçekli projelerle mi çalışıyorsunuz? Claude Code, Gemini, Copilot veya Cursor gibi AI araçlarının sıklıkla "hallüsinasyon" yapmasına ve ilk bakışta doğru görünen ama aslında projenizle uyumlu olmayan kod üretmesine mi mücadele ediyorsunuz?
Sorun bağlamdır (context). AI modelleri sınırlı bir context penceresine sahiptir ve tüm codebase'inizi anlayamaz. Bunun yerine, AI ajanları dosyaları arar, anahtar kelimelere "grep" yapar, bulunan terim öncesinde ve sonrasında birkaç satır bakarlar ve sınıflarınız ile fonksiyonlarınızın arayüzünü (çoğunlukla başarılı olup bazen başarısız) tahmin etmeye çalışırlar. Sonuç? Parametreleri tahmin eden, yanlış veri türleri döndüren ve mevcut mimarisi gözardı eden hatalarla dolu kod. Eğer AI ajanlarının sofistike bir kullanıcısıysanız (vibe coder), AI ajanına testleri tutarlı şekilde yazması ve çalıştırması, statik kod analizi, pre-commit hooks vb. kullanması talimat vererek kendinize yardımcı olabileceğinizi bilirsiniz - AI ajan genellikle kodu kendisi düzeltecektir, ama bu süreçte 20 adım ve 5 dakika alacaktır. Öte yandan, her AI isteği için ödeme yapıyorsanız (ve büyük context pahalı bir faktördür) ve "zamanı kullanmamaya" katılmıyorsanız, bu sınırlı context yaklaşımından rahatsız olmayabilirsiniz.
AI Distiller (kısaca aid) bu sorunu çözmede yardımcı olur. Ana işlevi kod "distillasyonu"dur – tüm proje (ideal olarak ana kaynak klasöründen veya çok büyük projeler için belirli bir modül alt dizininden) tarafından AI'ın ilk seferde doğru kod yazması için ihtiyaç duyduğu yalnızca gerekli bilgileri çıkaran bir süreç. Bu distillasyon genellikle orijinal kaynak kod hacminin yalnızca %5-20'si olan bir context üretir, AI araçlarının bunu kendi context'lerine eklemesine izin verir. Sonuç olarak, AI mevcut kodu deneme yanılma yöntemiyle değil, tasarlandığı gibi kullanır.
Çok basit şekilde söylenirse, aid, distillasyon süreci içinde, yalnızca arayüzün herkese açık kısımlarını, giriş ve çıkış veri türlerini bırakacak, ancak varsayılan durumda metot uygulamalarını ve herkese açık olmayan yapıları atacaktır. Ancak CLI Seçenekleri aracılığıyla her şey yapılandırılabilir.
| Özellik | Açıklama |
|---|---|
| 🚀 Aşırı Hız | Megabayt kodları yüzlerce milisaniye içinde işler. Varsayılan olarak, kullanılabilir CPU çekirdeklerinin %80'ini kullanır, ancak yapılandırılabilir, örn. --workers=1 ile yalnızca tek bir CPU çekirdeği kullanmak için. |
| 🧠 Akıllı Distillasyon | 12+ programlama dilini anlar ve yalnızca public API'ları (metotlar, özellikler, türler) çıkarır. |
| ⚙️ Yüksek Yapılandırılabilirlik | Private, protected ve internal üyelerini, uygulamayı veya yorumları dahil etmeye izin verir. |
| 🤖 AI İstem Oluşturma | Distillere edilmiş kod ile hazır kullanılır durumdaki istemi üretir. Araç, AI ajanlarının daha sonra güvenlik denetimleri, refactoring vb. için çalıştırabileceği istekler içeren dosyalar oluşturur. --ai-action anahtarına bakın. |
| 📋 Analiz Otomasyonu | AI ajanlarının tüm projeyi sistematik olarak analiz edebilmesi için tam bir kontrol listesi ve dizin yapısı oluşturur. --ai-action anahtarının flow-for-* eylemleri için bkz. |
| 📜 Git Analizi | Commit geçmişini işler ve geliştirme kalitesi ve takım dinamiklerinin derinlemesine analizi için veri hazırlar. |
| 💻 Çoklu Platform | Windows, Linux ve macOS (x64 & ARM) için hiçbir bağımlılığı olmayan tek bir binary dosya. |
| 🔌 MCP Aracılığıyla Entegrasyon | Dahil edilen MCP sunucusu sayesinde Claude Code, VS Code, Cursor, Windsurf ve diğerleri gibi araçlara entegre edilebilir. |
Granüler bayrak sistemiyle tam olarak neyi dahil edeceğinizi kontrol edin:
Görünürlük Kontrolü:
--public=1 (varsayılan) - Herkese açık üyeleri dahil et--protected=0 (varsayılan) - Protected üyeleri hariç tut--internal=0 (varsayılan) - Internal/package-private hariç tut--private=0 (varsayılan) - Private üyeleri hariç tutİçerik Kontrolü:
--comments=0 (varsayılan) - Yorumları hariç tut--docstrings=1 (varsayılan) - Belgelendirmeyi dahil et--implementation=0 (varsayılan) - Fonksiyon/metot gövdelerini hariç tut--imports=1 (varsayılan) - Import/use ifadelerini dahil etVarsayılan davranış: Yalnızca public API imzalarını temel belgelendirme ile gösterir - AI anlayışı için mükemmel, maksimum sıkıştırma sağlarken.
AI Distiller, distillere edilmiş kod ile birleştirilen özel istemi üretir ve AI tarafından yönetilen analiz için:
--ai-action=flow-for-deep-file-to-file-analysis - Sistematik dosya-dosya analizleri için görev listeleri ve istemi üretir--ai-action=flow-for-multi-file-docs - Kod yapısı ile belgelendirme iş akışı istemi oluşturur.aid/ dizinine kaydedilir (veya küçük codebase'ler için --stdout kullanın)Not: AI Distiller analizi kendisi gerçekleştirmez - AI ajanlarının (Claude, Gemini, ChatGPT) daha sonra yürütmesi için optimize edilmiş istemi hazırlar. Kullanıcıların genellikle AI ajanlarından üretilen dosyayı işlemesini veya içeriğini web tabanlı AI araçlarına kopyalamasını açıkça istemesi gerekir.
--format text) - AI tüketimi için ultra-kompakt (varsayılan)--format md) - Temiz, yapılandırılmış Markdown--format json-structured) - Araçlar için zengin anlamsal veri--format jsonl) - Akış biçimi--format xml) - Eski sistem uyumluluğuHer distillasyondan sonra, AI Distiller sıkıştırma verimliliğini ve işlem hızını gösteren bir özet görüntüler:
# Varsayılan: İnteraktif terminaller için görsel ilerleme çubuğu (yeşil noktalar = kaydedildi, kırmızı noktalar = kalan)
✨ Distilled 970 files [░░░░░░░░░░░░░░░] 98% (10M → 256K) in 231ms 💰 ~2.4M tokens saved (~64k remaining)
# --summary-type ile tercih ettiğiniz biçimi seçin
aid ./src --summary-type=stock-ticker
📊 AID 97.6% ▲ │ SIZE: 10M→256K │ TIME: 231ms │ EST: ~2.4M tokens saved
# JSON çıktısı
aid ./src --summary-type=json
{
"original_bytes": 70020,
"distilled_bytes": 8244,
"savings_pct": 88.22622107969151,
"duration_ms": 6,
"tokens_before": 17505,
"tokens_after": 2061,
"tokens_saved": 15444,
"token_savings_pct": 88.22622107969151,
"file_count": 9,
"output_path": "/home/user/project/.aid/aid.processor.txt",
"tokenizer": "cl100k_base"
}
Kullanılabilir biçimler:
visual-progress-bar (varsayılan) - Sıkıştırmayı ilerleme çubuğu olarak gösterirstock-ticker - Kompakt borsa stili gösterimspeedometer-dashboard - Metriklerle multi-satır panominimalist-sparkline - Tüm temel bilgilerle tek satırci-friendly - CI/CD boru hatları için temiz biçimjson - Makine tarafından okunabilir JSON çıktısıoff - Özet çıktısını devre dışı bırakEmojileri herhangi bir biçimden kaldırmak için --no-emoji kullanın.
AI Distiller proje kökünüzü otomatik olarak algılar ve tüm çıktıları merkezi bir .aid/ dizinine yerleştirir:
.aidrc, go.mod, package.json, .git, vb. için yukarıya doğru arama yapar.aid çalıştırdığınız fark etmeksizin tüm çıktılar <project-root>/.aid/ dizinine gider.aid/cache/ içinde depolanır.aid/ yi .gitignore a ekleyerek çıktıları sürüm kontrolünden uzak tutunAlgılama önceliği:
.aidrc dosyası - Proje köküne açıkça işaret etmek için bu boş dosyayı oluşturungo.mod, package.json, pyproject.toml, vb..git diziniAID_PROJECT_ROOT (işaretçi bulunamazsa geri dönüş)# Belirli bir dizini proje kökü olarak işaretleyin (önerilir)
touch /my/project/.aidrc
# Projenizin herhangi yerinden çalıştırın - çıktılar her zaman proje köküne gider
cd deep/nested/directory
aid ../../../src # Çıktı: <project-root>/.aid/aid.src.txt
# Geri dönüş olarak ortam değişkeni kullanın (CI/CD için kullanışlı)
AID_PROJECT_ROOT=/build/workspace aid src/
Şu anda tree-sitter aracılığıyla 12+ dil destekler:
Tüm tree-sitter dilbilgileri aid binary'sine derlenmiştir - sıfır dış bağımlılık!
İleri Özellik: AI Distiller, dosyalar arasında çağrı grafiğini analiz eden ve yalnızca codebase'inizden gerçekten kullanılan kodu dahil eden bağımlılık farkında distillasyonu içerir. Bu, işlev/metot çağrılarını birden fazla dosyaya izleyerek derin kod analizi için odaklanmış distillasyonlar oluşturur.
💡 Bağımlılık analizine yeni mi? Bu özellik, kodunuzda hangi fonksiyonların birbirini çağırdığını izler ve tüm dosyaları işlemeden yalnızca ilgili kısımları içeren minimal bir context oluşturur.
Tüm dosyaları dahil etmek yerine, bağımlılık farkında distillasyon:
# Temel bağımlılık analizi
aid main.py --dependency-aware
# Analiz derinliğini kontrol et
aid main.py --dependency-aware --max-depth=2
# Daha derin analiz için uygulamaları dahil et
aid main.py --dependency-aware --implementation=1 --max-depth=3
Bağımlılık farkında distillasyonu farklı programlama dilleri arasında mümkün olduğunca güvenilir hale getirmek için kapsamlı çalışma yaptık. Ancak, karmaşıklık diller arasında önemli ölçüde farklılık gösterir ve mevcut durumu hakkında şeffaf olmak istiyoruz:
| Dil | Destek Seviyesi | Dosyalar Arası Analiz | Dosya İçi Çağrılar | Performans | Notlar |
|---|---|---|---|---|---|
| Python | 🟢 Çok İyi | ✅ Tam | ✅ Tam | ~37ms | Paket importları, tüm çağrı desenleri |
| JavaScript | 🟢 Çok İyi | ✅ Tam | ✅ Tam | ~38ms | CommonJS & ES6 modülleri |
| Go | 🟢 Çok İyi | ✅ Tam | ✅ Tam | ~37ms | Paket sistemi entegrasyonu |
| Rust | 🟢 Çok İyi | ✅ Tam | ✅ Tam | ~36ms | Crate sistemi, uygun filtreleme |
| Java | 🟢 Çok İyi | ✅ Tam | ✅ Tam | ~41ms | Paket importları, static metotlar |
| Swift | 🟢 Çok İyi | ✅ Tam | ✅ Tam | ~37ms | Class ve static metot algılaması |
| PHP | 🟢 Çok İyi | ✅ Tam | ✅ Tam | ~37ms | Include/require çözünürlüğü |
| Ruby | 🟢 Çok İyi | ✅ Tam | ✅ Tam | ~40ms | Modül sistemi, tüm çağrı desenleri |
| TypeScript | 🟡 Sınırlı | ❌ Sorunlar | ❌ Sorunlar | N/A | Dil işlemci sınırlamaları |
| C# | 🟡 Sınırlı | ❌ Sorunlar | ❌ Sorunlar | N/A | Dil işlemci sınırlamaları |
| C++ | 🟡 Sınırlı | ❌ Sorunlar | ❌ Sorunlar | N/A | Dil işlemci sınırlamaları |
| Kotlin | 🟠 İyi | ✅ Kısmi | ⚠️ Temel | ~45ms | Companion objects, bazı edge cases |
Efsane:
Çok İyi Performans (8 dil):
İyileştirme Alanları:
Mükemmel:
En İyi Uygulamalar:
# Hızlı genel görünüm için küçük derinlikle başlayın
aid main.py --dependency-aware --max-depth=1
# Kapsamlı analiz için derinliği artırın
aid main.py --dependency-aware --max-depth=2 --implementation=1
# İyi çalışan dilleri kullanın
aid src/ --dependency-aware --include="*.py,*.js,*.go"
Sorun: Modern codebase'ler binlerce dosya ve milyonlarca satırla içerir. Ama AI kodunuzu anlamak, iyileştirme önerileri sunmak veya geliştirmeye yardımcı olmak için, her uygulama detayını görmesine gerek yoktur - yapı ve herkese açık arayüzlere ihtiyaç duymaktadır.
Çözüm: AI Distiller yalnızca onemli olanı çıkarır - public API'lar, türler ve imzalar - codebase boyutunu %90-98 oranında azaltırken tüm gerekli bilgileri AI anlayışı için korur.