2 poin oleh marshallku 7 jam lalu | 3 komentar | Bagikan ke WhatsApp

Saya mengalami masalah saat menjalankan beberapa agen coding AI seperti Claude Code dan Codex secara bersamaan di beberapa sesi tmux. Saya sering terlewat sesi mana yang sudah selesai, mana yang macet menunggu saya, dan untuk agen yang berjalan di background, saya baru tahu setelah terkena usage limit.
tmux punya keterbatasan sampai di situ, jadi saya membuat comux.

comux adalah multiplexer bergaya tmux untuk menjalankan agen AI.

  • Menampilkan status agen (working / ready / blocked) dari semua sesi secara real-time di sidebar
  • Mengirim notifikasi desktop segera ketika agen menyelesaikan turn atau menunggu input
  • Bahkan jika server dimatikan atau reboot, saat dijalankan ulang setiap agen dipulihkan ke titik percakapan sebelumnya (berbeda dari tmux-resurrect, ini memulai ulang session)
  • Usage para agen dan notifikasi yang menumpuk bisa dipantau secara real-time di status bar

Karena berupa satu binary statis tanpa dependensi, comux bisa berjalan di mana saja, termasuk server headless via SSH.
Ini adalah bagian dari proyek terminal yang lebih besar (copad), tetapi comux dapat diinstal secara terpisah:

# Instal Comux saja  
curl -fsSL https://raw.githubusercontent.com/marshallku/copad/… | bash  
  
# Instal juga Copad (Linux & MacOS)  
curl -fsSL https://raw.githubusercontent.com/marshallku/copad/master/install.sh | bash  

Catatan pembuatan selama 4 bulan: https://marshallku.com/dev/road-to-making-my-own-terminal/

Masukan dari Anda yang menjalankan banyak agen sangat diterima.

3 komentar

 
ohah173 5 jam lalu

Saya juga membaca tulisan blognya dengan sangat baik.
Dari sudut pandang saya yang juga sedang mengembangkan terminal dengan motivasi yang mirip, ada beberapa hal yang membuat saya penasaran.

Secara pribadi, saya merasa jarang ada masa seperti sekarang, ketika lingkungan DX berubah begitu cepat dan tiap developer seolah hidup di zamannya masing-masing.
Saya tidak tahu apakah pembuatnya juga merasakan hal yang sama, tetapi justru di saat seperti ini saya merasa lebih menguntungkan jika kendali ada di tangan saya sendiri,
dan ketika saya memikirkan apa fondasi DX di era AI, saya sampai pada kesimpulan bahwa jawabannya adalah terminal berbasis terminal.

Saya sudah mencoba hampir semua terminal yang sedang populer belakangan ini, tetapi input bahasa Korea di sebagian besar terminal masih kurang baik, dan untuk memakai agent pun DX dan UX-nya terasa tidak nyaman. Karena itu saya juga sampai pada kesimpulan bahwa saya harus mengembangkannya sendiri, dan saya merasa dengan terminal buatan saya, saya bisa memperoleh produktivitas yang lebih baik daripada orang lain.

Dalam kasus saya, untuk benar-benar mendapatkan kendali penuh,
saya berpikir ketergantungan pada library eksternal juga harus diminimalkan, jadi saya memilih Zig dan pengembangan mandiri (kecuali hal-hal yang tidak bisa dihindari seperti webview).

Melihat tulisan blog dan kodenya, saya penasaran mengapa Anda memilih Rust dan memilih library eksternal yang sudah ada di ekosistem Rust, seperti rataui, alih-alih membangunnya sendiri.
Dari tulisan itu juga terlihat sepertinya ada beberapa isu yang muncul karena ketergantungan pada library eksternal.

Lalu, karena webview-nya adalah webview native, sementara sebagian besar lingkungan web bukan lingkungan Safari, sepertinya akan sulit melakukan pengujian E2E yang benar-benar lengkap. Untuk bagian ini, apakah Anda menyerahkannya begitu saja ke alat testing eksternal? Atau apakah ada rencana menambahkan CEF di kemudian hari? Saya juga penasaran.

Saya sendiri sekarang sudah cukup lama memakai terminal saya dan mulai masuk tahap stabilisasi, jadi sekarang sedang banyak memikirkan penambahan fitur, perencanaan, dan juga UX. Namun selama pengembangan, pasti ada banyak crash dan berbagai bug lainnya,

saya juga penasaran, setelah mulai mengembangkan, kira-kira pada titik kapan sistemnya sudah cukup stabil hingga Anda bisa menjalankannya bukan lagi di terminal eksternal, melainkan di terminal buatan Anda sendiri.

 
marshallku 4 jam lalu

Halo!
Terima kasih sudah berbagi pengalaman dan pemikiran yang bagus.

Tentu saja, seiring biaya untuk menghasilkan kode menjadi lebih rendah, jalan untuk membuat sendiri memang terbuka. Namun secara pribadi, terlepas dari hadirnya era AI, saya tetap mempertimbangkan penggunaan library eksternal.

  1. Tidak ada library yang memenuhi kebutuhan saya
  2. Membuat ulang lebih murah daripada memodifikasi tool serupa

Saya biasanya membuatnya sendiri hanya ketika menurut saya kedua hal ini benar.
Ada berbagai alasan, tetapi pada akhirnya, sekecil apa pun potongan kodenya, begitu saya mulai mengelolanya, itu masuk ke area yang harus saya tinjau, uji, dan pelihara sendiri. Saya rasa selalu ada biaya yang menyertainya, lebih dari sekadar menulis kode.
Masalah yang muncul selama proses pengembangan juga banyak berupa benturan dengan program yang cukup inti seperti window manager. Jadi jika sampai semuanya dibuat build from scratch, saya rasa waktu yang harus dihabiskan untuk implementasi dan verifikasi akan jauh lebih besar daripada periode debugging dan testing akibat benturan dengan dependensi eksternal.

Selain itu, sejak mulai pengembangan saya terus menggunakan tool yang saya buat sendiri meskipun terasa menyakitkan, dan saya pikir hal itu mungkin bisa dilakukan karena saya memulai pengembangan di atas dependensi tertentu.
Seperti kasus menghapus SwiftTerm di MacOS, pertama-tama saya memasukkan dependensi eksternal untuk memastikan konsep yang saya inginkan berjalan. Jika kemudian ada sesuatu yang harus saya implementasikan sendiri, saya mulai mengimplementasikannya langsung. Namun pada titik itu pun program saya sudah berjalan dengan dependensi eksternal, sehingga saya bisa terus berfokus pada stabilisasi dan penambahan fitur di atasnya.

Selain itu, jika menggunakan webkit, sebagian besar web app akan berjalan sama seperti saat dibuka di browser biasa!
Belakangan ini saya juga aktif memanfaatkan tool yang bisa mengontrol headless browser lewat CLI serta Claude in Chrome, dan saya ingin mencegah penggunaan memori berlebihan dengan menambahkan chromium sampai ke terminal. Jadi selama tidak ada hal besar, sepertinya saya tidak akan banyak mengubah tech stack webview di dalam terminal.

Terima kasih sudah membaca!

 
marshallku 7 jam lalu

Tautan instalasi multiplexer terpotong.. Jika Anda melihat bagian ini di README, Anda bisa menginstal multiplexer saja.