AI controls the real browser, not a screenshot of one.
Claude, Codex and Gemini drive a live Chromium tab through CDP. They click, type, scroll, read DOM. wmux just routes the bytes — your agent does the work.
Split terminals, browser automation, MCP integration — without WSL. Built for the new shape of coding.
wmux is a Windows-native, multi-pane terminal designed around AI coding agents. Not WSL. Not a port. Built from scratch.
What you get
Claude, Codex and Gemini drive a live Chromium tab through CDP. They click, type, scroll, read DOM. wmux just routes the bytes — your agent does the work.
Split panes the way tmux taught us. Each pane is a real PTY (conpty), each can host its own agent, each remembers its scrollback. No tabs-of-tabs, no Alt+Tab roulette.
wmux watches the agent process. The moment it finishes — or asks for confirmation — you get a native Windows toast. No more checking tabs every 90 seconds.
claude finished — backend refactor
24 tests passed · 1m 42s
Open wmux once. It writes its 13 tools into ~/.claude.json with proper scoping. Codex and Gemini get their own configs. No copy-paste hell.
wmux snapshots every pane, cwd, env, scrollback and active agent. After a reboot — or a Windows Update you didn't ask for — you reopen and pick up mid-sentence.
Agents are powerful. wmux assumes they can be wrong, malicious, or hijacked. Four guards run by default.
Every MCP call carries a per-session token. Forgeable? No — we sign it.
browser_open refuses metadata IPs, localhost-of-the-host, and private subnets.
Node integration, ASAR validation, run-as-node — all locked at build time.
Per-agent RSS cap. Runaway sessions get a soft signal, then a hard kill.
Live demo
Watch wmux spawn three agents, fan a browser task out to Claude, and notify when it's done.
Who uses wmux
Run Claude in one pane while reviewing diffs and tests in the others — same workspace, same cwd, zero context switching.
Claude refactors the backend in pane A → pane B watches test output → pane C reads your PR comments. One window.
Run Claude, Codex, and Gemini in parallel. A/B their answers, pick the best, or split a big task across three.
Three panes, three agents, one prompt forked three ways. Whichever finishes first — and best — wins.
Tired of WSL2 memory bloat, NTFS-vs-EXT4 path pain, and the daily "restart WSL" tax? wmux is native conpty, no Linux VM.
Cold start: 280 ms. Memory baseline: 118 MB. No "wsl --shutdown" before lunch.
Let an agent read your changelog, click through your CI dashboard, or scrape your own PRs — through a real Chromium, not a screenshot.
Claude reads the GitHub release notes, writes a summary into a markdown file, and pings you with a Windows toast when it's done.
Benchmarks
Cold start
280ms
vs WSL+tmux 3.2s (11× faster)
Memory baseline
118MB
1 pane idle · vs WSL+tmux 824MB
Installer size
42MB
signed exe · x64 + ARM64
Disk footprint
198MB
post-install footprint
Session restore
120ms
3 panes · 50KB scrollback each
MCP call latency
<2ms p50
<5ms p99 · local MCP host
Measured on Windows 11 23H2 · Intel i7-13700K · 32 GB RAM · NVMe SSD.
MCP tools
Every wmux install ships with these MCP tools, scoped to the active workspace and exposed to any agent that speaks MCP.
browser_open
Spawn Chromium with CDP attached.
browser_click
Click any selector on the live page.
browser_read
Read text or DOM via CSS selector.
browser_type
Type into focused input — verbatim.
fs_read
Read project files inside the sandbox.
fs_write
Persist edits with diff review.
fs_search
Ripgrep over the workspace.
shell_run
Execute pwsh commands in a sandboxed shell.
shell_stream
Stream long-running output back to the agent.
task_notify
Native Windows toast when the agent finishes.
session_attach
Resume a previous pane with full scrollback.
workspace_open
Switch the active wmux workspace.
memory_recall
Read scoped agent memory store.
browser_open
Spawn Chromium with CDP attached.
browser_click
Click any selector on the live page.
browser_read
Read text or DOM via CSS selector.
browser_type
Type into focused input — verbatim.
fs_read
Read project files inside the sandbox.
fs_write
Persist edits with diff review.
fs_search
Ripgrep over the workspace.
shell_run
Execute pwsh commands in a sandboxed shell.
shell_stream
Stream long-running output back to the agent.
task_notify
Native Windows toast when the agent finishes.
session_attach
Resume a previous pane with full scrollback.
workspace_open
Switch the active wmux workspace.
memory_recall
Read scoped agent memory store.
Install
requires Windows 10 (1903+) · no admin · no WSL
Shortcuts
Architecture
┌──────────────────────────────────────────────────────────────┐ │ wmux shell · Electron renderer · React + xterm.js │ │ ── window chrome · pane manager · workspace router │ ├──────────────────────────────────────────────────────────────┤ │ core (Rust, native) │ │ ── PTY pool (winpty / conpty) ── session snapshotter │ │ ── encrypted token store ── Electron Fuses (locked) │ ├──────────────────────────────────────────────────────────────┤ │ mcp host (Node) │ │ ── 13 built-in tools ── auto-register into ~/.claude.json │ │ ── SSRF block-list ── memory watchdog (per agent) │ ├──────────────────────────────────────────────────────────────┤ │ agents · claude-code · codex · gemini-cli · any cli │ └──────────────────────────────────────────────────────────────┘ # Each agent runs in its own PTY. wmux owns the lifecycle, not the agent. # MCP host is local-only (127.0.0.1:auto); never exposed to the network.
Compare
| wmux | WSL + tmux | Windows Terminal | ConEmu / Cmder | VS Code Terminal | |
|---|---|---|---|---|---|
| Split panes | ✓ | ✓ | partial | ✓ | ✓ |
| Session persistence | ✓ | partial | ✕ | partial | partial |
| AI agent awareness | ✓ | ✕ | ✕ | ✕ | ✕ |
| MCP tools, auto-registered | ✓ | ✕ | ✕ | ✕ | ✕ |
| Browser automation (CDP) | ✓ | ✕ | ✕ | ✕ | ✕ |
| Windows-native (no WSL) | ✓ | ✕ | ✓ | ✓ | ✓ |
| Open source · MIT | ✓ | ✓ | ✓ | partial | partial |
| Multi-agent in one window | ✓ | ✕ | ✕ | ✕ | ✕ |
| Native Windows toast | ✓ | ✕ | ✕ | ✕ | ✕ |
| Cold startup < 500ms | partial | ✕ | ✓ | partial | ✕ |
| Memory baseline < 200MB | ✓ | ✕ | ✓ | ✓ | ✕ |
Glossary
FAQ
What people say
They've already switched.
Asuka Imai
@asu.dev
Theo Kim
@theok
Hannah Park
@hp