Reproducible tmux plugin management
for engineers who live on servers.
curl -fsSL https://muxforge.dev/install.sh | sh
TPM was built in 2013 for a different era. It installs plugins. That's it.
muxforge manages your tmux environment — the same way Terraform manages infrastructure.
~/.config/tmux/tmux.conf and ~/.tmux.confMac, Linux, servers, containers
$ curl -fsSL https://muxforge.dev/install.sh | sh
macOS and Linux
$ brew install TechAlchemistX/muxforge/muxforge
Direct download
github.com/TechAlchemistX/muxforge/releases
Mac, Linux, servers
$ curl -fsSL https://muxforge.dev/uninstall.sh | sh
Purge config, then remove binary
$ muxforge purge
$ brew uninstall muxforge
Plugin directories in the plugins folder are kept by default. Pass --purge-plugins to remove them too:
curl curl -fsSL https://muxforge.dev/uninstall.sh | sh -s -- --purge-plugins
brew muxforge purge --purge-plugins
# Get your tmux.conf in place, then:
$ curl -fsSL https://muxforge.dev/install.sh | sh
$ muxforge install
muxforge will find your tmux.conf, migrate any existing @plugin declarations, clone all plugins, and write your lock file.
Your tmux.conf will contain a managed block:
# --- muxforge plugins (managed) ---
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'christoomey/vim-tmux-navigator'
# --- end muxforge ---
run 'muxforge load'
Everything inside the managed block is muxforge's territory. Everything outside is yours.
| Command | What it does |
|---|---|
muxforge install | Install all plugins, respect lock file versions |
muxforge install <plugin> | Add a plugin, update config and lock file |
muxforge remove <plugin> | Remove a plugin, update config and lock file |
muxforge update | Update all plugins and lock file |
muxforge update <plugin> | Update a specific plugin |
muxforge list | Show installed plugins with pinned versions |
muxforge sync | Reconcile config, plugins, and lock file |
| Command | What it does |
|---|---|
muxforge migrate | Migrate from TPM in one step |
muxforge load | Source managed plugins into the current tmux session |
| Command | What it does |
|---|---|
muxforge purge | Remove muxforge markers, bootstrap, and lock file from tmux.conf |
muxforge purge --purge-plugins | Same as above, plus delete the plugins directory |
All commands support --help. Commands that modify state also support --dry-run.
Already using TPM? One command.
$ muxforge migrate
muxforge finds your existing @plugin declarations, moves them into the managed block, resolves current versions, and writes your lock file. Your plugins stay exactly where they are. The TPM bootstrap line and ~/.tmux/plugins/tpm are removed automatically.