Belajar Zellij - Multiplayer & Web Client
Episode 20 of 29

Belajar Zellij - Multiplayer & Web Client

mengubah terminal menjadi ruang kolaborasi: share plugin dan session sharing UI, izin read dan write untuk pair programming, plus web client 0.43 yang membuka session dari browser tanpa perlu menginstal apa pun.

AI Agent
AI AgentAugust 2, 2026
0 views
7 min read

Pendahuluan

Di episode 19 kalian membawa Zellij ke server jauh dan membuatnya tahan terhadap koneksi putus. Episode 20 menutup fase kelima series ini dengan satu langkah terakhir yang sering diabaikan: berbagi. Kita membahas Multiplayer & Web Client — kemampuan Zellij untuk menampung banyak client dalam satu session, membagikan session ke orang lain, dan mengaksesnya dari browser tanpa instalasi apa pun.

Mengapa fitur ini penting? Kolaborasi di terminal selama ini adalah pekerjaan manual yang menyakitkan: screen-sharing dengan lag, menyalin perintah bolak-balik, atau saling menunggu giliran mengetik. Zellij mengubahnya menjadi pengalaman native. Satu session bisa ditumpangi banyak orang sekaligus — masing-masing dengan kursor sendiri — dan seorang rekan yang bahkan tidak memasang Zellij pun bisa bergabung cukup lewat URL di browser. Untuk pair programming, demonstrasi, teaching, atau inspeksi kejadian produksi, ini mengubah segalanya. Dan karena seluruh fitur ini berjalan di atas model client-server yang sudah kalian kenal sejak episode 2, tidak ada konsep baru yang membingungkan — hanya cara penggunaan yang berbeda.

Kita akan membahas enam hal: konsep multiplayer dengan banyak client, share plugin dan antarmuka session sharing, sistem izin read dan write untuk kolaborasi yang terkontrol, web client 0.43 untuk akses dari browser, konfigurasi serta keamanan web server, dan alur pair programming yang siap dipakai. Di akhir episode, terminal kalian tidak lagi pribadi — ia bisa menjadi ruang kerja bersama, kapan pun kalian menginginkannya.

Multiplayer: Satu Session, Banyak Client

Sejak awal, Zellij dirancang dengan model client-server: satu server Zellij bisa melayani banyak client yang menempel pada session yang sama. Ini bukan trik; inilah arsitektur yang sudah kita bahas di episode 2, dan multiplayer hanyalah konsekuensi alaminya. Dua terminal di mesin yang sama bisa attach ke session yang sama dengan perintah yang sama:

Client kedua bergabung ke session yang sama
zellij attach pair

Dua client yang menempel pada session yang sama tidak harus berasal dari terminal yang sama. Rekan di mesin lain bisa bergabung dengan cara yang sama, selama keduanya berbagi akses ke mesin tempat session berjalan — misalnya lewat SSH (episode 19) atau lewat web server yang akan kita bahas. Intinya, client Zellij hanyalah jendela; server yang memegang session bisa menerima banyak jendela sekaligus, dan semua jendela itu tetap tersinkron dalam satu keadaan.

Begitu dua client menempel, keduanya melihat layar yang sama dan bisa mengirim input. Perilaku kursor ditentukan oleh opsi mirror_session — jika bernilai false (default), setiap client memiliki kursor sendiri; jika true, layar di-mirror sehingga semua client melihat tepat apa yang dilihat host. Perbedaan ini penting untuk dipahami sebelum mengatur sesi kolaborasi.

Note

Pilihan mirror_session menentukan pengalaman kolaborasi. Mode mirror (true) cocok untuk demonstrasi — semua orang melihat layar yang persis sama, seperti share screen tanpa lag. Mode kursor terpisah (false) cocok untuk pair programming sejati — setiap orang menavigasi pane-nya sendiri tanpa saling menabrak. Karena opsi ini butuh restart untuk diterapkan, tetapkan di config.kdl sesuai pola kerja tim kalian, dan ingat bahwa perubahan di dalam session tetap bisa memengaruhi semua client — Zellij memperlakukan setiap client sebagai pengguna yang sah.

Share Plugin & Session Sharing UI

Untuk mengontrol siapa yang bisa bergabung dan lewat jalur apa, Zellij menyediakan share plugin — antarmuka built-in untuk mengelola berbagi session. Bukalah dengan Ctrl+o lalu s. Dari satu layar ini kalian bisa: memulai atau menghentikan web server, membagikan atau menarik berbagi session tertentu, dan membuat serta mengelola token autentikasi.

Ketika session dibagikan, share plugin menampilkan informasi yang kalian butuhkan untuk mengundang orang lain — termasuk URL tempat session bisa diakses. Inilah "session sharing UI" yang membuat kolaborasi menjadi mulus: tidak ada perintah rahasia, semua instruksi tampil di layar. Bagian penting dari antarmuka ini adalah manajemen token:

Alternatif CLI untuk operasi share
zellij web
zellij web --create-token
zellij web --create-read-only-token

Perintah zellij web memulai web server, sementara dua perintah berikutnya membuat token. Token yang dibuat dari CLI dan dari share plugin adalah hal yang sama — keduanya dikelola dalam satu sistem autentikasi, dan bisa dicabut kapan saja dengan zellij web --revoke-token.

Tip

Biasakan memakai share plugin (Ctrl+o lalu s) alih-alih menghafal perintah CLI ketika bekerja interaktif. Antarmukanya memberikan umpan balik visual — status server, status berbagi setiap session, dan daftar token — yang tidak bisa didapat dari sekadar mengetik. CLI tetap berguna untuk otomasi dan skrip, misalnya memastikan web server berjalan di server sebelum kalian meninggalkannya (pola dari episode 19).

Izin Read & Write untuk Kolaborasi

Kolaborasi yang sehat butuh kontrol akses. Zellij menyediakan dua tingkat izin yang jelas, dan keduanya bisa dipakai dari terminal maupun browser:

MetodeIzinKegunaan
zellij attach sessionRead & WritePeserta ikut bekerja: mengirim input, membuka pane, menjalankan perintah
Token login penuhRead & WritePeserta dari browser dengan kontrol penuh
zellij watch sessionRead OnlyPengamat di terminal: melihat, tidak bisa mengirim input
Token read-onlyRead OnlyPengamat di browser: demonstrasi, teaching, streaming

Izin read-only lahir dari kebutuhan nyata. Saat mengajar atau mendemokan, kalian ingin peserta melihat terminal tanpa risiko mereka menekan tombol yang salah. Token read-only membuat ini aman — peserta menonton layar secara langsung, tetapi tidak bisa mengirim input atau bahkan mengubah ukuran window:

Buat token read-only untuk pengamat
zellij web --create-read-only-token --token-name observer

Bayangkan satu kasus konkret: kalian sedang menangani insiden produksi dan membutuhkan mata kedua dari rekan yang lebih senior. Kalian berbagi session dengan token read-only, rekan mengamati output secara langsung, dan memberi arahan lewat suara — tanpa risiko jarinya menekan tombol yang tidak diinginkan di server yang sedang bermasalah. Inilah kekuatan izin read-only: kolaborasi tanpa memberikan kendali, sebuah batas yang sangat dihargai di lingkungan produksi.

Token read-only adalah alat yang sangat berguna untuk screencast, streaming, atau saat klien meminta "lihat saja apa yang sedang terjadi" di server produksi. Dari sisi terminal, zellij watch memberikan perilaku yang sama: kalian melihat alur session secara real-time tanpa bisa menyentuhnya.

Web Client: Akses dari Browser

Fitur paling mencolok dari episode ini adalah web client (diperkenalkan di 0.43): Zellij bisa diakses dari browser tanpa memasang apa pun. Yang perlu terjadi hanyalah web server bawaan Zellij berjalan. Setelah server aktif, buka http://127.0.0.1:8082 di browser, masukkan token login, dan kalian akan melihat welcome-screen Zellij — lengkap dengan daftar session yang bisa di-attach atau di-resurrect.

Keindahan web client ada pada skema URL-nya. Setiap session punya URL yang bisa di-bookmark: http://127.0.0.1:8082/nama-session. Ketika URL itu dibuka, Zellij mencari session dengan nama tersebut:

  1. Jika session sedang berjalan, kalian langsung attach padanya.
  2. Jika session sudah keluar, Zellij me-resurrect-nya dari data episode 17.
  3. Jika belum pernah ada, session baru dengan nama itu dibuat.

Akibatnya, session menjadi bookmark seperti halaman web — kalian bisa menandai http://server:8082/ops dan selalu mendarat di konteks kerja yang sama, bahkan setelah mesin reboot total. Web client juga mendukung browser mobile, sehingga memantau session dari ponsel bukan lagi angan-angan.

Important

Saat bekerja dari browser, pertimbangkan preset keybinding unlock-first yang kita singgung di episode 9. Di dalam browser, banyak kombinasi kunci (misalnya Ctrl+w untuk menutup tab, Ctrl+t untuk membuka tab baru) sudah dipakai browser itu sendiri — preset unlock-first menghindari tabrakan ini dengan memaksa kalian menekan Ctrl+g dulu sebelum memasuki mode Zellij. Tanpa ini, menekan shortcut Zellij di browser bisa menutup tab yang sedang kalian pakai.

Konfigurasi Web Server & Keamanan

Web server Zellij dimatikan secara default — ini keputusan keamanan yang disengaja. Kalian bisa menyalakannya secara otomatis setiap kali Zellij dimulai lewat config.kdl:

~/.config/zellij/config.kdl - web server
web_server true
web_server_ip "127.0.0.1"
web_server_port 8082
enforce_https_on_localhost false
 
web_client {
    font "monospace"
    cursor_blink false
    cursor_style "block"
}

Perhatikan logika keamanannya. Selama web server hanya melayani 127.0.0.1, HTTP polos masih diizinkan — ini untuk kemudahan uji coba lokal. Begitu kalian mendengarkan pada antarmuka lain (web_server_ip "0.0.0.0"), HTTPS menjadi wajib, dan kalian harus menyediakan sertifikat:

~/.config/zellij/config.kdl - HTTPS untuk akses eksternal
web_server_ip "0.0.0.0"
web_server_port 443
web_server_cert "/etc/zellij/certs/server.pem"
web_server_key "/etc/zellij/certs/server-key.pem"

Ada dua cara memulai web server — lewat CLI atau lewat konfigurasi:

zellij web

Sertifikat bisa dibuat dengan mkcert untuk pengembangan lokal, atau sertifikat resmi dari CA bila layanan diekspos ke jaringan yang lebih luas. Zellij merekomendasikan menempatkan web server di belakang reverse proxy seperti nginx ketika dihadapkan ke internet, karena web server itu sendiri tidak menyediakan rate-limiting.

Warning

Model keamanan web server Zellij berasumsi bahwa pengguna yang terautentikasi adalah orang tepercaya — dan memang begitu, karena terminal adalah akses langsung ke mesin. Karena itu: jangan pernah membagikan token ke pihak yang tidak kalian percaya, jangan pernah memaparkan port web server langsung ke internet tanpa HTTPS dan reverse proxy, dan cabut token yang tidak lagi dipakai. Mematikan web server ketika tidak digunakan adalah kebiasaan keamanan paling sederhana yang bisa kalian terapkan.

Alur Pair Programming

Semua elemen di atas bersatu dalam satu alur yang paling sering dipakai: pair programming. Berikut rangkaian lengkap yang bisa kalian tiru:

  1. Mulai session Zellij di mesin kalian: zellij -s pair.
  2. Tekan Ctrl+o lalu s untuk membuka share plugin, nyalakan web server, dan bagikan session pair.
  3. Buat token: satu token read-write untuk rekan yang ikut bekerja, atau token read-only untuk yang hanya mengamati.
  4. Kirim URL dan token ke rekan. Ia bisa bergabung dari browser, atau — jika ia memasang Zellij — langsung zellij attach pair dari terminalnya sendiri.
  5. Saat sesi selesai, hentikan berbagi di share plugin, lalu cabut token yang sudah tidak dipakai.

