Fondasi sebelum menyentuh Zellij: skill dasar terminal dan job control di shell, pemahaman SSH untuk remote development, plus setup terminal modern dan instalasi Zellij yang terverifikasi.

Selamat datang di series Belajar Zellij! Series ini akan membawa kalian dari nol hingga mampu membangun terminal workspace modern yang produktif, aman, dan siap produksi. Total 28 episode yang saling membangun: prasyarat dan setup environment, sejarah mengapa Zellij lahir, arsitektur client-server, session/tab/pane lifecycle, mode system, scrollback dan search, floating panes, konfigurasi config.kdl, custom keybindings, layout KDL, status bar dan theme, pipes dan CLI actions, plugin system, session persistence, multiplayer, hingga production-ready setup.
Mengapa Zellij penting untuk dipelajari? Terminal adalah rumah para developer — tetapi kebanyakan dari kita masih bekerja dengan satu jendela terminal yang sempit: satu proses, satu layar, tidak ada memori ketika SSH terputus. Zellij adalah terminal workspace: ia membungkus terminal dengan session, tab, pane, floating panes, dan plugin system yang semuanya berjalan keyboard-first. Dibangun di Rust dengan plugin berbahasa WASM, Zellij menawarkan modernitas yang tidak dimiliki multiplexer lama sambil tetap bertahan di tengah koneksi yang tidak stabil.
Episode 0 ini adalah peta jalan. Sebelum menyentuh Zellij, kita memastikan lima hal: (1) skill terminal dan job control yang nyaman di jari, (2) pemahaman proses dan SSH untuk remote development, (3) terminal modern dengan true color dan Nerd Font, (4) mental model terminal workspace yang akan membuat konsep Zellij terasa familier, dan (5) instalasi Zellij lengkap dengan sesi pertama yang berjalan. Semua episode berikutnya berasumsi fondasi ini sudah berdiri kokoh. Mari mulai.
Zellij tidak menggantikan terminal — ia berada di atas terminal. Semua pane Zellij pada akhirnya adalah proses yang berjalan di dalam pseudo-terminal (PTY). Jika kalian tidak nyaman dengan navigasi CLI dasar, kalian tidak akan bisa memanfaatkan workspace Zellij secara maksimal. Inilah skill yang wajib kalian miliki sebelum lanjut.
| Skill | Contoh Perintah | Kegunaan |
|---|---|---|
| Navigasi direktori | cd, pwd, ls -la | Berpindah dan memahami struktur folder |
| Manajemen file | cp, mv, rm, mkdir | Mengelola file dan folder |
| Menjalankan command | ./script.sh, command --help | Menjalankan program dan membaca dokumentasinya |
| Manajemen proses | ps, kill, htop | Memahami dan mengontrol proses berjalan |
| Job control | jobs, fg, bg, Ctrl+Z | Mengelola proses di latar belakang |
Pahami bukan hanya perintahnya, tapi hubungan antar konsep: setiap pane Zellij adalah satu proses shell yang berjalan di dalam PTY. Ketika kalian membuat pane baru, Zellij membuat PTY baru dan menjalankan shell di dalamnya. Ketika kalian menutup pane, proses di dalamnya ikut dihentikan. Mental model ini — bahwa workspace Zellij adalah kumpulan proses yang diatur — adalah kunci memahami semua episode berikutnya.
Note
Perhatikan satu detail yang sering disalahpahami: menutup pane Zellij bukan sama dengan menutup jendela terminal. Menutup jendela terminal mengirim SIGHUP dan bisa menghentikan proses di dalamnya; menutup pane Zellij adalah keputusan eksplisit yang juga menghentikan proses, tetapi detach dari session Zellij (Ctrl+o lalu d) tidak menghentikan proses — ia tetap berjalan sampai kalian attach kembali.
Job control adalah jembatan antara terminal polos dan terminal workspace. Kemampuan menangguhkan, memindahkan, dan mengelola proses inilah yang membuat konsep multi-pane terasa natural. Kuasai perintah berikut sampai mengalir:
| Perintah / Tombol | Kegunaan |
|---|---|
Ctrl+C | Menghentikan proses yang sedang berjalan di foreground |
Ctrl+Z | Menangguhkan proses (suspend) ke background |
jobs | Menampilkan daftar job yang ditangguhkan |
bg | Melanjutkan job di latar belakang |
fg | Memindahkan job ke latar depan |
kill %1 | Menghentikan job berdasarkan nomor |
Sebagian besar workflow Zellij mengikuti pola yang sama: menjalankan proses panjang (dev server, tail log, build watcher) di satu pane, sementara pane lain dipakai untuk mengedit kode. Jika alur ini masih terasa asing, latih dulu di episode ini — karena nanti kalian akan hidup di dalamnya.
Tip
Biasakan diri dengan pola keyboard-first: semakin jarang kalian menyentuh mouse, semakin cepat workflow kalian. Zellij dirancang dengan filosofi ini — semua aksi (pindah pane, buat tab, resize) bisa dilakukan tanpa melepas tangan dari keyboard. Latih di sini dengan menangguhkan proses via Ctrl+Z dan memindahkannya dengan fg/bg tanpa menyentuh mouse.
Salah satu alasan terbesar orang memakai multiplexer adalah survive SSH disconnect. Ketika kalian bekerja di server remote dan koneksi terputus, proses yang berjalan di foreground ikut mati. Zellij menyelesaikan ini dengan session yang ter-detach dari terminal. Tetapi untuk itu, kalian butuh dasar SSH:
ssh user@host
ssh -i ~/.ssh/id_ed25519 user@hostPahami tiga hal tentang SSH sebelum lanjut:
ssh-keygen -t ed25519, lalu salin ke server dengan ssh-copy-id user@host.ControlMaster di ~/.ssh/config agar koneksi SSH tidak perlu di-handshake ulang setiap kali — sangat membantu ketika attach/detach Zellij bolak-balik.ssh -A untuk meneruskan SSH agent — penting saat bekerja di bastion/jump host dengan Zellij.Host myserver
HostName 192.168.1.10
User arman
IdentityFile ~/.ssh/id_ed25519
ControlMaster auto
ControlPath ~/.ssh/controlmasters/%r@%h:%p
ControlPersist 10m
ServerAliveInterval 60
ServerAliveCountMax 3ServerAliveInterval dan ServerAliveCountMax membuat koneksi tetap hidup dan cepat mendeteksi koneksi mati — kombinasi yang sempurna dengan Zellij yang bertahan hidup di balik SSH.
Zellij menjalankan shell di dalam setiap pane — dan shell yang sehat adalah fondasi workspace yang nyaman. Luangkan waktu untuk membereskan shell sebelum lanjut. Perhatikan dua file utama: profile (di-load saat login) dan rc (di-load setiap kali shell interaktif dimulai). Untuk bash: ~/.bash_profile dan ~/.bashrc. Untuk zsh: ~/.zshrc (satu file untuk semuanya). Untuk fish: ~/.config/fish/config.fish.
Apa yang sebaiknya ada di dalamnya?
| Isi | Contoh | Alasan |
|---|---|---|
| Alias umum | alias ll='ls -la' | Menghemat ketikan setiap hari |
| Prompt yang informatif | PS1, starship, powerlevel10k | Mengetahui direktori & branch git sekilas |
| Editor default | export EDITOR=nvim | Dipakai Zellij saat edit scrollback |
| Path tool | export PATH="$HOME/.local/bin:$PATH" | Menjangkau binary lokal |
| Fungsi helper | mkt() { cd ~/work/$1; zellij -s $1; } | Meluncurkan workspace per project |
Satu detail penting untuk series ini: Zellij menghormati $EDITOR. Ketika kalian menekan e di Scroll mode untuk mengedit scrollback, Zellij membuka file tersebut di editor yang didefinisikan oleh variabel ini. Set export EDITOR=nvim (atau vim, code --wait) di file rc kalian — kelak di episode 6 keterampilan ini akan terasa sangat berharga.
Tip
Jika kalian sering berpindah mesin, simpan konfigurasi shell di repo dotfiles dan symlink ke lokasinya. Ini pattern yang sama yang akan kalian terapkan untuk ~/.config/zellij/ di episode 27. Konsistensi environment antara mesin lokal dan remote membuat pengalaman Zellij identik di mana pun kalian bekerja.
Zellij adalah aplikasi yang haus akan fitur terminal modern. Beberapa fitur Zellij (floating panes, web client, dukungan mouse, theme switching otomatis) bergantung pada kemampuan terminal emulator kalian. Jangan pakai terminal bawaan yang kuno — investasikan lima menit untuk memilih salah satu:
| Terminal | Kelebihan | Platform |
|---|---|---|
| Kitty | Sangat cepat, GPU-accelerated | Linux/macOS |
| WezTerm | Konfigurasi Lua, tab bawaan, cross-platform | Linux/macOS/Windows |
| Ghostty | Baru, cepat, konfigurasi minimal | Linux/macOS |
| Alacritty | Ringan, GPU-accelerated, konfigurasi YAML | Linux/macOS/Windows |
| iTerm2 | Fitur terlengkap di macOS | macOS |
| Windows Terminal | Tab & pane bawaan, GPU | Windows |
Yang paling penting: true color support (24-bit). Zellij dan tema-temanya (dracula, catppuccin, dll.) mengandalkan true color untuk tampil indah. Periksa dengan perintah berikut:
echo -e "\e[38;2;255;0;0mRED\e[0m"Jika "RED" muncul merah, terminal kalian mendukung true color. Selain true color, pastikan terminal mendukung OSC 52 (klipboard jarak jauh) — fitur yang nanti dipakai Zellij untuk integrasi clipboard di remote.
Zellij menggunakan ikon di tab-bar dan status-bar (tab aktif, pane aktif, mode aktif). Ikon-ikon ini berasal dari Nerd Font — font yang diperkaya dengan ribuan glyph. Tanpa Nerd Font, ikon akan tampil sebagai kotak persegi atau karakter aneh. Dua pilihan paling populer:
Unduh dari nerdfonts.com, install di sistem, lalu set sebagai font terminal kalian. Verifikasi ikon tampil dengan menjalankan sesi Zellij nanti — tab-bar harus menampilkan ikon yang jelas, bukan kotak.
Important
Ini kesalahan paling umum di episode 0: antarmuka Zellij tampil rusak atau aneh karena bukan karena Zellij bermasalah, melainkan karena terminal tidak punya Nerd Font. Selalu install dan set Nerd Font sebelum menilai tampilan Zellij. Jika ikon tampil sebagai kotak □, solusinya hampir selalu ada di pengaturan font terminal.
Zellij tersedia di hampir semua platform. Pilih metode yang paling cocok:
curl -sSfL https://install.zellij.dev | bashSetelah terpasang, verifikasi instalasi:
zellij --version
zellij setup --checkzellij setup --check menjalankan serangkaian pemeriksaan environment — termasuk cek terminal, cek warna, dan cek konfigurasi. Output hijau berarti environment kalian siap. Perhatikan versi: series ini merujuk pada Zellij 0.44.x; pastikan versi major tidak tertinggal jauh agar perintah di semua episode tetap berlaku.
Inilah "tes tensi" episode ini: jalankan sesi Zellij pertama dan pastikan semuanya bekerja dari hulu ke hilir — Zellij membuat server, membuka pane, dan merender UI.
zellijSetelah masuk, kalian akan melihat:
tab 1) dengan ikon.NORMAL), nama session, dan hint keybinding.Coba interaksi pertama: tekan Ctrl+p lalu n untuk membuat pane baru, Ctrl+p lalu h/l untuk berpindah fokus, dan Ctrl+o lalu d untuk detach. Setelah detach, jalankan zellij attach untuk attach kembali — perhatikan bahwa shell di dalam pane tetap hidup selama kalian pergi. Itulah keajaiban session Zellij.
Tip
Tekan Ctrl+p lalu ? untuk menampilkan daftar keybinding pane yang lengkap. Zellij menampilkan hint kontekstual di status-bar setiap kali kalian menekan mode key — ini adalah cara terbaik untuk belajar tanpa menghafal semua shortcut di awal.
□. Solusi: install Nerd Font dan set di pengaturan font terminal.jobs/fg/bg, workflow multi-pane terasa janggal. Latih dulu — ini keterampilan yang akan membayangi seluruh series.Warning
Sepanjang series, bedakan dua konteks: di dalam Zellij dan di luar Zellij. Beberapa perintah (zellij action, zellij pipe, zellij attach) hanya bermakna di luar session atau via CLI; sementara keybinding hanya bermakna di dalam session. Kebingungan antara dua konteks ini adalah sumber frustrasi terbesar pemula Zellij.
Di episode 0 ini kalian telah memastikan lima fondasi: skill terminal (navigasi, manajemen file, proses, job control), pemahaman SSH (key-based auth, persistent connection, agent forwarding) untuk remote development, terminal modern dengan true color, Nerd Font untuk antarmuka Zellij yang indah, serta instalasi Zellij yang terverifikasi — dibuktikan dengan sesi pertama yang berhasil berjalan.
Poin yang harus kalian bawa:
Ingat, series Belajar Zellij terdiri dari 28 episode yang saling membangun. Episode 0 adalah batu bata pertama — dan kalian baru saja meletakkannya dengan sempurna. Di episode 1 selanjutnya kita mundur sejenak untuk memahami sejarah, latar belakang, dan mengapa Zellij lahir: evolusi terminal workspace dari GNU Screen dan tmux, kisah Zellij yang dirilis pertama kali pada 2021, mengapa memilih Rust, serta perbandingan jujur Zellij melawan tmux dan terminal polos. Sampai jumpa di episode 1, dan selamat membangun terminal workspace kalian!