Skip to content

A full-fledged TUI plugin manager for tmux β€” the modern alternative to TPM. Browse, install, remove, update plugins and themes from a beautiful terminal interface.

Notifications You must be signed in to change notification settings

marlocarlo/Tmux-Plugin-Panel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust Ratatui MIT License

⌨️ Tmux Plugin Panel

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

Tmux Plugin Panel screenshot


Why Tmux Plugin Panel?

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 -g syntax
  • Auto-detection β€” finds tmux (and PSMux) installations, versions, and config files automatically
  • Config management β€” creates, parses, and updates tmux.conf / psmux.conf for you
  • Offline fallback β€” ships with an embedded plugin registry; works without internet

Features at a Glance

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.

Quick Start

Prerequisites

  • Rust toolchain (1.70+): rustup.rs
  • tmux installed on your system (or PSMux)
  • git (for cloning plugins)

Install

# Clone and build
git clone https://github.com/marlocarlo/Tmux-Plugin-Panel.git
cd Tmux-Plugin-Panel
cargo build --release

# Run it
./target/release/tppanel

Or install directly:

cargo install --path .
tppanel

First Run

  1. Tmux Plugin Panel auto-detects your tmux installation and config file
  2. If no tmux.conf exists, press c to create one
  3. Browse plugins β†’ press Enter to install
  4. Press R to reload tmux with your new plugins

Keybindings

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

Architecture

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

Plugin Registry

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.

Custom Registry

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.

Tech Stack

  • 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

Configuration

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.

Environment Variables

Variable Purpose
GITHUB_TOKEN or GH_TOKEN Authenticate GitHub API requests (higher rate limits)

License

MIT β€” see Cargo.toml.

Contributing

Contributions welcome! Feel free to open issues or submit pull requests.

  1. Fork the repo
  2. Create a feature branch
  3. Make your changes
  4. Submit a PR

Built with πŸ¦€ Rust and ❀️ for the terminal

About

A full-fledged TUI plugin manager for tmux β€” the modern alternative to TPM. Browse, install, remove, update plugins and themes from a beautiful terminal interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages