If you've ever struggled with managing tmux plugins, you're not alone. I've been using tmux for years, and while TPM (tmux plugin manager) gets the job done, I always felt like something was missing - a modern interface, better feedback, cleaner configuration, and more reliable operations.
So this weekend, I decided to scratch my own itch and built coffee.tmux - a modern, intuitive tmux plugin manager that brings the convenience of modern tooling to tmux plugin management.
The Problem with Current Solutions
Let's be honest: managing tmux plugins has always been a bit clunky. Most solutions require you to:
- Clutter your
.tmux.conf
with plugin declarations - Deal with minimal feedback during installations
- Hope nothing breaks when updating plugins
I wanted something better - something with a rich terminal interface, atomic operations, and configuration that doesn't make my tmux config look like spaghetti.
Introducing coffee.tmux
coffee.tmux is a complete reimagining of tmux plugin management. Here's what makes it special:
🚀 Modern Interface
The star of the show is the rich Terminal UI (TUI) with tabbed navigation. Launch it with your tmux prefix + C and you get:
- Home tab: View all installed and enabled plugins
- Install tab: Browse and install plugins from your config
- Update tab: Check for updates and upgrade selectively
- Remove tab: Clean uninstall of plugins
Navigation is intuitive—use j
/k
or arrow keys to move around, Space
to select, and follow the on-screen controls.
But if you prefer the command line, the CLI is equally powerful:
coffee install # Install all configured plugins
coffee update # Check for updates
coffee upgrade # Upgrade all plugins
coffee upgrade tmux-sensible # Upgrade specific plugin
coffee list # List installed plugins
coffee info tmux-sensible # Show detailed plugin info
📦 Smart Plugin Management
This is where coffee.tmux really shines. Instead of cramming plugin configs into your .tmux.conf
, you create clean YAML files in ~/.config/tmux/coffee/plugins/
:
name: "tmux-resurrect"
url: "tmux-plugins/tmux-resurrect"
local: False
tag: "v3.0.0"
skip_auto_update: False
source: ["resurrect.tmux"]
The benefits are immediate:
- Version locking: Pin plugins to specific versions and rollback when needed
- Selective updates: Choose which plugins auto-update
- Clean separation: Keep your tmux config focused on tmux, not plugin management
⚡ Performance & Reliability
Under the hood, coffee.tmux is built for reliability:
- Asynchronous operations: Install and update multiple plugins simultaneously with rich progress feedback
- Git-native: Direct repository cloning, tag checkout, and branch switching
- Atomic transactions: Failed operations don't break your existing setup
- Enable/disable without reinstall: Toggle plugins on and off instantly
Getting Started
Installation is straightforward:
# Clone and setup
git clone https://github.com/PraaneshSelvaraj/coffee.tmux ~/.local/share/coffee
cd ~/.local/share/coffee
pip install -r requirements.txt
# Add to PATH
export PATH="$HOME/.local/share/coffee/bin:$PATH"
Add this line to your shell config (.bashrc
, .zshrc
, etc.) to make it permanent.
Then, add one line to your .tmux.conf
:
source-file ~/.local/share/coffee/coffee.tmux
Reload your tmux config and you're ready:
tmux source-file ~/.tmux.conf
coffee install # Install configured plugins
Why I Built This
As developers, we spend countless hours in the terminal. Our tools should be as polished and reliable as the applications we build. tmux is incredible, but its ecosystem deserved better tooling.
I wanted coffee.tmux to feel modern-like using a well-designed package manager for any other language or platform. The TUI should be intuitive, operations should be fast and reliable, and configuration should be clean and maintainable.
Technical Deep Dive
For those curious about the implementation:
- Python over shell scripts: Better error handling, async operations, and rich terminal libraries
- Rich and Textual: For the beautiful TUI and progress feedback
- Git-native operations: No dependency on external tools beyond git itself
- Atomic design: Operations either succeed completely or leave your setup unchanged
The entire project is structured to be maintainable and extensible—contributions are very welcome!
What's Next
I'm actively developing coffee.tmux and have some exciting features planned:
- Plugin search and discovery
- Theme and configuration templates
- Integration with popular tmux configurations
- Performance optimizations for large plugin sets
The project is open source under the MIT license, and I'd love to see what the community builds with it.
Try It Out
If you're a tmux user tired of clunky plugin management, give coffee.tmux a try. It takes less than 5 minutes to set up, and I think you'll find the experience much more pleasant than traditional plugin managers.
GitHub: https://github.com/PraaneshSelvaraj/coffee.tmux
Star the repo if you find it useful, and don't hesitate to open issues or contribute. I'm particularly interested in hearing about your use cases and what features would make your tmux workflow even better.
Have you tried coffee.tmux? What's your current tmux plugin setup? Let me know in the comments - I'd love to hear about your terminal workflows!
P.S. The name isn't just cute - good plugin management should be as essential to your development workflow as your morning coffee ☕
Top comments (0)