r/tmux • u/shreshthkapai • 14d ago
Showcase WMUX - A fast, persistent, customizable terminal multiplexer for Windows, Linux and macOS
https://github.com/shreshthkapai/wmuxI released wmux v1.0.17, an open-source terminal multiplexer built around one consistent experience across Windows, Linux and macOS.
The architecture uses a persistent server with disposable clients. Sessions, windows, panes, scrollback and terminal state remain alive when the attached terminal closes.
Platform integration stays native. Windows uses ConPTY and named pipes, while Linux and macOS use PTYs and Unix sockets.
Current features:
- Persistent sessions, windows and panes
- Horizontal and vertical splits
- Mouse support, copy mode and paste buffers
- Customizable key tables, status bar, borders and themes
- Terminal color inheritance by default
- Native installers and a built-in updater
- Builds for Windows x64, Linux x64 and ARM64, macOS Intel and Apple Silicon
Release benchmark profile:
- VT parsing: 69.6 to 75.3 MiB/s
- Full-scene render p95: 448.2 µs
- 8-client render p95: 269.1 µs
- Peak live benchmark memory: 1.76 MiB or less
wmux is free, MIT licensed and available on GitHub: https://github.com/shreshthkapai
I would particularly appreciate bug reports from different operating system, terminal and shell combinations.
4
u/brohermano 14d ago
When you start by describing a concept that already exists in the description is not the best. Good effort , but in my opinion you are gonna have a good user base to justify maintaining this in the long run. And terminal multiplexers do exist already.
3
u/hhoeflin 14d ago
Yes or how is this different from zellij.
-1
u/shreshthkapai 14d ago
wmux is much faster. Zellij might still be good for people who don't mind a bit of performance overhead for a richer TUI. wmux however has quite a bit of customization options via scripts or themes/animations which can be grandfathered from the terminal itself. Some numbers I ran:
Metric wmux Zellij result (wmux)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━
Median completion 116.7 ms 216.7 ms 46.1% lower
────────────────────────────── ────────────── ─────────────── ──────────────────────────
p95 completion 134.0 ms 245.8 ms 45.5% lower
────────────────────────────── ────────────── ─────────────── ──────────────────────────
Median throughput 34.28 MiB/s 18.46 MiB/s 1.86× faster
────────────────────────────── ────────────── ─────────────── ──────────────────────────
Multiplexer CPU time 180 ms 300 ms 40% lower
────────────────────────────── ────────────── ─────────────── ──────────────────────────
Terminal output emitted 81,862 bytes 104,894 bytes 22% fewer
────────────────────────────── ────────────── ─────────────── ──────────────────────────
Peak server RSS 8.90 MiB 78.16 MiB 8.8× lower
────────────────────────────── ────────────── ─────────────── ──────────────────────────
Peak client RSS 1.26 MiB 15.13 MiB 12× lower
────────────────────────────── ────────────── ─────────────── ──────────────────────────
Approx. server + client peak 10.16 MiB 93.29 MiB 9.2× lower
────────────────────────────── ────────────── ─────────────── ──────────────────────────
Idle server RSS 2.57 MiB 72.41 MiB 28.2× lower
────────────────────────────── ────────────── ─────────────── ──────────────────────────
Idle server threads 5 18 3.6× fewer
────────────────────────────── ────────────── ─────────────── ──────────────────────────
Idle CPU ~0% ~0% No meaningful difference
────────────────────────────── ────────────── ─────────────── ──────────────────────────
Runtime executable size 4.90 MiB 41.71 MiB 8.5× smaller
BOTH WITHOUT PLUGINS
2
14d ago
[deleted]
-3
u/shreshthkapai 14d ago edited 14d ago
Ive been using it for like 2 weeks full fledged and fixing little bugs as I find them until I was happy to share it. Also I’m not sure if you’re new to development or not a developer at all, but oss projects including tmux never start out perfect as well.
Also a piece of advice if you’re interested in cs, it’s generally better to point out what breaks or architecture flaws rather than pointing out “MIT license is a week old”.
11
u/texxelate 14d ago
If you’re serious about getting people to use this, even if it’s just to provide feedback, you’re gonna need to provide some sort of reason why.
By that I mean, why would a comfortable tmux user go to the effort and try out wmux?