Psmux Plugins

July 17, 2026 · View on GitHub

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.


Quick Start

1. Install PPM (Psmux Plugin Manager)

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

2. Configure Plugins

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'

3. Install Plugins

Start psmux and press Prefix + I (capital I) to install.


Available Plugins

PluginDescriptionTmux Equivalent
ppmPlugin managertpm
psmux-sensibleSensible defaultstmux-sensible
psmux-resurrectSave/restore sessionstmux-resurrect
psmux-continuumAuto-save/restoretmux-continuum
psmux-pain-controlBetter pane navigationtmux-pain-control
psmux-vim-navigatorVim-aware prefix-less pane navigationvim-tmux-navigator
psmux-prefix-highlightPrefix key indicatortmux-prefix-highlight
psmux-batteryBattery status bartmux-battery
psmux-cpuCPU/memory status bartmux-cpu
psmux-loggingPane output loggingtmux-logging
psmux-sidebarDirectory tree sidebartmux-sidebar

Theme Plugins

ThemeDescriptionTmux Equivalent
psmux-theme-draculaDracula dark themetmux-dracula
psmux-theme-catppuccinCatppuccin pastel theme (4 flavors)catppuccin/tmux
psmux-theme-nordNord arctic themenord-tmux
psmux-theme-tokyonightTokyo Night theme (3 styles)tokyonight.nvim
psmux-theme-gruvboxGruvbox retro theme (dark/light)tmux-gruvbox
psmux-theme-warm-burnoutWarm Burnout theme (dark/light)felipefdl/warm-burnout

Key Bindings Summary

PPM (Plugin Manager)

KeyAction
Prefix + IInstall plugins
Prefix + UUpdate plugins
Prefix + MRemove unused plugins

psmux-sensible

KeyAction
Prefix + RReload config
Prefix + |Split horizontal
Prefix + -Split vertical
Shift + Left/RightPrev/next window (no prefix)

psmux-resurrect

KeyAction
Prefix + Ctrl-sSave environment
Prefix + Ctrl-rRestore environment

psmux-pain-control

KeyAction
Prefix + h/j/k/lNavigate panes (vim)
Prefix + Alt-h/j/k/lResize panes
Prefix + | or \Split horizontal
Prefix + - or _Split vertical

psmux-vim-navigator

KeyAction
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-lClear screen (restored, since Ctrl-l is claimed above)

psmux-logging

KeyAction
Prefix + Alt-oToggle logging
Prefix + Alt-pScreen capture
Prefix + Alt-iFull history capture
Prefix + Alt-cClear pane history

psmux-sidebar

KeyAction
Prefix + TabToggle sidebar
Prefix + Shift-TabToggle (focus sidebar)

psmux-battery / psmux-cpu

KeyAction
Prefix + BShow battery info
Prefix + Ctrl-cShow CPU/memory info

For Plugin Developers

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

Architecture

~/.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
  ...

How It Works

  1. ~/.psmux.conf declares plugins with set -g @plugin 'owner/repo'
  2. The final run '..ppm.ps1' line loads PPM
  3. PPM sources all installed plugins on startup
  4. Each plugin configures psmux via CLI commands (set-option, bind-key, set-hook)
  5. Prefix + I clones new plugins from GitHub

Why PowerShell?

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

License

MIT