The tmux plugin ecosystem is large and mostly unnecessary. Most plugins solve problems that a handful of config lines already handle, or they solve problems you do not have. This guide covers the three plugins worth installing for a professional remote-dev workflow, explains what each actually does, and gives you an honest test for whether you need any of them.
The honest test: do you need a plugin?
Before installing anything, ask two questions:
- Can this be done with a
setorbindin.tmux.conf? - Will I notice if this is gone on a fresh server with no plugins installed?
If the answer to the first is yes, skip the plugin. If the answer to the second is no, it is not earning its place. Most plugins fail the second test.
TPM: the plugin manager
TPM (tmux Plugin Manager) is the only way to install and manage the plugins below reproducibly. It is a thin shell script, not a dependency chain.
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmThen add to the bottom of ~/.tmux.conf:
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible' # optional
run '~/.tmux/plugins/tpm/tpm'The run line must be the last line in your config. TPM processes plugin configs in order; anything after the run line may not execute. After saving, press prefix I (capital I) to install the declared plugins. TPM clones each repo into ~/.tmux/plugins/.
Other TPM keybindings you will use:
prefix I— install new pluginsprefix U— update all pluginsprefix alt-u— remove plugins no longer in the config
tmux-resurrect: save and restore sessions
tmux-resurrect saves your entire tmux environment — sessions, windows, panes, working directories, and the running programs in each pane — to a plain text file. On the next boot or after a server restart, you restore it with a single keypress.
set -g @plugin 'tmux-plugins/tmux-resurrect'Keybindings (added automatically):
prefix Ctrl-s— save sessionprefix Ctrl-r— restore session
The save file lives at ~/.tmux/resurrect/last. It is a text file you can read and edit. Resurrect does not start programs for you — it restores the pane layout and working directories, and it can restore some programs (vim, emacs) if you configure it to. For most workflows, restoring the layout and directories is enough.
# restore vim sessions (optional)
set -g @resurrect-strategy-vim 'session'tmux-continuum: automatic saves
tmux-continuum builds on resurrect. It saves automatically on a configurable interval and optionally restores the last save when tmux starts.
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '5'@continuum-restore 'on': tmux restores the last saved environment when the server starts. Combined with the systemd boot pattern from the persistent sessions guide, your layout is back within seconds of a reboot.
@continuum-save-interval '5': saves every 5 minutes. The unit is minutes. Set it higher (15 or 30) if you find the writes disruptive; lower if you make frequent layout changes you want preserved.
You can check the time of the last save with:
cat ~/.tmux/resurrect/last | head -1The complete plugins block
Here is the full recommended plugins section, placed at the bottom of ~/.tmux.conf, after all other config:
# ── plugins ───────────────────────────────────────────────────────
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '5'
run '~/.tmux/plugins/tpm/tpm'Plugins you probably do not need
The tmux plugin registry lists dozens of plugins. Most of them solve problems that are either already handled by tmux built-ins or are not problems in a focused workflow.
| Plugin | Why to skip it |
|---|---|
| tmux-yank | Useful only if set-clipboard on is not working in your terminal. Most modern terminals support OSC 52; try the built-in first. |
| tmux-pain-control | Adds pane navigation bindings. Four bind lines in your config do the same thing without a plugin. |
| tmux-battery | Useful on a laptop, noise on a server. A #(cat /sys/class/power_supply/BAT0/capacity) segment works without a plugin. |
| tmux-cpu | A #() segment calling cut -d ' ' -f1 /proc/loadavg is three tokens, not a plugin. |
| tmux-sensible | A curated set of defaults. Fine to use, but if you have read the baseline config guide, you have already applied everything it adds. |
Keeping plugins up to date
TPM does not auto-update. Run prefix U periodically, or add a cron job:
# update plugins silently, once a week (add to crontab -e)
0 4 * * 0 ~/.tmux/plugins/tpm/bin/update_plugins allYou do not need to update frequently. Resurrect and continuum are stable and infrequently changed. The main reason to update is security patches in the TPM bootstrap script itself.
What happens on a fresh server with no plugins
If you clone to a new server and forget to run prefix I, resurrect and continuum are simply absent — tmux works normally, saves do not happen, restores do not run. No errors, no broken sessions. That is the right failure mode. The persistent session setup via systemd (covered in the next guide) provides boot-time availability even without plugin-based restore.