- Hatchet ekibinin Claude Code kullanarak terminal tabanlı UI (TUI) uygulamasını nasıl hızla geliştirdiği anlatılıyor
- Charm stack'i (Bubble Tea, Lip Gloss, Huh) ile React düzeyinde bileşen tabanlı geliştirme ve tutarlı stillendirme sağlandı
- Mevcut web UI ile aynı API kullanılırken metin odaklı, bilgi yoğun arayüz sayesinde geliştirici verimliliği artırıldı
- Claude Code, tmux oturumlarını çalıştırıp testleri otomatikleştirerek yinelemeli geliştirme ve kararlılığın sağlanmasında büyük rol oynadı
- Sadece 2 günde tamamlanan Hatchet TUI, LLM tabanlı geliştirmenin gerçek üretkenlik artışı sağlayabildiğini gösteren bir örnek olarak değerlendiriliyor
TUI geliştirmenin motivasyonu
- Hatchet ekibi, k9s benzeri bir TUI istiyordu ve kullanıcılar bunun web UI'den daha hızlı ve daha sezgisel olduğunu değerlendirdi
- Kullanıcı geri bildirimleri arasında “CLI ve TUI çok daha iyi performans gösteriyor” görüşü yer aldı
- TUI, kodla aynı ortamda iş akışlarını görselleştirip çalıştırmayı mümkün kıldığı için sekmeler arasında geçiş gerektirmiyor
- Hatchet'in ana kullanıcı kitlesi IDE içinde çalışan geliştiriciler olduğundan, hedef terminal içinde iş akışı yönetimi deneyimi sunmaktı
Teknoloji stack'i
- React, Tailwind vb. tipik frontend stack'ine karşılık gelen Charm stack'i kullanıldı
- Başlıca kütüphaneler: Bubble Tea, Lip Gloss, Huh
- Bu araçlar Charm ekibi tarafından sürdürülüyor; dokümantasyon ve örnekler bakımından zengin
- Lip Gloss ve Huh teması kullanılarak TUI genelinde tutarlı bir stil uygulandı
- Aynı tema Hatchet CLI komutlarında da yeniden kullanılarak bütünleşik bir kullanıcı deneyimi sunuldu
- Bubble Tea dışındaki özel özelleştirmeler biraz zor olsa da, React tabanlı bir render motorunu sıfırdan kurmaktan çok daha basit
Test yaklaşımı
- Claude Code, terminal tabanlı araçları doğrudan çalıştırarak testleri yürüttü
tmux capture-pane ile render edilen görünüm yakalanıp çıktının doğru olup olmadığı doğrulandı
- Bu yöntem, ilk test geçişini otomatikleştirmede oldukça etkili oldu ve görünüm sayısı artsa bile render doğrulamasını kararlı biçimde yapabildi
- Sonrasında manuel testler ve birim testleri birlikte kullanılarak kararlı bir yinelemeli geliştirme döngüsü oluşturuldu
- Claude Code, ASCII ortamında tekrarlı işler için optimize olduğundan test geri bildirim döngüsü hızla yakınsadı
Verimli geliştirme ortamının kurulumu
- Claude Code, mevcut Hatchet frontend implementasyonunu referans alarak geliştirme verimliliğini artırdı
- React tabanlı sade bileşen yapısı ve OpenAPI spesifikasyonu kullanılarak net sınırlar belirlendi
- Otomatik üretilmiş REST API istemcisi sayesinde spesifikasyon tabanlı geliştirme mümkün oldu
- DAG tabanlı renderer implementasyonu en zor kısımdı, ancak
- mermaid-ascii referans alınarak ASCII grafik renderer'ı başarıyla geliştirildi
- Kusursuz olmasa da çalışan bir DAG görselleştirme özelliği elde edildi
Sonuçlar ve çıkarımlar
- Toplam geliştirme süresi yaklaşık 2 gün oldu; bu, önceki frontend refaktöründen çok daha hızlı ve kararlıydı
- Claude Code ile geliştirmenin rastlantısal olmayan, somut bir üretkenlik artışı gösterdiği ilk örnek olarak değerlendirildi
- Hatchet ekibi, bundan sonra da çekirdek olmayan yol özelliklerinde LLM tabanlı geliştirmeyi kademeli olarak genişletmeyi planlıyor
- Temel dersler; kısa geri bildirim döngüsü, modülerlik, spesifikasyon tabanlı tasarım ve sürekli test yaklaşımının önemi oldu
- Tamamlanan Hatchet TUI, https://tui.hatchet.run adresinde yayımlandı ve kullanıcı geri bildirimleri toplanıyor
1 yorum
Hacker News yorumları
Web sayfası terminal UI performansını ele alıyor ama ironik şekilde, CSS mask compositing veya cubic gradient gibi karmaşık efektler yüzünden yüksek performanslı Dell XPS dizüstümde bile kaydırma takılıyor.
Gemini’ye göre buna “Scrim veya Easing Gradient” deniyor; 16 renk durağı kullanarak yumuşak bir solma efekti oluşturuyor ama bunun bedeli, kaydırma sırasında milyonlarca pikselin rengini her seferinde yeniden hesaplamak oluyor.
Çoğu sayfa Firefox’ta akıcı kaydığı için, Mac olmayan iGPU tabanlı hiDPI dizüstülerde de test edilmesini öneririm.
Bu arada, gradient devre dışıyken alınmış bir görsel de var — bağlantı
busybox ssl_clientvegrepkullanarak HTML’i çıkarıp Firefox’ta açan basit bir script veriyor.TUI’nin GUI gibi görünmeye çalışması bana biraz üzücü geliyor. Erişilebilirliği zayıf, yapı düzleşiyor ve kullanıcıyı belirlenmiş yolların dışına çıkamayacak hale getiriyor. Buna karşılık modern GUI’ler işletim sistemiyle yapısal olarak bağlantılı olduğu için çok daha özgür.
Eskisine göre TUI geliştirmek çok daha kolaylaştı. Bunda BubbleTea, Textualize ve Ratatui gibi framework’lerin payı büyük.
LLM’ler sayesinde bu tür araçları hızla geliştirmek mümkün oldu; ben de NTCharts adlı bir TUI grafik kütüphanesinin bakımını yapıyorum.
Gemini’nin mekânsal kavrayışı sayesinde hataları çözdüm ve şu anda BubbleTea ile yerel bir LLM sohbet görüntüleyicisi yapıyorum.
İlgili bağlantılar: NTCharts issue, thinkt projesi
LLM uygulamalarındaki TUI takıntısını anlayamıyorum. VS2026’daki Copilot’a bakınca, GUI çok daha fazla bilgiyi çok daha hızlı gösterebiliyor. Diff’lere gerçek zamanlı tıklayıp incelemek verimlilik sağlıyor.
LLM’lerin bilgi işlem kaynaklarını sömürdüğü bu çağda, tersine hafif yığınlarla araç geliştirme için bir fırsat doğdu.
C ile yazarak CPU performansını binlerce kat artırdım ve RAM kullanımını yarıya indirdim. TUI bu verimliliğe iyi bir örnek.
Midnight Commander(mc) hâlâ en iyi TUI’lerden biri bence. GUI sürümü (Double Commander) ile neredeyse aynı işlevleri sunarken uzaktan da çalıştırılabiliyor.
Şu anda yeni skin üzerinde çalışıyorum; umarım bir sonraki sürüme girer.
Gemini, DHT scraper projem için bir TUI oluşturdu — görsel
İlk sürümde CJK karakter sorunları yüzünden düzeltme gerekti ama genel olarak etkileyiciydi. Bu sayede algoritmaya odaklanabildim.
TUI’nin web formu ya da GUI’den daha iyi olduğu tarafı pek göremiyorum. Buna karşılık CLI pipeline birleştirme çok güçlü bence.
Claude Code’u seviyorum ama React tabanlı TUI mimarisi bana gerçekten verimsiz geliyor.
Cursor CLI tabanlı kendi prompt frontend’imi yaptım — görsel
git, diff ve sohbet geçmişini entegre ettim; ayrıca Tailscale üzerinden telefondan da kolayca erişilebiliyor.
Kendi kurallarımı tanıyabiliyor ve projede grep yapabiliyor; bu da kullanılabilirliği çok artırıyor.