A full-featured TUI plugin manager for tmux β the modern alternative to TPM.
Browse, install, remove, update, and theme your tmux β all from a beautiful terminal interface.
cargo install --path . β tppanel
TPM works, but it's a shell script with no UI, no search, no browsing. Tmux Plugin Panel gives you a complete graphical plugin manager β think "app store for tmux" β right inside your terminal:
- Browse a curated registry of 40+ plugins, sorted by category and stars
- Search GitHub for any tmux plugin in real-time
- One-key install/remove/update β no editing config files manually
- Theme gallery β preview and switch tmux themes instantly
- Settings editor β toggle tmux options (mouse, status bar, keybindings) without memorizing
set -gsyntax - Auto-detection β finds tmux (and PSMux) installations, versions, and config files automatically
- Config management β creates, parses, and updates
tmux.conf/psmux.conffor you - Offline fallback β ships with an embedded plugin registry; works without internet
| Tab | What it does |
|---|---|
| β Dashboard | Quick-action cards for common tasks. Browse plugins, themes, configure settings, reset to defaults, manage registries. |
| Browse | Category sidebar + plugin list + detail panel. Search, filter by compat, install with Enter. |
| Installed | See all installed plugins. Update one (u), update all (U), remove (x), clean orphans (C). |
| Themes | Dedicated gallery for tmux themes. Install, activate, switch β one keypress. |
| Config | Full settings editor. Toggle booleans, cycle choices, edit values inline. Grouped by category. Reset individual settings or factory reset. |
- Rust toolchain (1.70+): rustup.rs
- tmux installed on your system (or PSMux)
- git (for cloning plugins)
# Clone and build
git clone https://github.com/marlocarlo/Tmux-Plugin-Panel.git
cd Tmux-Plugin-Panel
cargo build --release
# Run it
./target/release/tppanelOr install directly:
cargo install --path .
tppanel- Tmux Plugin Panel auto-detects your tmux installation and config file
- If no
tmux.confexists, presscto create one - Browse plugins β press
Enterto install - Press
Rto reload tmux with your new plugins
| Key | Action |
|---|---|
q |
Quit |
Tab / Shift+Tab |
Switch tabs |
1β5 |
Jump to tab (1=Dashboard, 2=Browse, 3=Installed, 4=Themes, 5=Config) |
β β / j k |
Navigate list (wraps around) |
β β / h l |
Switch category (Browse) / settings group (Config) |
Enter |
Install plugin / toggle setting / dashboard action |
x / d |
Remove plugin (with confirmation) |
u |
Update selected plugin |
U |
Update all plugins |
C |
Clean orphaned plugins |
/ |
Search plugins |
f |
Toggle compat filter (tmux / psmux) |
r |
Rescan config |
R |
Reload tmux config (tmux source-file) |
c |
Create config / cycle configs |
Backspace |
Reset single setting to default (Config tab) |
D |
Reset all settings to defaults (Config tab) |
Ctrl+D |
Factory reset entire config (Config tab) |
p |
Preview plugin/theme |
J / K |
Scroll README detail |
? |
Show help |
src/
βββ main.rs # Entry point, terminal setup, event loop
βββ app.rs # Application state machine (5 tabs, selections, data)
βββ ui.rs # TUI rendering with ratatui (dashboard + 4 tabs + overlays)
βββ registry.rs # Plugin registry β embedded + external sources, search/filter
βββ plugins.rs # Git-based install/remove/update engine
βββ themes.rs # Theme management (install, activate, switch)
βββ config.rs # tmux.conf / psmux.conf parser, editor & factory reset
βββ detect.rs # Auto-detection of tmux/PSMux binaries & configs
βββ github.rs # GitHub API client for search & repo info
Tmux Plugin Panel ships with a curated registry of popular tmux plugins covering:
- β Essential β TPM, tmux-sensible, tmux-256color
- π¨ Themes β Catppuccin, Dracula, Nord, Tokyo Night, Rose Pine, and more
- πΎ Session β tmux-resurrect, tmux-continuum
- π§ Navigation β vim-tmux-navigator, tmux-fzf
- π Status Bar β tmux-cpu, tmux-battery, tmux-net-speed
- π Clipboard β tmux-yank
- π§ Utility β tmux-fingers, tmux-open, tmux-logging
The registry is fetched from GitHub on startup and cached locally. An embedded copy is compiled into the binary as a fallback.
You can extend the built-in registry by adding external sources (local JSON files or remote URLs). See REGISTRY_FORMAT.md for the full schema and setup instructions.
Registry sources are configured in ~/.config/tppanel/registry_sources.json.
- Rust β safe, fast, no runtime
- ratatui β modern terminal UI framework
- crossterm β cross-platform terminal manipulation
- tokio β async runtime for GitHub API calls
- reqwest β HTTP client
Tmux Plugin Panel uses the standard TPM plugin syntax in your tmux config:
# ~/.tmux.conf
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'catppuccin/tmux'
set -g @plugin 'tmux-plugins/tmux-resurrect'Plugins are installed to ~/.tmux/plugins/ by default.
| Variable | Purpose |
|---|---|
GITHUB_TOKEN or GH_TOKEN |
Authenticate GitHub API requests (higher rate limits) |
MIT β see Cargo.toml.
Contributions welcome! Feel free to open issues or submit pull requests.
- Fork the repo
- Create a feature branch
- Make your changes
- Submit a PR
Built with π¦ Rust and β€οΈ for the terminal
