The official plugin ecosystem for psmux — the native Windows tmux built in Rust.
Ports of the most popular tmux plugins, reimplemented in PowerShell for Windows.
git clone https://github.com/psmux/psmux-plugins.git "$env:TEMP\psmux-plugins" ; Copy-Item "$env:TEMP\psmux-plugins\ppm" "$env:USERPROFILE\.psmux\plugins\ppm" -Recurse ; Remove-Item "$env:TEMP\psmux-plugins" -Recurse -Force
Add to your ~/.psmux.conf:
# ===========================================
# Plugins
# ===========================================
set -g @plugin 'psmux-plugins/ppm'
set -g @plugin 'psmux-plugins/psmux-sensible'
set -g @plugin 'psmux-plugins/psmux-resurrect'
set -g @plugin 'psmux-plugins/psmux-pain-control'
# Initialize PPM (keep at the very bottom)
run '~/.psmux/plugins/ppm/ppm.ps1'
Start psmux and press Prefix + I (capital I) to install.
| Key | Action |
|---|
Prefix + I | Install plugins |
Prefix + U | Update plugins |
Prefix + M | Remove unused plugins |
| Key | Action |
|---|
Prefix + R | Reload config |
Prefix + | | Split horizontal |
Prefix + - | Split vertical |
Shift + Left/Right | Prev/next window (no prefix) |
| Key | Action |
|---|
Prefix + Ctrl-s | Save environment |
Prefix + Ctrl-r | Restore environment |
| Key | Action |
|---|
Prefix + h/j/k/l | Navigate panes (vim) |
Prefix + Alt-h/j/k/l | Resize panes |
Prefix + | or \ | Split horizontal |
Prefix + - or _ | Split vertical |
| Key | Action |
|---|
Ctrl-h/j/k/l (no prefix) | Navigate panes, or pass through to vim/nvim/fzf if it's the active pane's program |
Ctrl-\ (no prefix) | Previous pane / passed through to vim |
Prefix + Ctrl-l | Clear screen (restored, since Ctrl-l is claimed above) |
| Key | Action |
|---|
Prefix + Alt-o | Toggle logging |
Prefix + Alt-p | Screen capture |
Prefix + Alt-i | Full history capture |
Prefix + Alt-c | Clear pane history |
| Key | Action |
|---|
Prefix + Tab | Toggle sidebar |
Prefix + Shift-Tab | Toggle (focus sidebar) |
| Key | Action |
|---|
Prefix + B | Show battery info |
Prefix + Ctrl-c | Show CPU/memory info |
See the Plugin Developer Guide for:
- How to create psmux plugins from scratch
- How to port existing tmux plugins to psmux
- Complete bash-to-PowerShell translation reference
- Plugin API reference and best practices
- Testing and publishing guide
~/.psmux/plugins/
ppm/ # Plugin manager
ppm.ps1 # Main entry point
scripts/
install_plugins.ps1
update_plugins.ps1
clean_plugins.ps1
psmux-sensible/ # Each plugin gets its own directory
psmux-sensible.ps1
psmux-resurrect/
psmux-resurrect.ps1
...
~/.psmux.conf declares plugins with set -g @plugin 'owner/repo'
- The final
run '..ppm.ps1' line loads PPM
- PPM sources all installed plugins on startup
- Each plugin configures psmux via CLI commands (
set-option, bind-key, set-hook)
Prefix + I clones new plugins from GitHub
psmux is a native Windows application. Its plugins use PowerShell because:
- Native integration:
Set-Clipboard, Get-CimInstance, Windows APIs
- No dependencies: PowerShell 7 comes with psmux, no bash/cygwin needed
- Same power: PowerShell can do everything bash scripts do
- Windows-first: File paths, process management, scheduled tasks all just work
MIT