Both Windows Terminal Multiplexer (wtmux) and psmux are native Windows terminal multiplexers that bring tmux-like functionality without WSL. This page compares the two projects.

Overview

Aspect psmux wtmux
Language Rust C# (Native AOT)
Binary size Small, single binary ~3.5 MB, single binary
Runtime required None None (Native AOT)
PTY layer Windows ConPTY Windows ConPTY
IPC model Client–server Client–server
License MIT
Minimum Windows Windows 10 Windows 10 2004+

Installation

Method psmux wtmux
Microsoft Store ✅ (MSIX packaged)
WinGet winget install psmux ❌ (planned)
Scoop
Chocolatey

psmux has broader package manager coverage today. wtmux is distributed through the Microsoft Store using MSIX packaging with execution alias registration.

Feature Comparison

Feature psmux wtmux
Sessions (create/list/attach/detach)
Windows
Pane splitting
Pane navigation
Pane zoom
Status bar
Mouse support
Config file (.tmux.conf) ✅ (subset)
Custom key bindings
256/truecolor
Unicode / wide characters
Copy mode
Layouts (tiled, etc.)
Themes Partial (status bar only)
Plugin system ✅ (COM + built-in)
MSIX AppExtension discovery
Ships tmux alias

Architecture Differences

Both projects use the Windows ConPTY API and a client–server architecture. Key differences:

  • Language: psmux is written in Rust with zero-cost abstractions. wtmux is C# compiled with Native AOT — both produce single-file native binaries with no runtime dependency.
  • Plugin system: wtmux has a COM-based plugin API with MSIX AppExtension discovery, allowing language-agnostic plugins. psmux does not expose a plugin API.
  • Packaging: psmux integrates with community package managers (winget, scoop, choco, cargo). wtmux uses MSIX packaging with Windows execution alias and targets the Microsoft Store.
  • tmux compatibility: psmux aims for high tmux command compatibility and ships a tmux alias. wtmux supports a subset of tmux config syntax but does not alias itself as tmux.

Unique to wtmux

  • COM plugin API — Language-agnostic extensibility via [GeneratedComInterface]
  • MSIX AppExtension discovery — Plugins discovered through Windows app extensions
  • Built-in plugins — Prefix highlight, session save/restore included
  • OSC 9 support — Desktop notifications and progress bar sequences
  • Microsoft Store distribution — MSIX packaging for Store publishing

Unique to psmux

  • Broad package manager support — winget, scoop, choco, cargo
  • tmux alias — Can be used as a drop-in tmux command
  • Higher tmux compatibility — Supports more tmux commands and options
  • Copy mode — Scrollback and text selection
  • Themes — Full theming support

When to Use Which

  • Use psmux if you want the highest tmux compatibility on Windows, need copy mode, or prefer installing via winget/scoop/choco.
  • Use wtmux if you want a COM-based plugin system, MSIX packaging, or plan to extend the multiplexer with third-party plugins via AppExtension.