Bir geliştirici, gizli bir npx aramasının her Claude Code adımına yaklaşık 10 saniye eklediğini keşfetti ve bu aramayı global bir kurulumla değiştirmek, her etkileşimden altı saniye tasarruf sağladı.

Gecikme neden önemliydi

Claude Code, onlarca bileşene sahip bir monorepo içinde gezinir, sembolleri indeksler, transkriptleri Postgres'te saklar ve hata raporları gönderir. İş akışı, modelin yanıtları gecikmeye başlayana kadar sorunsuz hissettirir. Yapılan bir sağlık kontrolü, birkaç verimsizliği ve maliyetli bir ağ çağrısını ortaya çıkardı.

Sağlık kontrolü neleri ortaya çıkardı

  • Mükerrer kurulumlar – yerel bir başlatıcı ve güncelliğini yitirmiş bir npm-global sürümü bir arada bulunuyordu. Eski kopyanın kaldırılması, gereksiz bir yol aramasını (path lookup) ortadan kaldırdı.
  • Bozuk ajan dosyası – açıklaması olmayan bir dosya, geçerli bir dosyanın adını taklit ederek Claude Code'un onu görmezden gelmesine neden oluyordu. Bozuk girişin silinmesi karmaşayı giderdi.
  • Kullanılmayan uzantılar – hiç çalışmayan bir eklenti ve bir MCP sunucusu devre dışı bırakılarak çalışma zamanı ayak izi (runtime footprint) küçültüldü.
  • Şişkin “CLAUDE.md” dosyaları – bu dosyalar, kodda zaten mevcut olan bilgileri (örneğin, derleme komutları) tekrarlayarak modele gönderilen veri yükünü (payload) artırıyordu. Bunlar sadeleştirilerek sadece gerekli bağlam bırakıldı.

Bu temizlikler yardımcı oldu ancak en büyük kazanç, her model yanıtından sonra çalışan Stop hook'tan geldi.

Gizli npx vergisi

Stop hook, her biri npx -y ile başlayan altı ayrı komut yürütür. -y bayrağı, npx'i komutu çalıştırmadan önce npm registry'de daha yeni bir sürüm olup olmadığını kontrol etmeye zorlar ve bu da bir ağ isteği tetikler. Her arama ortalama 1,6 saniye sürüyordu, dolayısıyla altı çağrı her adıma yaklaşık 10 saniye ekliyordu. Uygulamada, kancanın toplam gecikmesi 12 saniye olarak ölçüldü; ağda aksaklıklar yaşandığında ise bu süre zaman zaman 113 saniyeye kadar çıktı.

Basit çözüm

npx çağrılarını global olarak kurulmuş bir binary ile değiştirmek, registry aramasını ortadan kaldırdı:

  • Önce: npx -y @invariance/gps → çağrı başına 1,6 s
  • Sonra: gps (global olarak kurulmuş) → çağrı başına 0,7 s

Bu değişiklik, Stop hook'un çalışma süresini her adımda yaklaşık 6 saniye kısalttı ve uzaktan kontrolün neden olduğu devasa sıçramaları ortadan kaldırdı.

Bundan sonra nelere dikkat edilmeli

  • Hook zamanlaması – gecikmeyi kullanıcıları etkilemeden önce tespit etmek için özel kancaları (custom hooks) ölçümlendirin.
  • Bağımlılık hijyeni – mükerrer kurulumları ve kullanılmayan uzantıları düzenli olarak temizleyin.
  • Yapılandırma dosyaları – “CLAUDE.md” dosyasını yalın tutun; yalnızca modelin çıkarım yapamayacağı bilgileri ekleyin.

Ders basit: Otomasyon, maliyetli altyapı süreçlerini gizleyebilir. Hızlı bir sağlık kontrolü, akıcı bir yapay zeka asistanını hantal bir hale getiren gizli ağ çağrılarını ortaya çıkarabilir.

Özet: Claude Code yavaş hissettirdiğinde, kancaların süresini ölçün ve tüm npx aramalarını ortadan kaldırın; global bir kurulum her adımda saniyeler kazandırabilir ve geliştirme akışınızın kesintisiz sürmesini sağlayabilir.