- Pi, kullanıcının iş akışına uyacak şekilde genişletilebilen bir yapı sunan, terminal tabanlı minimal bir kodlama ajanıdır
- TypeScript uzantıları, beceriler, prompt şablonları ve temaları birleştirerek kendi geliştirme ortamınızı oluşturabilir, bunu npm veya git paketi olarak paylaşabilirsiniz
- 15’ten fazla yapay zeka sağlayıcısını ve yüzlerce modeli destekler; oturum sırasında model değiştirebilir veya özel modeller ekleyebilirsiniz
- Oturumlar ağaç yapılı bir geçmiş olarak kaydedilir; önceki noktalara dönebilir veya HTML ya da GitHub gist olarak dışa aktarabilirsiniz
- Çekirdek özellikleri minimumda tutup genişletilebilirlik odaklı tasarım felsefesini koruyarak, geliştiricilerin yalnızca ihtiyaç duydukları işlevleri doğrudan uygulamasına veya paket olarak eklemesine olanak tanır
Pi’ye genel bakış
- Pi, kullanıcının iş akışını değiştirmeden araçları özelleştirmesine imkân veren bir yapıya sahip bir terminal kodlama harness’idir
- Genişletilebilir bileşenler olarak TypeScript uzantıları, beceriler, prompt şablonları ve temaları destekler
- Bunları bir araya getiren pi paketleri npm veya git üzerinden kurulup paylaşılabilir
- Varsayılan yapılandırma güçlüdür, ancak alt ajanlar veya plan modu gibi özellikleri içermez
- Dört mod sunar (interactive, print/JSON, RPC, SDK) ve gerçek entegrasyon örnekleri clawdbot içinde görülebilir
Modeller ve sağlayıcılar
- Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi, MiniMax, OpenRouter, Ollama dâhil 15’ten fazla sağlayıcıyı ve yüzlerce modeli destekler
- API anahtarı veya OAuth ile kimlik doğrulaması yapılabilir
- Oturum sırasında
/model komutu veya Ctrl+L ile model değiştirilebilir, Ctrl+P ile favori modeller arasında dolaşılabilir
- models.json veya uzantılar üzerinden özel modeller eklenebilir
Oturum yönetimi
- Oturumlar ağaç yapısında saklanır;
/tree komutuyla geçmişteki bir noktaya gidilebilir
- Tüm dallar tek bir dosyada tutulur ve mesaj türü filtreleme ile yer imi etiketleme desteklenir
/export ile HTML dışa aktarımı, /share ile GitHub gist yükleme ve paylaşım URL’si oluşturma yapılabilir
Bağlam mühendisliği
- Minimum sistem prompt’u ve genişletilebilirlik sayesinde bağlam penceresi ayrıntılı biçimde kontrol edilebilir
- AGENTS.md: proje yönergelerini başlangıçta otomatik yükler
- SYSTEM.md: projeye özel varsayılan sistem prompt’unu değiştirir veya ekler
- Compaction: bağlam sınırına ulaşıldığında önceki mesajları otomatik özetler; uzantılarla konu tabanlı özetleme veya kod farkındalıklı özetleme uygulanabilir
- Skills: gerektiğinde yüklenen işlev paketleri olarak prompt önbelleğini korur ve kademeli işlev sunar
- Prompt templates:
/name komutuyla genişletilebilen yeniden kullanılabilir prompt’lar
- Dynamic context: uzantılarla mesaj ekleme, geçmiş filtreleme, RAG uygulama ve uzun süreli bellek kurma mümkündür
Mesaj kuyruğa alma
- Ajan çalışırken bile mesaj gönderilebilir
Enter: mevcut araç çalıştırmasından sonra iletilen yönlendirme mesajı
Alt+Enter: iş tamamlandıktan sonra iletilen takip mesajı
Uzantı yapısı
- Pi, işlevler değil ilkel bileşenler (Primitives) etrafında tasarlanmıştır; böylece kullanıcılar işlevleri kendileri uygulayabilir
- Uzantılar TypeScript modülleri biçimindedir ve araçlara, komutlara, kısayollara, olaylara ve tüm TUI’ye erişebilir
- Örnek uzantılar: alt ajanlar, plan modu, izin geçitleri, yol koruması, SSH yürütme, sandboxing, MCP entegrasyonu, özel editörler, overlay’ler
- “Yes, Doom runs.” örneğinde olduğu gibi bir oyun overlay uzantısı da vardır
- Kendiniz uygulamak istemiyorsanız pi paketi kurarak işlev ekleyebilirsiniz
- 50’den fazla uzantı örneği GitHub’da açık olarak yayımlanmıştır
Paket yönetimi
- Uzantılar, beceriler, prompt’lar ve temalar paket hâlinde bundle edilerek npm veya git üzerinden kurulabilir
- Paketler
pi-package npm araması veya Discord kanalı üzerinden keşfedilip paylaşılabilir
Entegrasyon modları
- Interactive: tam TUI ortamı
- Print/JSON: betikler için
pi -p "query", olay akışı için --mode json
- RPC: stdin/stdout tabanlı JSON protokolü ile Node dışı ortamlarda entegrasyon desteği
- SDK: uygulama içine gömülebilir; clawdbot içinde gerçek kullanım örneği bulunur
Tasarım felsefesi
- Pi, genişletilebilirliği en üst düzeye çıkararak çekirdeği minimumda tutar ve kullanıcının iş akışını kendisinin tanımlamasını hedefler
- MCP, alt ajanlar, izin açılır pencereleri, plan modu, yerleşik TODO, arka planda bash özelliklerini içermez
- Bunun yerine aynı işlevler uzantılar, beceriler ve paketler aracılığıyla uygulanabilir veya harici araçlarla entegre edilebilir
- tmux üzerinden paralel çalışma ve gözlem desteği sunar
- Bu yaklaşım, kullanıcı odaklı geliştirme ortamı kurulumunu mümkün kılar
- Genel felsefe ilgili blog yazısında daha ayrıntılı açıklanır
2 yorum
pi'ı gerçekten çok beğendim
Hacker News yorumları
Pi ve “claw” fenomenini benim için ilginç kılan şey, bunun açık kaynağın geleceğini göstermesi
Artık özellik isteği ya da PR göndermek yerine, bir kodlama ajanına nasıl özellik ekleneceğini anlatan skill dosyaları indirdiğimiz bir dönemdeyiz
Yazılım artık sabit bir çıktı değil, her kullanıcı için farklı olan canlı bir araç haline geliyor
Bu yeni işbirliği paradigmasında nasıl araçların ortaya çıkacağını merak ediyorum
Bugünün yazılımları, kullanıcının ortamı kontrol etmesini engelleyerek bir yabancılaşma hissi yaratıyor
Ama kişiselleştirilmiş, ucuz ve esnek yazılımlar gerçek bir sahiplik hissi verebilir
Eskiden Linux masaüstü böyle bir özgürlük sunuyorduysa, şimdi herkesin bu avantajdan yararlanabileceğini düşünüyorum
Bu geleceğe iyimser bakıyorum
İleride aşırı derecede kişiselleştirilmiş yazılımlar artacak gibi geliyor — yalnızca belirli bir kişi ya da küçük bir grup tarafından anlaşılabilecek düzeyde
Ben de son dönemde Claude kullanarak yalnızca benim ve birkaç kişinin kullandığı birçok araç yaptım
Örneğin bir DnD takvim uygulaması, spoiler içermeyen bir Formula E haber kontrolcüsü ve bir tırmanış kooperatifi oylama sitesi
Eskiden bunları yapmak için bir neden yoktu, ama artık mümkün
İlgili düşüncelerimi Releasing Software Now yazısında topladım
Büyük şirketlerin ya da devletlerin bu kadar tutarsız sistemlere izin vereceğini sanmıyorum
Bence aksine daha kötü araçlar ortaya çıkacak
OpenCode’a alışığım, o yüzden onu kişisel bir yapay zeka çalışma alanı olarak kullanmayı düşünüyordum
Pi’nin ekosistemi daha küçük ama esneklik ve genişletilebilirlik açısından daha güçlü görünüyor, ayrıca topluluğun tutkusu da hissediliyor
OpenCode yerine Pi kullanmanın daha iyi olup olmayacağını ve hangi UI seçeneklerinin bulunduğunu merak ediyorum
OpenCode’u
.mddosyaları tabanlı yazma ve düzenleme işleri için kullandım, gayet iyi uyduŞimdi bu işe daha uygun yeni bir harness arıyorum
Son zamanlarda en sevdiğim harness bu
Doğrudan genişletilebildiği için çok verimli ve bunu vibes projesine entegre ettim
ACP’den çok daha hızlı
Ben genel amaçlı bir ajan etkileşim protokolü arıyordum, ACP de bunun için bir adaydı
Ama OpenCode’un bile UI tarafında ACP kullanmaması, burada bir sorun olduğuna işaret ediyor gibi
Bunun yerine geçebilecek daha iyi seçenekler olup olmadığını da bilmek isterim
Pi’yi birkaç gün bile kullanıp da onu günlük kullanım için bırakmış birini hiç görmedim
Aracı kendi zevkine göre ayarlayabilme özgürlüğünü tadınca geri dönmek zor oluyor
Üstelik bunun üstüne harika genişletmeler de yapılabiliyor
Pi’nin genişletilebilirliği ilgi çekici ama gerçek iş kalitesi yetersiz geldi
Neden ille de terminal uygulamasıyla kod yazmak gerektiğini anlamıyorum
Aynı şey bir IDE eklentisiyle daha iyi yapılabilir, ayrıca VSCode’da pencere düzeni de aynen geri yüklenebiliyor
Sanki metin sohbeti üzerinden bir ekip arkadaşına talimat veriyormuşum gibi oluyor
Mesela bir sunucu bakım programını Claude’a bırakıp başka işlerle uğraşıyor, sonra sadece sonucu kontrol ediyorum
Testler geçiyorsa kodun nasıl göründüğü önemli olmuyor
Gerçekten de yaklaşık 15 dakikalık aktif çalışmayla birden fazla işi paralel yürütebildim
Ben Pi’yi Emacs için olan pi-coding-agent paketiyle kullanıyorum
RPC modunda giriş/çıkış için Markdown tamponları oluşturuyor, bu da diğer TUI’lere göre çok daha rahat bir deneyim sunuyor
Sorun takip sistemi entegrasyonunu da kolayca yaptım ve
readilewritekomutlarını Emacs tamponları tabanlı olacak şekilde yeniden tanımladımeditkomutunu da Emacs’in tree-sitter sorgularından yararlanarak geliştirmeyi denemek istiyorumAyrıca
emacs_evalkomutuyla EWW üzerinden doküman gezintisini de mümkün hale getirdimreadvewritekomutlarını Emacs tamponlarına nasıl eşlediğini merak ediyorumBu arada Pi Emacs modu buradan kurulabiliyor
read,write,editçağrılarının sonucundan ilgili dosyayı doğrudan açabilen bir özellik de ekliyorumYakında Pi’nin oturum ve ağaç gezintisi için Magit entegrasyonu da desteklenecek
Ben Pi ile başladım, son 2 haftadır ise oh-my-pi kullanıyorum
oh-my-pi deposu, Pi’nin her şey dahil sürümü gibi
Ben de mevcut projeyi kopyalayıp başka bir adla yayımlamayı düşünüyorum
Mesela “Waterfox — minimal web tüketicisi” gibi
Önceden yapılandırılmış Pi sürümü: oh-my-pi
Uygulama gibi güvenli biçimde kurulup test edilebilecek izole bir ortam gerekli
codex/claude code → opencode → pi → oh-my-pi şeklinde geçiş yaptım
Bir gün bunu kendim denemeyi düşünüyorum
Pi’nin çekiciliği hafifliği ve özerkliği, oysa oh-my-pi çok fazla özellikle gelip daha çok OpenCode benzeri bir ağırlık hissettiriyor
Pi gerçekten harika tasarım kararları almış
Mario ve Armin’i tebrik etmek gerek — iyi zevk eninde sonunda kendini belli ediyor