Introduction
psmux brings tmux-style terminal multiplexing to Windows natively. Built in Rust, it provides split panes, multiple windows, and persistent sessions directly in PowerShell, Windows Terminal, and cmd.exe without requiring WSL or Cygwin.
What psmux Does
- Splits the terminal into multiple panes horizontally and vertically
- Manages multiple windows within a single terminal session
- Persists sessions that survive terminal disconnects
- Provides tmux-compatible keybindings for easy adoption
- Runs natively on Windows without WSL or Unix compatibility layers
Architecture Overview
psmux is implemented in Rust using the Windows Console API and ConPTY for pseudo-terminal support. Each pane runs an independent shell process with its own I/O streams. The multiplexer manages rendering, input routing, and session state in a single lightweight process. Session persistence uses named pipes for client-server communication.
Self-Hosting & Configuration
- Install via cargo:
cargo install psmux - Or install via Scoop package manager
- Configure keybindings in
~/.psmux/config.toml - Set default shell (PowerShell, cmd, or pwsh) in config
- Customize status bar appearance and colors
Key Features
- Native Windows terminal multiplexer with no Unix dependencies
- tmux-compatible keybindings for muscle memory transfer
- Session persistence across terminal disconnects
- Works in PowerShell, Windows Terminal, and cmd.exe
- Lightweight single binary with fast startup
Comparison with Similar Tools
- tmux — Unix only; psmux brings the same workflow to native Windows
- Windows Terminal tabs — Basic tabs only; psmux adds split panes and session persistence
- Zellij — Cross-platform but requires WSL on Windows; psmux is native
- Screen — Unix terminal multiplexer; psmux is its Windows-native equivalent
FAQ
Q: Does it work without Windows Terminal? A: Yes, psmux works in any Windows console including cmd.exe and ConEmu, though Windows Terminal provides the best rendering.
Q: Are tmux keybindings supported? A: Yes, the default keybindings mirror tmux. You can customize them in the config file.
Q: Can I use it with WSL? A: psmux is designed for native Windows shells. For WSL, use tmux directly inside the Linux environment.
Q: Does it support mouse interactions? A: Yes, mouse support for pane selection and resizing is available in compatible terminals.