Supercharge tmux with Plugins
TPM (Tmux Plugin Manager) is the standard way to extend tmux. It lets you install,
update, and remove community plugins by adding a single line to your ~/.tmux.conf.
From session persistence to clipboard integration to beautiful themes — the plugin ecosystem covers it all.
How to Install TPM
TPM lives as a git repository in your ~/.tmux/plugins/ directory. Installation takes under a minute.
Clone TPM
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Add TPM to your ~/.tmux.conf
Add plugin declarations near the top, and the TPM initializer at the very bottom of your config:
# List of plugins (add more below)
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# ⚠️ Keep this line at the very bottom of .tmux.conf
run '~/.tmux/plugins/tpm/tpm'
Reload config and install
$ tmux source ~/.tmux.conf
# Then inside tmux, press:
$ Ctrl+b I # Install plugins (capital I)
$ Ctrl+b U # Update all plugins
$ Ctrl+b alt+u # Remove unused plugins
Essential Plugins
The most popular and useful tmux plugins from the community. Each includes its install snippet and key bindings.
tmux-resurrect
tmux-resurrect saves and restores your entire tmux environment — sessions, windows, panes, and running programs — across system restarts. The essential plugin for any serious tmux user.
set -g @plugin 'tmux-plugins/tmux-resurrect'
# Ctrl+b Ctrl+s — Save session
# Ctrl+b Ctrl+r — Restore session
tmux-continuum
tmux-continuum provides automatic saving of tmux sessions every 15 minutes and automatic restore on tmux server start. Pairs with tmux-resurrect for seamless session persistence through reboots.
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
# Optional: set save interval (default: 15 min)
set -g @continuum-save-interval '10'
tmux-sensible
tmux-sensible provides a set of tmux options that should be acceptable to everyone — sane default key bindings, larger scrollback buffer, faster key response times. Start here if you're new to tmux configuration.
set -g @plugin 'tmux-plugins/tmux-sensible'
tmux-yank
tmux-yank enables copying to the system clipboard in tmux copy mode. Works on Linux (via xclip/xsel/wl-clipboard), macOS (via pbcopy), and Windows WSL2 (via clip.exe). Essential for clipboard integration.
set -g @plugin 'tmux-plugins/tmux-yank'
# In copy mode: y to copy, Y to copy cwd
tmux-fingers
tmux-fingers provides smart text picking — it highlights URLs, IP addresses, file paths, git SHAs, and other patterns in your terminal output so you can copy or open them with a single keypress.
set -g @plugin 'Morantron/tmux-fingers'
# Ctrl+b F — activate fingers mode
tmux-open
tmux-open opens highlighted text in the default application — URLs open in your browser, file paths open in your editor or file manager. Use it in copy mode to instantly act on any text you see.
set -g @plugin 'tmux-plugins/tmux-open'
# In copy mode: o to open, Ctrl+o to open in $EDITOR
tmux-fzf
Uses fzf to manage tmux sessions, windows, and panes interactively. Switch sessions, kill windows, and run commands through a powerful fuzzy search interface.
set -g @plugin 'sainnhe/tmux-fzf'
# Ctrl+b F — open fzf session/window switcher
vim-tmux-navigator
Seamlessly navigate between tmux panes and vim splits using the same hotkeys. Ideal for Neovim users who want a unified terminal and editor focus workflow.
Catppuccin
A soothing, high-contrast theme for the modern terminal. Offering high-quality flavor variations like Mocha, Frappe, and Macchiato.
set -g @plugin 'catppuccin/tmux'
set -g @catppuccin_flavor 'mocha'
Dracula Theme
The iconic Dracula color scheme for tmux — includes a beautiful status bar with widgets for CPU, RAM, battery, and weather.
set -g @plugin 'dracula/tmux'
set -g @dracula-show-powerline true
tmux-pain-control
Logical, standard key bindings for pane management. Adds intuitive bindings for splitting and resizing panes.
set -g @plugin 'tmux-plugins/tmux-pain-control'
Oh My Tmux
Oh My Tmux is a self-contained, opinionated tmux configuration framework — not a TPM plugin, but a standalone config. It provides a beautiful status bar and sane defaults out of the box, with a local override file for customization.
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s -f .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .
Powerful External Tools
These aren't plugins, but standalone applications that integrate deeply with tmux to improve performance and collaboration.
Tmuxinator
The standard Ruby-based session manager. Create complex YAML configurations to define your project windows, panes, and layout, then launch it all with a single command: tmuxinator start project.
tmate
Instant terminal sharing. Tmate is a fork of tmux that provides a unique SSH URL for your session. Perfect for remote pair programming or debugging with colleagues over a shared terminal.
Tmuxp
A Python-based session manager with advanced features like JSON/YAML configs, session freezing, and a powerful API for scripting your workspace environments.
Complete Plugin .tmux.conf Example
A ready-to-use ~/.tmux.conf with all essential plugins configured. Copy, paste, and install with Ctrl+b I.
# ── Prefix ─────────────────────────────────
set -g prefix C-b
# ── General ────────────────────────────────
set -g mouse on
set -g history-limit 50000
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
# ── Colors ─────────────────────────────────
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*256col*:Tc"
# ── Plugins ────────────────────────────────
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'dracula/tmux'
# ── Plugin Config ────────────────────────
set -g @continuum-restore 'on'
set -g @dracula-show-powerline true
set -g @dracula-plugins "cpu-usage ram-usage"
# ⚠️ Always keep this line at the very bottom
run '~/.tmux/plugins/tpm/tpm'
How to Write Your Own tmux Plugin
Any shell script can be packaged as a tmux plugin. TPM plugins follow a simple convention.
📁 Plugin Structure
A TPM plugin is a git repository with at least one .tmux script at the root. TPM sources all *.tmux files when installing. Add your key bindings, helper functions, and config in that script.
🔑 Minimal Plugin Example
Create a file myplugin.tmux and make it executable. Inside, use tmux bind-key, tmux set-option, and shell scripts to implement your feature. Push to GitHub and install via set -g @plugin 'yourname/myplugin'.
📚 Resources
Study the source of tmux-sensible — it's the simplest real plugin and an ideal starting point. The TPM plugin authoring docs cover conventions and helpers.