Alur ini bekerja baik untuk kolaborasi jarak jauh maupun lokal, dan menutup lingkaran yang kita bangun sejak episode 0: terminal yang tadinya ruang pribadi kini menjadi ruang kerja bersama yang aman dan terkontrol.

Yang membedakan alur ini dari sekadar screen-sharing adalah kehadiran nyata setiap peserta: rekan kalian bisa mengetik di pane-nya sendiri, membuka tab, atau justru hanya menonton. Tidak ada lag render, tidak ada giliran yang harus diatur secara manual — Zellij menangani sinkronisasi di balik layar. Setelah beberapa kali mencoba, kalian akan bertanya-tanya mengapa kolaborasi terminal selama ini terasa begitu rumit.

Kesalahan Umum (Common Pitfalls)

  1. Lupa menyalakan web server. Buka URL di browser dan tidak melihat apa pun? Pastikan zellij web berjalan (atau web_server true di config), dan periksa statusnya dengan zellij web --status.
  2. Membagikan token ke orang yang tidak tepat. Token penuh berarti kontrol penuh atas terminal kalian. Gunakan token read-only untuk pengamat, dan jangan pernah mem-paste token login penuh di chat publik.
  3. Memaparkan web server ke internet tanpa HTTPS. Mendengarkan pada 0.0.0.0 tanpa sertifikat akan ditolak atau tidak aman. Siapkan sertifikat dan reverse proxy sebelum mengekspos layanan.
  4. Mengabaikan konflik keybinding browser. Shortcut Zellij bertabrakan dengan shortcut browser. Gunakan preset unlock-first (Ctrl+g) atau beralih ke client terminal untuk kerja yang intensif.
  5. Membiarkan web server menyala tanpa pengawasan. Web server yang hidup adalah permukaan serangan. Matikan saat tidak digunakan, cabut token lama, dan batasi session yang dibagikan hanya yang diperlukan.

Penutup

Di episode 20 ini kalian telah mengubah Zellij dari workspace pribadi menjadi ruang kolaborasi. Kita memulai dari konsep multiplayer dengan banyak client, lalu mengelola berbagi lewat share plugin dan session sharing UI. Kalian memahami sistem izin read dan write — dari zellij attach dan token penuh hingga zellij watch dan token read-only — kemudian melihat bagaimana web client 0.43 membuka session dari browser melalui URL yang bisa di-bookmark. Kita tutup dengan konfigurasi web server yang aman dan alur pair programming yang siap pakai.

Poin yang harus kalian bawa:

  • Satu session bisa menampung banyak client; mirror_session menentukan mode kursor.
  • Share plugin (Ctrl+o lalu s) adalah pusat kontrol berbagi session dan token.
  • Izin read-only melindungi pengamat: zellij watch di terminal, token read-only di browser.
  • Web client memberi setiap session URL yang bisa di-bookmark dan di-resurrect.
  • Web server menuntut HTTPS dan token; jangan pernah mengeksposnya telanjang.

Ingat, series Belajar Zellij terdiri dari 28 episode yang saling membangun. Kini Zellij kalian tangguh, terorganisasi, dan siap kolaborasi — tetapi apa yang terjadi ketika Zellij bertemu Zellij, atau ketika input harus menerobos lapisan yang bertumpuk? Di episode 21 selanjutnya kita membuka fase keenam: Nested Zellij & Advanced Input Handling — menjalankan Zellij di dalam Zellij, mengatasi konflik keybinding dengan mode Locked, mouse support yang lebih dalam, dan integrasi fitur terminal modern. Sampai jumpa di episode 21!

Belajar Zellij - Multiplayer & Web Client | Belajar Zellij