Menjamin kelangsungan pekerjaan dengan persistence session: save dan restore via tmux-resurrect, autosave dengan tmux-continuum, serta pengelolaan data seperti scrollback, logging, dan arsip session.

Di episode 12 sebelumnya kita membahas options dan environment management — cara membaca dan mengubah perilaku tmux lewat set-option, show-options, set-environment, dan update-environment. Semua pengaturan itu membuat tmux terasa nyaman, tetapi masih menyisakan satu titik lemah: begitu server tmux mati — entah karena reboot mesin, crash, atau SSH yang terputus permanen — seluruh session, window, pane, dan perintah yang sedang berjalan ikut lenyap.
Pada episode ini kita menutup titik lemah itu dengan persistence: menyimpan state session ke disk dan memulihkannya kembali. Kita memakai dua plugin andalan ekosistem — tmux-resurrect dan tmux-continuum — lalu beralih ke pengelolaan data: menyimpan scrollback dengan capture-pane, logging window dengan pipe-pane, dan mengarsipkan session yang sudah selesai masa pakainya. Pemasangan plugin kita lakukan lewat TPM; deep-dive ekosistem plugin secara penuh akan kita bahas di episode 16.
Ada satu momen yang dirasakan hampir semua engineer: sedang memantau migrasi database atau proses build panjang, lalu mesin restart karena update kernel, dan semua session — beserta konteks mental yang sedang kalian pegang — hilang dalam sekejap. Tmux memang menyelamatkan kalian dari SSH yang terputus, tetapi server tmux sendiri masih hidup di dalam mesin yang sama. Begitu mesin mati, semuanya mati.
Persistence menjawab pertanyaan yang lebih dalam: apakah konteks kerja kalian adalah milik kalian, atau milik mesin? Dengan save/restore, konteks kerja — session apa saja yang terbuka, window mana di tiap session, layout pane, direktori aktif, bahkan perintah yang sedang dijalankan — menjadi artefak yang bisa disimpan dan dimuat ulang. Analoginya persis save/load di game: tanpa persistence, setiap reboot adalah "game over" dan kalian mulai dari menu utama; dengan persistence, kalian melanjutkan persis dari titik terakhir.
tmux-resurrect adalah plugin yang menyimpan seluruh struktur session tmux ke satu file teks di ~/.tmux/resurrect/ dan bisa memuatnya kembali. Apa yang disimpan: session beserta nama, window, pane, layout, working directory, environment utama, serta — dengan konfigurasi tambahan — daftar perintah yang sedang berjalan di tiap pane.
Resurrect didistribusikan lewat TPM. Tambahkan deklarasi plugin berikut di ~/.tmux.conf, lalu bootstrap TPM di baris terakhir:
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
run '~/.tmux/plugins/tpm/tpm'Setelah itu reload dengan tmux source-file ~/.tmux.conf, lalu tekan prefix + I untuk menginstall plugin. TPM akan meng-clone tmux-resurrect ke ~/.tmux/plugins/ dan memuatnya.
Setelah terpasang, simpan state session kapan saja dengan prefix + Ctrl+s. Tidak ada konfirmasi di layar selain pesan singkat di status bar; prosesnya cepat karena file state disimpan sebagai teks biasa.
Untuk memuat kembali state, tekan prefix + Ctrl+r. Tmux akan membangun ulang session, window, pane, dan layout persis seperti saat disimpan. Kombinasi tombol ini adalah alasan utama kenapa banyak engineer menambahkan resurrect di hari pertama setup — karena restore bekerja di mesin yang sama maupun mesin yang berbeda.
Resurrect secara default menyimpan struktur session tanpa isi scrollback. Dua option yang paling sering diubah:
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-processes 'nvim "~" vim "~" bash "~"'
set -g @resurrect-strategy-nvim 'session'Baris pertama ikut menyimpan isi layar pane sehingga konteks visual tidak hilang. Baris kedua menentukan program apa yang dipulihkan ulang sebagai proses — daftar berisi nvim, vim, dan bash berarti pane yang sedang menjalankan program itu akan dibuka kembali dengan program yang sama. Baris ketiga memakai strategi session untuk Neovim agar sesi editor ikut dipulihkan. Ingat: hanya program di daftar ini yang dipulihkan; sisanya dibuka sebagai shell kosong.
Warning
Restore bukan keajaiban. Program yang dipulihkan dijalankan ulang dengan argumen yang disimpan, tetapi state internal di dalamnya tidak ikut dipulihkan — sebuah proses build akan dijalankan ulang dari awal, bukan dilanjutkan dari tengah. Rencanakan workflow agar operasi idempotent: perintah yang aman dijalankan ulang, bukan yang bergantung pada kondisi runtime.
tmux-resurrect menyerahkan inisiatif save pada kalian — dan inisiatif sering terlupakan. tmux-continuum melengkapi dengan otomatisasi: ia menyimpan state secara berkala dan memulihkannya otomatis ketika tmux baru dijalankan. Kombinasinya seperti autosave di editor: kalian tidak perlu ingat menekan save, karena mesin mencatat kemajuan secara rutin.
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-save-interval '15'
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'Baris pertama mendaftarkan plugin. Baris kedua membuat save otomatis setiap 15 menit. Baris ketiga mengaktifkan restore otomatis: ketika tmux server baru dimulai dan belum ada session, continuum memanggil restore resurrect. Baris keempat mengaktifkan pemulihan saat boot sistem — membutuhkan tmux dijalankan sebagai service (misalnya via systemd) agar bisa memicu restore sebelum kalian attach.
Dengan ketiga option ini, alur ideal menjadi: mesin reboot, kalian membuka terminal dan menjalankan tmux, dan tanpa menekan tombol apa pun, semua session kembali seperti sebelum reboot. Perbedaan mendasar dengan tmux-resurrect saja: kalian tidak lagi menjadi bagian dari rantai yang bisa putus karena lupa.
Jujur tentang batasan membuat kalian terhindar dari ilusi keamanan. Resurrect tidak menyimpan clipboard, buffer tmux, atau isi scrollback — kecuali opsi @resurrect-capture-pane-contents diaktifkan, dan itupun hanya isi layar yang terlihat, bukan seluruh history. Shell history juga tidak dipulihkan secara default demi keamanan, karena memuat history tanpa konteks bisa mengeksekusi perintah berbahaya secara tidak sengaja.
Pendekatan yang sehat di dunia nyata: persistence untuk struktur dan program, lalu data management untuk konten yang benar-benar harus disimpan. Bagian berikutnya membahas alat-alat tmux untuk menangkap data itu secara eksplisit.
capture-pane adalah perintah untuk mengambil isi pane — baik layar yang terlihat maupun seluruh history — dan mencetaknya ke stdout. Ini cara tercepat untuk "menyelamatkan" output yang sedang berjalan sebelum pane ditutup:
tmux capture-pane -p -S - > build.log
tmux capture-pane -p -S -100 -J > tail-100.logBaris pertama menyimpan seluruh history pane aktif (-S - berarti mulai dari baris pertama) ke file. Baris kedua hanya mengambil 100 baris terakhir (-S -100) dan menggabungkan baris yang ter-wrap dengan -J sehingga hasilnya mudah dibaca. Untuk pane tertentu, tambahkan target: tmux capture-pane -p -t dev:0.1 -S - > out.txt.
pipe-pane melakukan sesuatu yang lebih hidup: ia meneruskan seluruh output pane ke perintah eksternal secara real-time — ideal untuk memantau log ke file tanpa menyentuh isi layar. Bendera -o membuatnya berfungsi sebagai toggle: jalankan sekali untuk mulai, sekali lagi untuk berhenti.
tmux pipe-pane -o 'cat > /tmp/app.log'
tmux pipe-pane -o -t dev:1 'cat >> /tmp/api.log'
tmux pipe-pane -t dev:1Perintah pertama memulai logging pane aktif ke app.log. Perintah kedua menambahkan log pane dev:1 ke api.log dengan mode append. Perintah ketiga, tanpa -o dan tanpa perintah, menghentikan pipeline logging pane tersebut. Karena logging berjalan di balik layar, pane tetap bisa dipakai bekerja normal.
tmux capture-pane -p -S - > full.log
tmux capture-pane -p -S -100 -J > last-100.log
tmux capture-pane -p -t dev:0.1 -S - > specific-pane.logKapan memakai yang mana? capture-pane untuk snapshot sekali pakai — menangkap output error untuk dilaporkan, menyimpan hasil sebelum pane ditutup. pipe-pane untuk rekaman kontinu — merekam sesi debug, memantau log aplikasi ke file yang bisa di-tail dari luar tmux.
Seiring waktu, session menumpuk. Alih-alih langsung membunuh session yang sudah tidak dipakai, arsipkan dulu: rename dengan penanda tanggal, pindahkan window yang masih berguna, baru kill sisanya. Alur arsip yang umum dipakai tim operasional:
tmux rename-session -t deploy deploy-2026-08-02
tmux move-window -s deploy-2026-08-02:0 -t infra:5
tmux kill-session -t deploy-2026-08-02rename-session memberi label tanggal sehingga session arsip mudah dicari lewat tmux list-sessions. move-window memindahkan window yang masih bernilai ke session lain. kill-session baru dijalankan setelah window yang dibutuhkan sudah diamankan. Pola ini menjaga list-sessions tetap pendek tanpa membuang data secara terburu-buru.
tmux source-file ~/.tmux.conf lalu prefix + I. Tanpa reload, TPM tidak akan mengenali plugin baru.prefix + Ctrl+s untuk save padahal yang aktif hanya continuum autosave. Continuum menyimpan secara berkala, tetapi interval pertama bisa saja belum tercapai saat mesin mati. Untuk momen penting, biasakan save manual sesaat sebelum mengambil risiko besar.@resurrect-processes. Restore akan menjalankan ulang program di daftar secara otomatis. Perintah destruktif seperti rm -rf atau deploy otomatis tidak seharusnya masuk daftar ini.pipe-pane ke file di direktori yang ikut ter-deploy. Log yang tumbuh terus-menerus bisa membengkakkan repo atau workspace. Arahkan log ke /tmp atau direktori yang jelas-jelas temporer.@resurrect-capture-pane-contents 'on' sejak awal — mengaktifkannya belakangan tidak memulihkan data yang sudah lewat.kill-session menghapus window yang mungkin masih dibutuhkan orang lain. Jika session dipakai tim, biasakan rename dengan tanggal dan pindahkan window yang masih hidup sebelum membersihkan.Episode ini mengubah tmux dari sekadar "terminal yang bertahan" menjadi "workspace yang bisa dipulihkan". Kalian kini bisa menyimpan seluruh state dengan tmux-resurrect lewat prefix + Ctrl+s dan memuatnya dengan prefix + Ctrl+r, mengotomasi keduanya dengan tmux-continuum (autosave tiap 15 menit plus restore otomatis), menyadari batasan persistence, serta mengelola data secara eksplisit: snapshot scrollback dengan capture-pane, rekaman output real-time dengan pipe-pane, dan arsip session yang tertib.
Poin yang harus kalian bawa:
tmux-resurrect menyimpan struktur session; tmux-continuum membuat save dan restore berjalan otomatis.capture-pane untuk snapshot sekali pakai; pipe-pane untuk logging berkelanjutan.Kemampuan save/restore ini paling berharga ketika dipicu dari dalam script — membangun ulang workspace tanpa satu pun ketikan manual. Di episode 14 selanjutnya kita akan membahas scripting, otomasi, dan command line — perintah non-interaktif seperti new -d dan send-keys, pembuatan layout deklaratif dengan tmuxp dan tmuxinator, serta cara memakai CLI tmux sebagai fondasi otomasi. Sampai jumpa di episode 14!