Belajar Tmux - Multi-Session & Organisasi Workflow
Episode 8 of 28

Belajar Tmux - Multi-Session & Organisasi Workflow

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.

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

Pendahuluan

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.

Mengapa Multi-Session: Konteks yang Bersih

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 SemuaSatu Session per Project
Konteks tercampur, mudah salah fokusKonteks bersih, perpindahan tegas
Working directory berebutSetiap session punya cwd sendiri
Nama window tidak bermaknaNama session menjelaskan project
Kill-session menghentikan semuanyaSatu project mati tidak memengaruhi yang lain

Membuat dan Mengelola Banyak Session

Membuat Session Baru

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.

Membuat session bernama
tmux new -s api
tmux new -s web -c ~/project/web
tmux new -d -s worker -c /srv/worker

Baris 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.

Melihat dan Attach Session

Setelah beberapa session berjalan, kalian perlu melihat dan berpindah-pindah. list-sessions (alias ls) menampilkan semua session beserta jumlah window, layout, dan status.

Daftar dan attach session
tmux ls
tmux attach -t api
tmux attach -t api -d
tmux attach -t api -r
  • attach -t api — attach ke session api.
  • attach -ddetach 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.

Attach-or-Create: Satu Perintah untuk Dua Keputusan

Pola yang paling produktif untuk workflow harian adalah attach-or-create: jika session sudah ada, attach; jika belum, buat. Flag -A mewujudkan ini.

Attach-or-create
tmux new -A -s api

Menjalankan 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.

Banyak Client dalam Satu Session

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.

Dua client dalam satu session
tmux ls
tmux list-clients
tmux attach -t api -d

list-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 Organisasi Workflow: Satu Session per Project

Pola yang direkomendasikan komunitas tmux untuk pengembangan adalah struktur bertingkat yang rapi:

  • Session = satu project.
  • Window = satu task (editor, dev server, git, log).
  • Pane = detail dalam task (satu pane editor, satu pane terminal).

Contoh nyata untuk project backend bernama api:

Bootstrapping project workspace
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 api

Hasilnya: 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.

Berpindah Antar Session Tanpa Detach

Ada kalanya kalian tidak ingin meninggalkan layar untuk berpindah session — cukup melompat dari session saat ini ke session lain. Beberapa caranya:

AksiPerintah / KeybindingEfek
Berpindah ke session lainprefix + sBuka daftar session (browse)
Menuju session sebelumnyaprefix + ( / prefix + )Pindah ke session sebelumnya/berikutnya
Bertukar ke session terakhirprefix + LPindah ke session yang terakhir dikunjungi
Pilih dari daftartmux choose-tree -ZsPilih 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:

Menutup session
tmux kill-session -t api
tmux kill-session -a
tmux kill-server
  • kill-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.

Kesalahan Umum (Common Pitfalls)

  1. Menutup terminal bukan berarti menutup session. Detach (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.
  2. Attach gagal karena session sudah terbuka di client lain. Solusi: tmux attach -t api -d untuk menendang client lain, atau lihat dulu dengan tmux list-clients.
  3. Mengabaikan working directory saat membuat session. Session yang dibuat tanpa -c memakai direktori saat perintah dijalankan — bisa saja bukan direktori project. Biasakan tmux new -s proj -c ~/proj.
  4. Menjejalkan semua project dalam satu session. Konteks tercampur dan perpindahan jadi tidak tegas. Pisahkan per project, meski terasa "boros" di awal — pengelolaannya justru lebih mudah.
  5. Membunuh server dengan kill-server tanpa berpikir. Perintah ini menghentikan semua session sekaligus. Jika hanya ingin menutup satu, gunakan kill-session -t <nama>.
  6. Lupa memakai new -A. Attach-or-create adalah pola paling praktis untuk workflow harian; memakainya akan menghemat banyak kebingungan "session-nya ada atau tidak ya?".

Penutup

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:

  • Session adalah unit konteks — satu session per project.
  • tmux new -A -s nama membuat atau attach, sesuai kebutuhan.
  • attach -d mengambil alih session dari client lain.
  • Window per task, pane per detail — struktur yang membuat navigasi intuitif.
  • 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!

Belajar Tmux - Multi-Session & Organisasi Workflow | Belajar Tmux