Mengelola banyak session secara paralel: satu session per project, attach-or-create, detach client lain, dan pola organisasi window per task untuk workflow development yang terstruktur.

Di episode 7 sebelumnya kita menguasai manipulasi pane tingkat lanjut — layout presets, resize, break-pane dan join-pane untuk menyusun ulang viewport dengan bebas. Semua kemampuan itu masih berada di dalam satu session. Pada episode ini kita memperlebar pandangan: mengelola banyak session secara paralel, menjadikan tmux sebagai pusat kendali seluruh pekerjaan, dan menata workflow dengan pola yang dipakai engineer produksi — satu session per project, window per task, pane per detail.
Mengapa ini penting di dunia nyata? Seorang engineer yang menangani beberapa project sekaligus tidak bisa hidup dalam satu session yang membawa semua konteks bercampur. Sesi yang ideal adalah artefak yang bisa dibuka dan ditutup — seperti workspace yang rapi di meja: satu project satu meja. Episode ini mengajarkan cara membangun meja-meja itu, berpindah antar meja tanpa kehilangan konteks, dan memastikan semua proses di dalamnya tetap hidup meskipun kalian berpindah-pindah.
Kesalahan paling umum pengguna pemula tmux adalah menjejalkan semua pekerjaan ke dalam satu session. Buka project web di window 1, project backend di window 2, urusan pribadi di window 3 — semuanya bertumpuk, dan nama window menjadi tidak bermakna. Multi-session menyelesaikan ini dengan pemisahan konteks.
Bayangkan sesi sebagai kantor yang berbeda: kalian tidak membawa pekerjaan kantor A ke meja kantor B. Setiap session punya environment, working directory, dan layout-nya sendiri. Ketika kalian berpindah project, kalian pindah "kantor" secara utuh — bukan sekadar berganti tab. Ini persis alasan kenapa tmux new -s nama-project lebih baik daripada terus membuat window di session yang sama.
| Satu Session untuk Semua | Satu Session per Project |
|---|---|
| Konteks tercampur, mudah salah fokus | Konteks bersih, perpindahan tegas |
| Working directory berebut | Setiap session punya cwd sendiri |
| Nama window tidak bermakna | Nama session menjelaskan project |
| Kill-session menghentikan semuanya | Satu project mati tidak memengaruhi yang lain |
Perintah new-session (alias new) membuka session baru. Untuk manajemen banyak session, biasakan memberi nama dan menentukan working directory sejak awal — nanti kalian akan berterima kasih saat session menumpuk.
tmux new -s api
tmux new -s web -c ~/project/web
tmux new -d -s worker -c /srv/workerBaris pertama membuat session api dan langsung attach. Baris kedua membuat session web yang langsung berada di direktori project web — flag -c menentukan working directory. Baris ketiga membuat session worker detached (-d): session berjalan di background tanpa mengganggu layar, sempurna untuk proses yang dijalankan sekali dan di-attach nanti.
Setelah beberapa session berjalan, kalian perlu melihat dan berpindah-pindah. list-sessions (alias ls) menampilkan semua session beserta jumlah window, layout, dan status.
tmux ls
tmux attach -t api
tmux attach -t api -d
tmux attach -t api -rattach -t api — attach ke session api.attach -d — detach client lain yang sedang menampilkan session itu, lalu ambil alih. Ini pola klasik ketika kalian login dari perangkat kedua dan session sudah terbuka di perangkat pertama.attach -r — attach dalam mode read-only, berguna saat ikut mengamati session orang lain tanpa berisiko menekan tombol yang mengganggu.Pola yang paling produktif untuk workflow harian adalah attach-or-create: jika session sudah ada, attach; jika belum, buat. Flag -A mewujudkan ini.
tmux new -A -s apiMenjalankan tmux new -A -s api akan attach ke session api jika sudah ada, atau membuatnya jika belum. Inilah command ideal untuk dipasang sebagai alias shell atau fungsi — setiap kali kalian ingin "masuk ke project api", satu perintah selalu membawa kalian ke tempat yang benar tanpa perlu berpikir.
Satu session bisa menampung lebih dari satu client secara bersamaan — ini bukan fitur eksotis, melainkan fondasi shared session yang nanti kita dalami di episode 19. Dua terminal di mesin berbeda bisa attach ke session yang sama dan melihat pane yang identik secara real-time.
tmux ls
tmux list-clients
tmux attach -t api -dlist-clients menampilkan terminal mana saja yang sedang menampilkan session. Jika kalian ingin memaksa client lain keluar agar punya layar bersih, kombinasikan attach -d. Untuk kolaborasi (pair programming), biarkan kedua client menempel — masing-masing bisa mengetik, dan yang satu akan melihat ketikan yang lain.
Pola yang direkomendasikan komunitas tmux untuk pengembangan adalah struktur bertingkat yang rapi:
Contoh nyata untuk project backend bernama api:
tmux new -d -s api -c ~/project/api
tmux send-keys -t api:0 'nvim' Enter
tmux new-window -t api -n server -c ~/project/api
tmux send-keys -t api:server 'npm run dev' Enter
tmux new-window -t api -n git -c ~/project/api
tmux send-keys -t api:git 'git status' Enter
tmux attach -t apiHasilnya: window 1 editor Neovim, window 2 dev server, window 3 git — semua di direktori yang sama, semua hidup bersamaan. Ketika kalian ingin fokus menulis kode, prefix + 1; ingin lihat log server, prefix + 2. Struktur ini menghilangkan kebingungan "di mana saya tadi" karena setiap task punya rumah tetap.
Tip
Script bootstrap seperti di atas sebaiknya disimpan sebagai fungsi shell di ~/.bashrc atau ~/.zshrc. Di episode 14 kita akan membuatnya lebih elegan dengan tmuxp/tmuxinator yang berbasis file konfigurasi — tetapi memahami versi manual ini dulu penting agar kalian paham apa yang sebenarnya terjadi di balik tools tersebut.
Ada kalanya kalian tidak ingin meninggalkan layar untuk berpindah session — cukup melompat dari session saat ini ke session lain. Beberapa caranya:
| Aksi | Perintah / Keybinding | Efek |
|---|---|---|
| Berpindah ke session lain | prefix + s | Buka daftar session (browse) |
| Menuju session sebelumnya | prefix + ( / prefix + ) | Pindah ke session sebelumnya/berikutnya |
| Bertukar ke session terakhir | prefix + L | Pindah ke session yang terakhir dikunjungi |
| Pilih dari daftar | tmux choose-tree -Zs | Pilih session/window via fuzzy atau daftar |
prefix + s menampilkan antarmuka pilihan session/window/pane — di dalamnya kalian bisa navigasi dengan tombol panah dan Enter untuk masuk. prefix + L adalah cara tercepat untuk bolak-balik antara dua session yang sering dipakai, persis seperti Alt+Tab di sistem operasi.
Saat project selesai, pastikan kalian menutup session dengan benar. Ada beberapa tingkatan pembersihan:
tmux kill-session -t api
tmux kill-session -a
tmux kill-serverkill-session -t api — menghentikan session api beserta semua proses di dalamnya.kill-session -a — menghentikan semua session kecuali session aktif.kill-server — menghentikan seluruh server tmux dan semua session — gunakan hanya jika yakin tidak ada pekerjaan yang berjalan.Warning
kill-session menghentikan proses yang berjalan di dalam pane secara paksa. Sebelum membunuh session, selalu tutup proses penting dengan benar (simpan file, stop dev server, detach database migration) — atau pastikan proses tersebut aman dihentikan. Kebiasaan memeriksa tmux ls dan mengamati daftar session sebelum menutup akan menyelamatkan kalian dari kehilangan state.
prefix + d atau prefix + d di config) membiarkan session hidup. Jika kalian menutup window terminal dan session tetap ada, itu bukan bug — itu fitur inti tmux.tmux attach -t api -d untuk menendang client lain, atau lihat dulu dengan tmux list-clients.-c memakai direktori saat perintah dijalankan — bisa saja bukan direktori project. Biasakan tmux new -s proj -c ~/proj.kill-server tanpa berpikir. Perintah ini menghentikan semua session sekaligus. Jika hanya ingin menutup satu, gunakan kill-session -t <nama>.new -A. Attach-or-create adalah pola paling praktis untuk workflow harian; memakainya akan menghemat banyak kebingungan "session-nya ada atau tidak ya?".Episode ini membawa kalian dari satu session menjadi pengelola banyak session: membuat session bernama dengan working directory, melihat dan berpindah dengan list-sessions/attach, memakai attach-or-create new -A untuk alur "masuk project" yang bebas keputusan, membuka banyak client dalam satu session untuk kolaborasi, menata workflow dengan pola satu session per project dan window per task, serta menutup session secara bersih.
Poin yang harus kalian bawa:
tmux new -A -s nama membuat atau attach, sesuai kebutuhan.attach -d mengambil alih session dari client lain.kill-session -t nama untuk menutup tepat sasaran.Sekarang kalian bisa mengelola banyak workspace secara paralel — tetapi semua workspace itu masih tampil polos. Di episode 9 selanjutnya kita akan membahas kustomisasi status bar dan visual theme — mengubah status-left dan status-right menjadi pusat informasi, mengatur warna dan border, serta membangun theme yang konsisten dengan Nerd Font. Sampai jumpa di episode 9!