GitHub - psmux/psmux: Tmux on Windows Powershell - tmux for PowerShell, Windows Terminal, cmd.exe. Includes psmux, pmux, and tmux commands. This is native High-Performance Tmux designed for Windows in Rust ๐Ÿฆ€

GitHub

4 min read Original article โ†—
โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ•—            โ•‘
โ•‘   โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•            โ•‘
โ•‘   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ•”โ•             โ•‘
โ•‘   โ–ˆโ–ˆโ•”โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•—             โ•‘
โ•‘   โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•”โ• โ–ˆโ–ˆโ•—            โ•‘
โ•‘   โ•šโ•โ•     โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ•     โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•  โ•šโ•โ•            โ•‘
โ•‘     Born in PowerShell. Made in Rust. ๐Ÿฆ€                 โ•‘
โ•‘          Terminal Multiplexer for Windows                 โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

The native Windows tmux. Born in PowerShell, made in Rust.
Full mouse support ยท tmux themes ยท tmux config ยท 90+ commands ยท blazing fast

Install ยท Usage ยท Use Cases ยท Claude Code ยท Features ยท Compatibility ยท Performance ยท Plugins ยท Keys ยท Scripting ยท Config ยท Mouse/SSH ยท FAQ ยท Related Projects


The real tmux for Windows. Not a port, not a wrapper, not a workaround.

psmux is a native Windows terminal multiplexer built from the ground up in Rust. It uses Windows ConPTY directly, speaks the tmux command language, reads your .tmux.conf, and supports tmux themes. All without WSL, Cygwin, or MSYS2.

๐Ÿ’ก Tip: psmux ships with tmux and pmux aliases. Just type tmux and it works!

๐Ÿ‘€ On Windows ๐Ÿ‘‡

psmux in action

Installation

Using WinGet

Using Cargo

This installs psmux, pmux, and tmux binaries to your Cargo bin directory.

Using Scoop

scoop bucket add psmux https://github.com/psmux/scoop-psmux
scoop install psmux

Using Chocolatey

From GitHub Releases

Download the latest .zip from GitHub Releases and add to your PATH.

From Source

git clone https://github.com/psmux/psmux.git
cd psmux
cargo build --release

Built binaries:

target\release\psmux.exe
target\release\pmux.exe
target\release\tmux.exe

Docker (build environment)

A ready-made Windows container with Rust + MSVC + SSH for building psmux:

cd docker
docker build -t psmux-dev .
docker run -d --name psmux-dev -p 127.0.0.1:2222:22 -e ADMIN_PASSWORD=YourPass123! psmux-dev
ssh ContainerAdministrator@localhost -p 2222

See docker/README.md for full details.

Requirements

  • Windows 10 or Windows 11
  • PowerShell 7+ (recommended) or cmd.exe

Why psmux?

If you've used tmux on Linux/macOS and wished you had something like it on Windows, this is it. Split panes, multiple windows, session persistence, full mouse support, tmux themes, 90+ tmux-compatible commands (run psmux list-commands for the live list), 140+ format variables, 53 vim copy-mode keys. Your existing .tmux.conf works. Full details: docs/features.md ยท docs/compatibility.md

Usage

Use psmux, pmux, or tmux. They're identical:

psmux                        # Start a new session
psmux new-session -s work    # Named session
psmux ls                     # List sessions
psmux attach -t work         # Attach to a session
psmux list-commands          # List every command psmux accepts
psmux --help                 # Show help

Claude Code Agent Teams

psmux has first-class support for Claude Code agent teams. When Claude Code runs inside a psmux session, teammate agents automatically spawn in separate tmux panes instead of running in-process.

psmux new-session -s work    # Start a psmux session
claude                       # Run Claude Code, agent teams just work

No extra configuration needed. Full guide: docs/claude-code.md

Documentation

Topic Description
Windows Use Cases Practical Windows scenarios: startup services, AI agents, dashboards, remote admin
Features Full feature list: mouse, copy mode, layouts, format engine
Compatibility tmux command/config compatibility matrix
Performance Benchmarks and optimization details
Key Bindings Default keys and customization
Scripting Commands, hooks, targets, pipe-pane
Command Reference Per-command flag tables
Configuration Config files, options, environment variables
Multi-Shell Running pwsh, cmd, Git Bash, WSL, and nushell side by side
Pane Titles Pane titles, border labels, and why pwsh shows a path
Chooser Preview Live preview pane in choose-tree and choose-session
Warm Sessions The pre-spawned server behind instant session creation
Diagnostics Debug logs, crash logs, state files, what to attach to a bug report
Plugins & Themes Plugin ecosystem: Catppuccin, Dracula, Nord, and more
Mouse Over SSH SSH mouse support and Windows version requirements
Control Mode The -C / -CC wire protocol for IDE and plugin authors
iTerm2 Control Mode Driving psmux from the iTerm2 tmux gateway over SSH
Developer Integration Driving psmux from Python, Node.js, Go, Rust, and libtmux
Claude Code Agent teams integration guide
FAQ Common questions and answers

Related Projects

License

MIT

Contributing

Contributions welcome: bug reports, PRs, docs, and test scripts via GitHub Issues.

Filing a bug? See docs/diagnostics.md for the logs and state files to attach.

If psmux helps your Windows workflow, consider giving it a โญ on GitHub!

psmux in Numbers

psmux live statistics: stars, forks, contributors, companies, universities and countries


Made with โค๏ธ for PowerShell using Rust ๐Ÿฆ€