- Open source komponen UI terminal untuk React yang bisa disiapkan dengan satu perintah tanpa perlu konfigurasi terpisah
- Dibangun di atas Ink dan OpenTUI, terintegrasi mulus dengan shadcn/ui, serta menggunakan format registry dan CLI yang sama
- Secara otomatis mengenali dan menyesuaikan diri dengan tema terminal yang dipilih
- Menyusun UI terminal yang kompleks melalui komposisi (Composable) dengan komponen yang sederhana dan deklaratif
- Menyediakan total 99 komponen dalam 11 kategori
- Layout, tipografi, input, seleksi, data, feedback, navigasi, overlay, form, utilitas, AI
- Juga mencakup banyak komponen unik yang jarang ditemui di terminal
- Untuk agen AI: Thinking Block, Streaming Text, Tool Approval, Token Usage, Model Selector, dan komponen baru lain yang muncul di tool CLI agentic terbaru
- Rendering grafis: Image yang menggambar gambar nyata di terminal, QR Code yang menampilkan QR di CLI, Progress Circle berbentuk lingkaran
- Jenis overlay: Modal, Dialog, Drawer, Popover, Tooltip yang menumpuk layer di atas grid teks
- Khusus tool pengembangan: Git Status, Diff View, Directory Tree, Embedded Terminal yaitu terminal di dalam terminal
- Widget input bergaya GUI: Color Picker, Date Picker, File Picker, dan lainnya direka ulang berbasis keyboard
- Contoh yang berjalan dapat dilihat di https://www.termcn.dev
- Lisensi MIT
2 komentar
Memang benar produktivitasnya tinggi, tapi secara pribadi rasanya kalau kita pergi ke orang-orang zaman dulu lalu bilang membuat TUI dengan React, mereka mungkin akan berkata, “Hei kau! Kenapa menambahkan overhead yang tidak perlu ke terminal?”
Rasanya mengingatkan pada anekdot tentang von Neumann yang melihat murid-muridnya membuat dan memakai assembly language, lalu bertanya kenapa mereka tidak coding dengan bahasa mesin dan malah memakai hal aneh seperti itu.
Secara pribadi, belakangan ini alat TUI sudah sangat nyaman digunakan, jadi kalau dibandingkan dengan IDE, rasanya bukan seperti bahasa mesin ↔ assembly, melainkan lebih seperti mouse ↔ trackpad—mungkin lebih ke perbedaan selera, haha.