- Claude Code, basit bir kodlama aracının ötesine geçerek ajan işletim sistemine evrilen, dosya sistemi erişimi ve Unix komut entegrasyonu sayesinde çeşitli iş akışlarını destekleyen yenilikçi bir sistem
- Özellikle Obsidian not sistemiyle entegrasyonu sayesinde not alma, araştırma ve düşünceleri düzenleme süreçlerini otomatikleştiriyor; SSH bağlantısıyla mobil cihazlardan da erişilebilen tam teşekküllü bir not işletim sistemi sunuyor
- Dosya sistemi erişim özelliği temel farklılaştırıcı unsur olarak öne çıkıyor; konuşmalar arasında bellek ve durumun korunmasını mümkün kılarak ChatGPT veya tarayıcı tabanlı Claude'un ölümcül sınırlamaları olan bağlam penceresi kısıtları ve bellek sınırı sorunlarını çözüyor
- Unix felsefesi (basitlik, birleştirilebilirlik, metin akışı işleme), LLM'lerin araç kullanma biçimiyle kusursuz biçimde örtüşüyor; böylece 50 yıl önce tasarlanan ilkeler, modern yapay zeka sistemleri için en uygun mimari olarak yeniden keşfediliyor
- E-posta yönetimi otomasyonu (Inbox Magic), açık kaynak araçlar (Claudesidian) gibi pratik uygulama örnekleri üzerinden, dosya sistemi tabanlı ajan sistemlerinin karmaşık çoklu ajan yapılarından daha güvenilir ve hata ayıklanabilir yapay zeka uygulamaları inşa etmenin temeli olduğu vurgulanıyor
Claude Code'u özel kılan şey
- Son zamanlarda yapay zeka hakkındaki konuşmalarda hep Claude Code'un etkileyici yeteneklerinden söz ettim ve bu aracın basit bir kodlama yardımcısından tam teşekküllü bir ajan işletim sistemine dönüştüğünü anlattım
- Özellikle Obsidian not uygulamasıyla entegrasyon bunun merkezinde yer alıyor; Obsidian, Notion veya Evernote'un aksine tüm dosyaları yerel sabit diskte normal Markdown dosyaları olarak saklıyor
- Bu özellik onu yapay zeka kodlama araçları için ideal bir hedef haline getirdi; başlangıçta Cursor ile yola çıkıldı ancak kısa sürede Claude Code'a geçildi
- Bu sisteme o kadar bağımlı hale gelindi ki sonunda evde bir sunucu kuruldu ve SSH ile akıllı telefondan bağlanarak hareket halindeyken bile not yazma, okuma ve düşünceleri düzenleme imkanı sağlandı
- Birkaç hafta önce Dan Shipper'ın AI & I podcast'ine katılarak bu sistemi derinlemesine anlattım; bu yazıda ise o zamandan beri fark ettiğim ek içgörüleri paylaşıyorum
Cursor'a kıyasla Claude Code'un üstünlüğü
- “Claude Code neden özel?” sorusuna cevap vermek zordu, ancak vardığım sonuç onun her açıdan Cursor'dan daha iyi olması değil, belirli unsurların birleşiminin olağanüstü iyi çalışması
- Son dönemde onu mevcut kod tabanları üzerinde çalışmaktan çok, Claude Code'un yetenekleri üzerine tamamen yeni şeyler inşa etmek için kullanıyorum
-
Unix felsefesiyle kusursuz uyum
- Claude Code'un sırrı araç yaklaşımında yatıyor; terminal tabanlı bir uygulama olarak erişilebilirlikten ödün verse de bunun karşılığında yerel Unix komut entegrasyonu gibi güçlü bir yetenek sunuyor
- Unix felsefesi, Doug McIlroy tarafından 1978'de Bell System Technical Journal'da belgelenmiş ve dört temel ilke sunmuştu:
- 1. Her programın tek bir işi iyi yapmasını sağla. Yeni bir iş için, mevcut programa özellik eklemek yerine yenisini inşa et
- 2. Her programın çıktısının, henüz bilinmeyen başka bir programın girdisi olacağını varsay
- 3. Yazılımı erken dönemde, ideal olarak birkaç hafta içinde denenebilir olacak şekilde tasarla ve geliştir
- 4. Programlama işini niteliksiz iş gücü yerine araçlarla hafiflet
- Peter H. Salus'un 1994 tarihli "A Quarter-Century of Unix" kitabındaki özeti:
- Tek bir işi iyi yapan programlar yaz
- Birlikte çalışan programlar yaz
- Metin akışlarını işleyen programlar yaz (çünkü bu evrensel bir arayüzdür)
-
LLM'lerle Unix komutlarının mükemmel uyumu
- Bu 50 yıllık ilkeler, LLM'lerin araç kullanma biçimiyle birebir örtüşüyor
- Modeller sürekli olarak çıktıyı girdiye “pipe” ediyor (arada kendi bulanıklaştırmalarını da kullanarak) ve Unix'teki
| komutu gibi bir komutun çıktısını diğerinin girdisine bağlıyor
- Modelin araçları etkili biçimde birleştiremediği durumlar neredeyse her zaman araçların aşırı karmaşık olmasından kaynaklanıyor
- Claude Code'un etkileyici olmasının ilk nedeni şu: Unix'i çalıştıran komutlar LLM kullanımı için kusursuz derecede uygun
- Komutlar yalnızca basit değil, aynı zamanda çok iyi belgelenmiş; bu da modelin öğrenebileceği bol miktarda kaynak materyal olduğu anlamına geliyor
-
Dosya sistemi erişiminin devrimi
- Diğer unsur ise Claude Code'un kod yazma ve son dönemde düzyazı yazma yeteneği
- Pragmatic Engineer'in Claude Code'un nasıl geliştirildiğine dair derinlemesine analizi okununca cevap bulundu: dosya sistemi erişimi
- Dosya sistemi her şeyi değiştiriyor
- ChatGPT ve tarayıcı tabanlı Claude'un iki ölümcül kusuru var: konuşmalar arasında belleğin olmaması ve dar bağlam penceresi
- Dosya sistemi ikisini de çözüyor: Claude Code kendine notlar yazabiliyor, bilgi biriktirebiliyor ve devam eden özetleri koruyabiliyor
- Duruma ve belleğe sahip oluyor; tek bir konuşmanın ötesinde düşünebiliyor
Yapay zeka taşması (AI Overhang)
- 2022'de GPT-3 API'sini ilk kullandığımda, model o andan daha iyi hale gelmese bile kullanım alanlarını keşfetmenin 10 yıl alacağını öngörmüştüm
- Modeller gerçekten gelişti (akıl yürütme modelleri araç çağrılarını güvenilir hale getirdi) ve dosya sistemi keşfi bu görüşü doğruladı
- Pragmatic Engineer röportajında Claude Code'un ilk sürümünü geliştiren Boris Cherney bunu “ürün taşması (product overhang)” kavramıyla açıklıyor:
- Ürün taşması, modelin belirli bir görevi yapabildiği ama AI'nin çalıştığı ürünün bu yeteneği yakalayacak şekilde tasarlanmamış olduğu durumu ifade ediyor
- Model zaten dosya sisteminde gezinebiliyordu, ancak bu yeteneğin etrafında inşa edilmiş bir ürün yoktu
- Yazar bunun dosya sistemi + Unix komutları birleşimi olduğunu savunuyor, ancak asıl nokta model kapasitesinin zaten var olduğu ve sadece ortaya çıkmayı beklediği
- Claude Code, model yeteneklerini aşırı tasarlanmış arayüzlerle sınırlamak yerine bunları yakaladığı için, güvenilir ajan sistemleri kurmanın bir planı işlevi görüyor
Kodun ötesinde
Açık kaynak Claudesidian projesi
- Claude Code + Obsidian kurulumundan bahsettim ve hatta bir adım ileri giderek "Claudesidian"ı açık kaynak hale getirdim
- Kendi Claude Code + Obsidian kurulumumda kullandığım birçok araç ve komutu içeriyor
- Bunu deneysel bir alan olarak kullandım; özellikle de erken yükseltme aracını burada geliştirdim
- Merkezde değişiklikler olduğunda bunları kendi Claudesidian'ıma çekebiliyorum; yapay zeka da güncellenen dosyalarda değişiklik olup olmadığını kontrol ediyor ve varsa yeni güncellemelerle mevcut değişiklikleri akıllıca birleştirmeye çalışıyor
- Her iki proje de aynı Unix felsefesi ilkelerini izliyor: basit, birleştirilebilir, tek bir işi iyi yapan ve birlikte çalışan araçlar
Inbox Magic - e-posta otomasyon sistemi
- Henüz yayınlamaya hazır değil, ancak yakında duyurmayı planladığım “Inbox Magic” (daha iyi bir isim düşünüyorum) adlı bir proje üzerinde çalışıyorum
- Gmail araç setine erişebilen bir Claude Code deposu; çok sayıda prompt ve komut aracılığıyla bir e-posta asistanı gibi çalışıyor
- Mevcut işlevler oldukça basit:
- Arama çalıştırabiliyor veya sizin yerinize e-posta gönderebiliyor
- E-postaları sınıflandırmak ve e-posta yazım tarzını öğrenmek için tam eğitim çalıştırması yapabiliyor
- Hem Claude Code hem de ChatGPT e-postalara erişebiliyor, ancak genelde bunları birer ikişer çekiyor
- Bu sistem dosyalara yazabildiği ve çeşitli numaralar kullanabildiği için, “gelen kutusundaki tüm seyahatle ilgili e-postaları bul, seyahat alışkanlıkları profili oluştur ve bunu ChatGPT/Claude'un gerçek tercihlere uygun seyahat araştırması yapmasında kullanabileceği bir prompt'a dönüştür” gibi görevleri yerine getirebiliyor
- Test etmek isterseniz GitHub kullanıcı adınızı gönderin; hazır olur olmaz paylaşacağım
Temel dersler
- Normalde sonuç bölümlerinden kaçınırım, ancak burada yeniden vurgulanmaya değer birkaç ders var:
- 1. Dosya sistemi, LLM'lerin bellek ve durum eksikliğini çözmek için harika bir araçtır ve daha sık kullanılmalıdır
- 2. Araç çağrılarının işe yaraması için Unix felsefesine odaklanmak gerekir
- 3. Claude Code, geleceğin ajan sistemleri için bir planı temsil ediyor
- Dosya sistemi + Unix felsefesi, bugün ortalıkta dolaşan karmaşık çoklu ajan sistemlerinden daha güvenilir ve hata ayıklanabilir yapay zeka ajanları inşa etmek için bir şablon olmalı
- Taktik düzeyde, kendi projelerinizde araç çağrıları inşa ederken işleri basit tutmak ve ana model iş parçacığının bunları “pipe” etmesine izin vermek kilit önemde
- Tüm ajanlar/chatbot'larda çözülmesi gereken büyük sorun şu: bağlam penceresinden geçmeden pipe edebilme yeteneği
- 4. LLM kullanım alanlarını bulamayanlar yeterince çaba göstermiyordur
1 yorum
Hacker News görüşleri
Claude Code'un Unix tarzında çalışmasını gerçekten çok seviyorum; başka Unix tarzı araçları kolayca yapabiliyorum ve Claude bunları ek entegrasyon işi olmadan hemen kullanabiliyor. Aracın sadece man page'ini vermem yetiyor, Claude onu gayet ustaca kullanıyor. MCP ya da karmaşık araç tanımlarına gerek kalmıyor. Kendim yaptığım tarayıcı erişim aracıyla da sorunsuz çalışıyor.
Yakın zamanda LLM çağını düşünerek manpage'lerde daha iyi arama yapmayı sağlayan aracım Mansnip'i güncelledim. Bunu bir STDIO MCP ile sarmalamanın da iyi bir yöntem olacağını düşünüyorum. Bu koda bir API ekleyip sunucuyu da pip'e koymak güzel olabilir. Çok zor görünmüyor.
Claude Code'un benim script'lerimde ya da araçlarımda tarayıcıyı nasıl kullandığını merak ediyorum. Ben mevcut Safari oturum pencerelerini doğrudan kontrol etmek istiyorum ama çoğu araç sadece Chrome'u ya da ayrı yeni bir instance'ı ele alıyor.
Claude'dan doğrudan problemi bulmasını istemek yerine ona linter'ın nasıl kullanılacağını öğretmenin çok daha verimli olduğunu fark ettiğim bir an olmuştu. Hangi linter'ı kullanacağını ayrıca söylememe bile gerek kalmadı; bir liste gösterip kurunca hemen kullanmaya başladı. ChatGPT ile kod yazmayı denediğimde faydalı sonuç almak için fazla çaba gerekiyordu, bu yüzden bir beklentim yoktu ama Claude Code gerçekten şaşırtıcı bir deneyim oldu.
Tüm GUI uygulamaları birbirinden farklı ve her biri kendi duvarlarını örmüş bir kale gibi duruyor; sanki OS içinde birbirinden yalıtılmış derebeylikler gibiler. Buna karşılık CLI, herkesin toplandığı ortak meydan; veriyle sinyallerin dolaştığı bir bilgi pazarı. Bu meydana girmek için herhangi bir aidiyet hissetmen bile gerekmiyor. GUI tarafında buna benzeyen şey Smalltalk ama ona da ancak önceden bağlılık bildirirsen girebiliyorsun.
Aslında GUI tarafında da epey birlikte çalışabilirliği ve bileştirilebilirliği yüksek sistemler var. NextSTEP ya da dbus bunun örnekleri. İstersen GUI'yi de açık API temelli kurup üstüne sadece grafik katmanını ekleyerek yapabilirsin. Yaygın değil ama teknik olarak mümkün.
OS içinde hapsedilmiş kaleler gibi görünseler de, sıradan kullanıcı açısından GUI uygulamaları CLI uygulamalarına kıyasla çok daha fazla tercih ediliyor. Sadece CLI olsaydı bilgisayarların yaygınlaşması çok daha yavaş olurdu.
Yeni ortaya çıkan bir aracın terminalde çalışıyor olması tek başına onu “gerçek UNIX felsefesinin uygulaması” yapmaz. Bu karşılaştırmanın kendisi pek anlamlı değil. Ben de Hacker News tarzı clickbait'e kapılmış oldum.
Burada söylenen UNIX felsefesi sadece terminal uygulamaları anlamına gelmiyor; asıl önemli nokta, modern LLM'lerin shell komutlarını doğrudan çalıştırabilmesi. Bu sayede LLM'ler, insanların shell içinde yapabildiği şeylerin neredeyse tamamını yapabilecek aşamaya gelmiş durumda.
UNIX felsefesinin özüne bakarsak: 1) tek bir iş yapan küçük programlar, 2) bunların birleştirilerek daha karmaşık işler çıkarabilmesi, 3) metin akışlarının evrensel arayüz olarak kullanılması. Bunlar LLM'lerle son derece iyi örtüşüyor.
exec()gibi tekil bir metin arayüzü sayesinde tüm araçlar dosyalar üzerinde çalışabiliyor ve metin olarak girdi/çıktı verebiliyor; bu da LLM'lerin onları doğrudan kullanmasını mümkün kılıyor. Yazılımı böyle kurmak zorunlu değildi ama bu şekilde inşa edilmiş olması LLM'lere tam uyuyor.En üstteki 3 yorumun da sanki LLM'e kendini pazarlatmak için yazdırılmış gibi hissettirdiğini söyleyebilirim.
Bir dönem CLI'nin öldüğü çok söylenirdi ama son zamanlarda claude code gibi araçlar sayesinde CLI adeta daha üstün arayüz haline geldi. Bununla bir karşıtlık yaratmak istemiyorum elbette ama bu güç dengesi değişimi ilginç.
Aslında geliştiriciler ve deneyimli kullanıcılar açısından “CLI is dead” lafını hiç duymadım. Sıradan kullanıcılar için GUI çıktıktan sonra CLI yok olmuş gibi görünebilir ama gerçekte CLI hep arka planda vardı. OS X ile birlikte gerçek bir Unix shell geldi, Windows'ta PowerShell var, Linux ise zaten sunucu pazarına hâkim.
Ben kendi özel GUI arayüzlerimi de yapıyorum. Bilgisayarı kullanma biçimime uyacak şekilde tüm masaüstü ortamını kendi zevkime göre kuruyorum. Eskiden ana akım GUI araçları rahatsız edici olduğu için sık sık terminale dönüyordum ama bugünlerde kendi UI ortamım giderek daha iyi hale geliyor.
Claude ile Obsidian birleşince gerçekten çok iyi bir iş akışı ortaya çıkıyor. Tekrarlayan not yönetimi işlerinin tamamını AI'ya bırakıyorum. Günlük notlarımı stream of consciousness şeklinde biriktiriyorum, sonra oradan yeni fikirleri, projeleri ve kaynakları ayıklıyorum. Gemini de gayet iyi çalışıyor.
LLM ile Obsidian entegrasyonunda özellikle anılması gereken şey eklentiler. Obsidian eklentileri kolayca özelleştirilebiliyor ve JavaScript script'lerini yerel klasörlerden çalıştırabiliyorsun. Claude Code bu tür eklentileri yazıp düzenlemede çok iyi. Örneğin Obsidian dosyalarını publish bayrağına göre Github repo'suna otomatik eşitleyen özel bir program yaptım; böylece notları güncellediğim anda web sitem Netlify üzerinde hemen güncelleniyor.
Yazara, omnara.com gibi SSH olmadan telefondan doğrudan erişilebilen servisler daha uygun olabilir. Ben de Obsidian ve Claude Code'u headless şekilde sürekli açık tutup telefon uygulamasından doğrudan eriştiğim benzer bir ortam kullanıyorum.
Claude Code kullanmak istiyorum ama yerel veri ve dosyaların ne kadarının ağ üzerinden gönderildiğini tam olarak bilmediğim için bazı durumlarda benimsemek zor oluyor.
MCP ile bizzat şu işlevi uyguladım:
{ "name": "unshare_exec", "description": "unshare ile Linux namespace içinde binary çalıştır", "inputSchema": { "type": "object", "properties": { "binary": {"type": "string"}, "args": {"type": "array", "items": {"type": "string"}} }, "required": ["binary"], "additionalProperties": false } }
Başta sadece unshare kullanıyordum ve biraz yak shaving'e girdim ama sonunda yerelde gemma3 çalıştırırken Debian tabanlı yardımcı araçları da rahatça kullanabilir hale geldim; ortaya gerçekten etkileyici sonuçlar çıktı.
Tamamen yerel çalışan Obsidian, yerel bir LLM ve her şeyin açık kaynak olduğu bir ortam istiyorum. Umudum geleceğin bu yönde olması.
LLM'ler sayesinde açık kaynak programların kullanım değeri ve önemi daha da arttı. Eskiden bir yazılım açık kaynak olsa bile kod yapısını anlamak zor olduğu için onu kendine göre değiştirmek kolay değildi. Şimdi ise LLM yardımıyla küçük yamalar yazmak ya da yeni özellikler eklemek çok daha kolay. Yani bir programın açık kaynak olması, onu kendi ihtiyaçlarıma göre değiştirebilmem için şart ve bu artık her zamankinden daha önemli.
Sadece open-weights yeterli değil; veri setlerini ve eğitim hattını da doğrudan ele alabilmek gerekiyor ki gerçekten anlamlı olsun. Elbette sıradan insanların eğitim hattını bizzat çalıştıracak altyapısı olmayabilir ama verinin nasıl kullanıldığını ve modelin nasıl eğitildiğini şeffaf biçimde bilmek, gerçek sahiplik ve önyargı değerlendirmesi için gerekli.
Yerel Org mode, yerel LLM, her şeyin Emacs tarafından orkestre edildiği ve tamamının özgür yazılımla çalıştığı bir ortam harika olurdu. Emekli olup bol vaktim olsa kesin denemek isteyeceğim bir hayal.
İlgini çekerse şu yazıyı öneririm: https://laurentcazanove.com/blog/obsidian-rag-api
Gerçekten işe yarar boyuttaki modelleri yerelde çalıştırmak pratikte imkânsıza yakın değil mi diye merak ediyorum. Özellikle 64GB RAM ve tek GPU'lu bir geliştirme makinesi düzeyinde bu zor görünüyor.