Plugin Ecosystem

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.

1

Clone TPM

bash

$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

2

Add TPM to your ~/.tmux.conf

Add plugin declarations near the top, and the TPM initializer at the very bottom of your config:

~/.tmux.conf

# 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'

3

Reload config and install

bash

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

Session Persistence

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.

~/.tmux.conf

set -g @plugin 'tmux-plugins/tmux-resurrect'

# Ctrl+b Ctrl+s — Save session

# Ctrl+b Ctrl+r — Restore session

Auto-Save

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.

~/.tmux.conf

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'

Defaults

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.

~/.tmux.conf

set -g @plugin 'tmux-plugins/tmux-sensible'

Clipboard

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.

~/.tmux.conf

set -g @plugin 'tmux-plugins/tmux-yank'

# In copy mode: y to copy, Y to copy cwd

Smart Picking

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.

~/.tmux.conf

set -g @plugin 'Morantron/tmux-fingers'

# Ctrl+b F — activate fingers mode

Launcher

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.

~/.tmux.conf

set -g @plugin 'tmux-plugins/tmux-open'

# In copy mode: o to open, Ctrl+o to open in $EDITOR

Fuzzy Finder

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.

~/.tmux.conf

set -g @plugin 'sainnhe/tmux-fzf'

# Ctrl+b F — open fzf session/window switcher

Vim Integration

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.

~/.tmux.conf

set -g @plugin 'christoomey/vim-tmux-navigator'

# Navigates with Ctrl+h/j/k/l across Vim & Tmux

Theme

Catppuccin

A soothing, high-contrast theme for the modern terminal. Offering high-quality flavor variations like Mocha, Frappe, and Macchiato.

~/.tmux.conf

set -g @plugin 'catppuccin/tmux'

set -g @catppuccin_flavor 'mocha'

Theme

Dracula Theme

The iconic Dracula color scheme for tmux — includes a beautiful status bar with widgets for CPU, RAM, battery, and weather.

~/.tmux.conf

set -g @plugin 'dracula/tmux'

set -g @dracula-show-powerline true

Management

tmux-pain-control

Logical, standard key bindings for pane management. Adds intuitive bindings for splitting and resizing panes.

~/.tmux.conf

set -g @plugin 'tmux-plugins/tmux-pain-control'

Framework

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.

bash — install Oh My Tmux

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

Automation

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.

Collaboration

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.

Automation

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.

~/.tmux.conf — complete example

# ── 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.