Windows Terminal Multiplexer (wtmux) is inspired by tmux and aims for a familiar experience on Windows. This page compares the two, highlighting what’s shared, what’s different, and what’s not yet implemented.

Architecture

Aspect tmux wtmux
Platform Unix/Linux/macOS Windows 10 2004+
Language C C# (Native AOT)
PTY layer Unix pseudo-terminals Windows ConPTY API
IPC Unix domain sockets Named pipes
Binary size ~1 MB (varies) ~3.5 MB (single file, no runtime)
Runtime None None (Native AOT)

Both use a client–server model: a background server manages sessions, and thin clients connect to render output.

Feature Comparison

Supported in wtmux

Feature tmux wtmux Notes
Sessions (create/list/attach/detach/kill) Same CLI syntax
Windows (create/switch/rename) Same prefix keys
Pane splitting (horizontal/vertical) Same key bindings
Pane navigation (arrow keys)  
Pane zoom prefix z
Status bar Configurable format, colors, position
Mouse support Modes 1000/1002/1003
Config file Reads ~/.tmux.conf (subset)
Custom key bindings bind / unbind
256-color and truecolor  
Unicode / wide characters CJK, emoji
Window title (OSC 0/1/2)  
Automatic window rename  
Plugin system Plugins via run-shell COM + built-in Different architecture

Not yet implemented in wtmux

Feature tmux wtmux Notes
Copy mode / scrollback Planned
Pane resize  
Layouts (tiled, even-horizontal, etc.) wtmux uses binary tree only
Command-line mode (: prompt)  
Scripting / send-keys  
Hooks  
if-shell / run-shell conditionals Partial run-shell works; if-shell is limited
Window/pane selection UI  
Buffer/paste buffers  
Environment variable passing  
SSH / remote sessions tmux is commonly used over SSH

Configuration Compatibility

wtmux reads ~/.wtmux.conf or ~/.tmux.conf using a subset of tmux configuration syntax. Supported directives include:

  • set -g — Global options (prefix, default-shell, mouse, status bar, etc.)
  • bind / unbind — Key bindings
  • set -g status-left / status-right — Format strings with a subset of variables
  • run-shell — Execute commands at config load time

Many tmux options are silently ignored if not supported. Complex tmux configs will likely need adaptation.

See Configuration for the full list of supported options.

Unique to wtmux

  • Native AOT compilation — Single-file native binary, no .NET runtime required
  • MSIX packaging — Install via Windows execution alias
  • COM plugin API — Language-agnostic extensibility with MSIX AppExtension discovery
  • Built-in plugins — Prefix highlight, session save/restore included out of the box
  • ConPTY integration — Uses the modern Windows pseudo-console API directly
  • OSC 9 support — Desktop notifications and progress bar sequences

When to Use Which

  • Use tmux if you’re on Linux/macOS, need SSH session persistence, rely on copy mode, or need the full tmux feature set.
  • Use wtmux if you want a native Windows terminal multiplexer without WSL, prefer Native AOT performance, or want COM-based plugin extensibility.