You Don't Need WSL Just for tmux
I've seen this conversation a hundred times:
"How do I get tmux on Windows?"
"Install WSL"
And sure, WSL works. But running an entire Linux kernel + distro just to split your terminal? That's like buying a car because you need a cup holder.
What if tmux Just... Worked on Windows?
cargo install psmux
tmux new-session -s work
That's it. psmux gives you tmux — the actual tmux command — running natively on Windows. Not through WSL. Not through Cygwin. A native Windows binary.
Everything You Know Transfers
If you know tmux, you know psmux. The keybindings are identical:
| tmux | psmux | What it does |
|---|---|---|
Ctrl+b % |
Ctrl+b % |
Split horizontal |
Ctrl+b " |
Ctrl+b " |
Split vertical |
Ctrl+b d |
Ctrl+b d |
Detach |
Ctrl+b c |
Ctrl+b c |
New window |
Ctrl+b [ |
Ctrl+b [ |
Copy mode |
tmux ls |
tmux ls |
List sessions |
tmux attach -t x |
tmux attach -t x |
Reattach |
Your .tmux.conf works too:
set -g prefix C-a
set -g mouse on
set -g base-index 1
bind-key -T prefix h split-window -h
bind-key -T prefix v split-window -v
psmux reads ~/.tmux.conf automatically (along with ~/.psmux.conf and ~/.psmuxrc).
Feature Parity
psmux isn't a toy. It's a serious tmux implementation:
- Split panes — horizontal and vertical
- Multiple windows with tabbed navigation
- Session management — create, detach, reattach, kill, rename
- Mouse support — resize panes, click tabs
- Copy mode — vim-like scrollback with visual selection
- Synchronized panes — type in multiple panes simultaneously
- Status bar — full tmux format variable support (#S, #I, #W, etc.)
- Theming — fg, bg, bold, dim, italics, etc.
- Hooks — run commands on events
- Layouts — even-horizontal, even-vertical, tiled, main-horizontal
- Format engine — 100+ tmux-compatible variables
-
Config file — drop-in
.tmux.confcompatible
The WSL Tax
Here's what you pay for tmux-via-WSL:
| Cost | Impact |
|---|---|
| ~2GB disk space | WSL distribution + kernel |
| Memory overhead | VM running even when idle |
| Filesystem bridge | Slow Windows file access from WSL |
| Path translation |
/mnt/c/Users/... ↔ C:\Users\...
|
| Port forwarding |
localhost sometimes doesn't work |
| Can't run Windows apps | Native Windows tools don't work in WSL panes |
| Separate package management |
apt for WSL, winget/choco/scoop for Windows |
With psmux: 0 overhead. Native Windows paths. Native tools. One system.
Install Options
# Cargo (recommended)
cargo install psmux
# Scoop
scoop install https://raw.githubusercontent.com/marlocarlo/psmux/master/scoop/psmux.json
# Chocolatey
choco install psmux
# All three install psmux, pmux, AND tmux commands
Related: The PS Suite
psmux is part of a trio of Windows-native TUI tools:
- psmux — tmux for Windows → https://github.com/marlocarlo/psmux
- pstop — htop for Windows → https://github.com/marlocarlo/pstop
- psnet — Network monitor → https://github.com/marlocarlo/psnet
All Rust, all single-binary, all zero-dependency.
Are you using WSL just for tmux? Try psmux and let me know if it replaces your workflow!
Top comments (0)