- Memperkenalkan kasus tim Hatchet yang dengan cepat mengembangkan UI berbasis terminal (TUI) menggunakan Claude Code
- Dengan memanfaatkan stack Charm (Bubble Tea, Lip Gloss, Huh), mereka mewujudkan pengembangan berbasis komponen setara React dan styling yang konsisten
- Sambil tetap memakai API yang sama dengan UI web yang ada, mereka meningkatkan efisiensi developer lewat antarmuka berfokus teks dan padat informasi
- Claude Code menjalankan sesi tmux dan mengotomatisasi pengujian, sehingga berperan besar dalam pengembangan iteratif dan menjaga stabilitas
- Hatchet TUI yang selesai hanya dalam 2 hari dinilai sebagai contoh yang menunjukkan peningkatan produktivitas nyata dari pengembangan berbasis LLM
Motivasi pengembangan TUI
- Tim Hatchet menginginkan TUI yang mirip dengan k9s, dan pengguna menilai ini lebih cepat dan lebih intuitif daripada UI web
- Salah satu umpan balik pengguna menyebut bahwa “CLI dan TUI jauh lebih baik performanya”
- TUI memungkinkan visualisasi dan eksekusi workflow di lingkungan yang sama dengan kode, sehingga tidak perlu berpindah tab
- Karena pengguna utama Hatchet adalah developer yang bekerja di dalam IDE, tujuannya adalah menghadirkan pengalaman pengelolaan workflow langsung di terminal
Stack teknologi
- Menggunakan stack Charm sebagai padanan untuk stack frontend umum (React, Tailwind, dll.)
- Library utama: Bubble Tea, Lip Gloss, Huh
- Dipelihara oleh tim Charm, dengan dokumentasi dan contoh yang melimpah
- Memakai Lip Gloss dan tema Huh untuk menerapkan gaya yang konsisten di seluruh TUI
- Tema yang sama juga dipakai ulang pada perintah Hatchet CLI untuk menghadirkan pengalaman pengguna yang terpadu
- Kustomisasi di luar Bubble Tea agak sulit, tetapi jauh lebih sederhana daripada membangun sendiri engine rendering berbasis React
Pendekatan pengujian
- Claude Code menjalankan langsung alat berbasis terminal untuk melakukan pengujian
- Menggunakan
tmux capture-pane untuk menangkap view yang dirender dan memverifikasi apakah output sudah benar
- Pendekatan ini sangat efektif untuk otomatisasi first-pass testing, dan tetap dapat memverifikasi rendering dengan stabil meski jumlah view bertambah
- Setelah itu, pengujian manual dan unit test dijalankan bersamaan untuk membentuk loop pengembangan iteratif yang stabil
- Claude Code dioptimalkan untuk pekerjaan berulang di lingkungan ASCII, sehingga loop umpan balik pengujian cepat konvergen
Menyusun lingkungan pengembangan yang efisien
- Claude Code meningkatkan efisiensi pengembangan dengan merujuk pada implementasi frontend Hatchet yang sudah ada
- Memanfaatkan struktur komponen sederhana berbasis React dan spesifikasi OpenAPI untuk menetapkan batasan yang jelas
- Dengan klien REST API yang dibuat otomatis, pengembangan berbasis spesifikasi menjadi memungkinkan
- Implementasi renderer berbasis DAG adalah bagian yang paling sulit, namun
- Dengan merujuk ke mermaid-ascii, mereka berhasil membangun renderer grafik ASCII
- Meski belum sempurna, fungsi visualisasi DAG yang dapat digunakan berhasil diwujudkan
Hasil dan pelajaran
- Total waktu pengembangan sekitar 2 hari, jauh lebih cepat dan lebih stabil dibanding refactoring frontend sebelumnya
- Pengembangan dengan Claude Code dinilai sebagai contoh pertama yang menunjukkan peningkatan produktivitas yang nyata dan non-acak
- Ke depannya, tim Hatchet berencana secara bertahap memperluas pengembangan berbasis LLM ke fitur di jalur non-inti
- Pelajaran utamanya adalah pentingnya loop umpan balik yang singkat, modularitas, desain berbasis spesifikasi, dan pengujian berkelanjutan
- Hatchet TUI yang telah selesai tersedia di https://tui.hatchet.run, dan saat ini sedang mengumpulkan umpan balik pengguna
1 komentar
Komentar Hacker News
Ada ironi ketika halaman web membahas performa terminal UI, tetapi justru scrolling-nya patah-patah di laptop Dell XPS berperforma tinggi milik saya karena efek rumit seperti CSS mask compositing atau cubic gradient
Menurut Gemini, ini adalah “Scrim atau Easing Gradient”, yang memakai 16 color stop untuk membuat fade halus, tetapi akibatnya jutaan piksel harus dihitung ulang warnanya setiap kali scroll
Di Firefox, sebagian besar halaman bisa di-scroll dengan mulus, jadi disarankan untuk mengujinya juga di laptop hiDPI berbasis iGPU non-Mac
Sebagai referensi, ada juga gambar dengan gradient dinonaktifkan — tautan
busybox ssl_clientdangrepuntuk mengekstrak HTML lalu membukanya di FirefoxMenurut saya, upaya membuat TUI terlihat seperti GUI itu agak menyedihkan. Aksesibilitasnya buruk, strukturnya jadi datar, dan pengguna tidak bisa memakainya di luar cara yang sudah ditentukan. Sebaliknya, GUI modern terhubung secara struktural dengan OS dan jauh lebih fleksibel
Pengembangan TUI sekarang jauh lebih mudah dibanding dulu. Ini berkat framework seperti BubbleTea, Textualize, dan Ratatui.
Berkat LLM, alat seperti ini kini bisa dibuat dengan cepat, dan saya sedang memelihara library chart TUI bernama NTCharts
Saya menyelesaikan bug berkat kemampuan pemahaman ruang Gemini, dan sekarang sedang membuat viewer percakapan LLM lokal dengan BubbleTea
Tautan terkait: issue NTCharts, proyek thinkt
Saya tidak mengerti obsesi TUI dalam aplikasi LLM. Melihat Copilot di VS2026, GUI bisa menampilkan jauh lebih banyak informasi dengan cepat. Diff bisa diklik dan diperiksa secara real-time, jadi lebih efisien
Di era ketika LLM menghabiskan sumber daya komputasi, justru ini menjadi pemicu untuk membuat alat dengan stack ringan.
Dengan menulisnya dalam C, performa CPU meningkat ribuan kali lipat dan RAM berkurang setengah. TUI adalah contoh bagus dari efisiensi semacam ini
Saya masih menganggap Midnight Commander(mc) sebagai salah satu TUI terbaik. Fungsinya hampir setara dengan versi GUI-nya, Double Commander, sambil tetap bisa dijalankan secara remote.
Saat ini saya sedang mengerjakan skin baru, dan berharap itu masuk rilis berikutnya
Gemini membuatkan TUI untuk proyek DHT scraper saya — gambar
Versi pertamanya perlu diperbaiki karena masalah karakter CJK, tetapi secara keseluruhan sangat mengesankan. Berkat itu saya bisa fokus pada algoritma
Saya kurang paham apa yang membuat TUI lebih baik daripada web form atau GUI. Sebaliknya, saya merasa komposisi pipeline CLI sangat kuat
Saya suka Claude Code, tetapi struktur TUI berbasis React terasa sangat tidak efisien
Saya membuat frontend prompt sendiri berbasis Cursor CLI — gambar
Saya mengintegrasikan git, diff, dan riwayat chat, serta membuatnya mudah diakses dari ponsel melalui Tailscale.
Ia bisa mengenali aturan saya dan melakukan grep pada proyek, jadi kegunaannya sangat tinggi