wmux
cmux for Windows — run multiple AI CLI agents (Claude Code, Codex, Gemini) side-by-side with an MCP bridge and browser automation
pinned to #166411aupdated last month
Ask your AI client: “install mcps/wmux”.
Requires the metahub MCP server installed in your client. Set up MCP.
mh install mcps/wmuxmetahub onboarded this repo on the author's behalf.
If you own github.com/openwong2kim/wmux on GitHub, claim the listing to take over publishing. Your claim preserves the existing eval history and badges; only the curator label is replaced with verified-publisher on your next publish.
Stars
180
Last commit
last month
Latest release
published
- #agentic-ai
- #ai-agent
- #ai-agents
- #ai-coding
- #browser-automation
- #claude
- #claude-code
- #coding-agent
- #developer-tools
- #electron
- #gemini
- #mcp
- #mcp-server
- #multi-agent
- #multiplexer
- #powershell
- #terminal
- #terminal-multiplexer
- #tmux
- #tmux-alternative
- #windows
What this server exposes
Surfaces parsed from this server's source at publish time.
Launches: wmux
Evaluation report
WarningsAutomated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.166411a· last month
Kind-specific
41MCP: launch path
bin: wmux · scripts.start
MCP: @modelcontextprotocol/sdk in dependencies
pinned at "^1.27.1"
MCP: SDK version pinned
pinned at "^1.27.1"
MCP: ESM packagewarn
package.json missing "type": "module"
Modern MCP servers are ESM. Add `"type": "module"` unless you have a CJS-only reason.
MCP: server surface
0 tools
Release history
1- releasecurrent166411awarnlast month
Contents
Windows has no native tmux. Without WSL there was no clean way to run several AI coding agents at once. wmux is a native Windows multiplexer + browser automation + MCP server, purpose-built so your agents read the terminal, drive a real browser, and run in parallel — all in one window.
⚡ Install in 30 seconds
winget install openwong2kim.wmux
<sub>or choco install wmux · or download Setup.exe · winget/choco avoid the SmartScreen prompt (why?)</sub>
🤔 Why wmux?
| 🪟 Many agents, one window | Split panes + workspaces. Claude on the left, Codex on the right, Gemini running tests below — simultaneously. |
| 🤝 Agents coordinate, not just coexist | Agent-to-agent messaging + task delegation. One agent hands a job to another, addressed by pane — and an execute approval gate stops any agent from running code in your workspace without your OK. This is the multi-agent moat. |
| 🌐 Agents drive a real browser | Built-in Chrome over CDP. Say "search Google for this" and your agent actually clicks, types, and screenshots. Works with React inputs and CJK text. |
| 🧭 Fleet View cockpit | Ctrl+Shift+A — every agent across every workspace on one screen, blocked ones floated to the top with a live activity line. Clear every stuck approval from one inbox; click any card to jump straight there. |
| 🔔 Knows when an agent finishes | Desktop notification + taskbar flash on completion. Flags rm -rf, git push --force, DROP TABLE before they run. |
| 💾 Survives quit, crash & reboot | A tmux-style daemon owns every PTY. Reopen and your sessions are still running — processes and all. A pane declared in wmux.json is supervised like an init system — auto-restarted across crashes and reboots, resuming the exact Claude conversation it was on. |
| 🤖 Zero-config MCP | Launch wmux and Claude Code just works — browser + terminal tools register automatically. |
✨ Highlights
- 🤝 A2A multi-agent — agents message + delegate tasks by pane, gated by a per-pane execute approval, with a pollable task inbox + symmetric reply
- 🤖 Agent supervision — declare a pane in
wmux.json(trust-gated) and the daemon keeps it alive: restart policy, backoff, reboot survival - 🖥️ ConPTY + xterm.js WebGL rendering · 999K-line scrollback · Unicode 11 (correct CJK / emoji)
- ⌨️ Tmux-style prefix (
Ctrl+B+ key, 13 actions) · floating pane (Ctrl+`) · scroll bookmarks - 🔀 Multiview — several workspaces side by side · layout templates · drag-to-reorder sidebar
- 🧩 Plugin host — sandboxed iframe plugins with an explicit permission model
- 🛡️ Token-authed IPC, SSRF guard, PTY input sanitization, randomized CDP port, Electron Fuses
- 🎨 Catppuccin Mocha · Monochrome · Sandstone · 🌏 23 locales scaffolded — English & 한국어 complete, 日本語 / 中文 in progress — translations welcome
💡 Tip: point Claude Code at the MCP tools (
browser_open,terminal_read,pane_list,a2a_task_send) or script thewmuxCLI (wmux send/read-screen/list-panes --json) to orchestrate panes programmatically.
<b>⌨️ Keyboard shortcuts</b>
| Key | Action | Key | Action |
|---|---|---|---|
Ctrl+D | Split right | Ctrl+Shift+D | Split down |
Ctrl+T / Ctrl+W | New / close tab | Ctrl+N | New workspace |
Ctrl+1~9 | Switch workspace | Ctrl+click | Add to multiview |
Ctrl+Shift+A | Fleet View | Ctrl+Shift+L | Open browser |
Ctrl+B → key | Prefix mode (13 actions) | Ctrl+` | Floating pane |
Ctrl+K | Command palette | Ctrl+I | Notifications |
Ctrl+F | Search (regex) | Ctrl+M | Scroll bookmark |
Ctrl+Shift+X | Vi copy mode | Ctrl+, | Settings |
| Right-click | Smart copy / paste / link menu | F12 | Browser DevTools |
<b>📦 Full feature list</b>
Terminal — xterm.js + WebGL, ConPTY native PTY, Unicode 11 width tables, split panes, tabs, floating pane, smart right-click (selection→copy / empty→paste / link menu), scroll bookmarks, Vi copy mode, regex search, 999K scrollback with disk persistence, shell integration (OSC 133) for semantic command boundaries (Constrained Language Mode safe).
Keybindings — Tmux-style prefix mode (Ctrl+B, 13 default actions), fully customizable, reset-to-defaults.
Workspaces — drag-and-drop sidebar, Ctrl+1~9 quick switch, multiview, layout templates, full session persistence (layout / tabs / cwd / scrollback), Fleet View cockpit.
Browser + CDP — built-in panel (Ctrl+Shift+L), nav bar / DevTools / back-forward, element Inspector (hover-highlight, click-to-copy LLM context), full automation: click / fill / type / screenshot / JS eval / key press.
Notifications — output-throughput activity detection (not pattern matching, works with any agent), taskbar flash + Windows toasts, process-exit alerts, notification panel (Ctrl+I), Web Audio cues.
Agent detection — Claude Code, Cursor, Aider, Codex CLI, Gemini CLI, OpenCode, GitHub Copilot CLI. Detects start → activates monitoring, warns on critical actions.
Multi-agent (A2A) — agent-to-agent messaging + task delegation addressed by pane/surface, same-workspace and cross-workspace. Per-pane execute approval gate (a remote agent can't spawn a bypassPermissions worker in your workspace without your approval). Symmetric reply (a reply returns to the exact pane that asked), pollable task inbox on the EventBus, broadcast, and a unified approval inbox in Fleet View.
Supervision & wmux.json — declare panes/agents in a trust-gated wmux.json (auto-layout + custom commands). The daemon supervises declared agent panes like an init system: restart policy with backoff across process exits, daemon restarts, and full reboots, with a runaway-crash guard — and it resumes the exact agent conversation on restart, not a fresh shell.
Plugins — sandboxed iframe plugin host with a bridge + explicit permission model and pane decorations.
Daemon — background session management (survives app restart), scrollback dump + auto-recovery, Windows startup registration (survives reboot), dead-session TTL reaping.
MCP tools — browser_* (open / navigate / screenshot / snapshot / click / fill / type / evaluate / press_key), terminal_read / terminal_read_events (OSC 133) / terminal_send, workspace_list / surface_list / pane_list, a2a_* agent-to-agent + task delegation, company_a2a_* coordination. Every browser tool takes a surfaceId so each session drives its own browser.
<b>🏗️ Architecture</b>
Electron Main Renderer (React 19 + Zustand) Daemon (standalone)
├── PTYManager ├── PaneContainer (split tree) ├── DaemonSessionManager
├── PTYBridge ├── Terminal (xterm + WebGL) ├── RingBuffer (scrollback)
├── AgentDetector ├── BrowserPanel (CDP + Inspector) ├── StateWriter (suspend/resume)
├── SessionManager ├── NotificationPanel ├── ProcessMonitor
├── PipeServer (RPC) ├── SettingsPanel ├── Watchdog (memory pressure)
├── McpRegistrar └── Multiview / Fleet View grid └── DaemonPipeServer (RPC)
├── DaemonClient
├── AutoUpdater MCP Server (stdio)
└── ToastManager ├── PlaywrightEngine (CDP, fast-fail)
├── CDP RPC fallback
└── Claude Code ⇄ wmux pipe bridge
<a id="install-help"></a>
<b>❓ FAQ + install troubleshooting</b>
Is wmux a tmux port? No — it's a native Windows multiplexer on ConPTY + Electron with tmux-style split panes, prefix keys, and session persistence. No WSL / Cygwin / MSYS2.
Works with Claude Code / Codex / Gemini? Yes. wmux auto-detects them and registers an MCP server so they can drive the browser and read terminal output.
Multiple agents at once? Yes. Each pane is an independent PTY, and agents coordinate over A2A MCP tools — message each other, delegate tasks by pane, reply to the exact pane that asked, and gate any cross-agent code execution behind your approval.
"Windows protected your PC" warning? The installer isn't Authenticode-signed yet (free signing via SignPath.io / SignPath Foundation is being set up), so SmartScreen flags an unknown publisher. It's safe — click More info → Run anyway, or install via winget / Chocolatey to skip the prompt.
Installer blocked with no "Run anyway"? Smart App Control (SAC) on Windows 11 can block unsigned binaries outright. Check with Get-MpComputerStatus | Select-Object SmartAppControlState. SAC uses cloud reputation, so blocks are often transient — retry later, use winget/choco, or build from source (#200).
PowerShell one-liner (downloads the prebuilt Setup.exe, verifies SHA-256, no build tools):
irm https://raw.githubusercontent.com/openwong2kim/wmux/main/install.ps1 | iex
🛠️ Build from source
git clone https://github.com/openwong2kim/wmux.git
cd wmux
npm install
npm start # dev mode
npm run make # build installer
Requires Node 18+, Python 3.x, and VS Build Tools (C++ workload). WMUX_FROM_SOURCE=1 irm …/install.ps1 | iex auto-installs them.
🙌 Contributors
New here? Grab a good first issue, help translate a locale, or read CONTRIBUTING.md — PRs welcome.
Built on xterm.js, node-pty, Electron, and Playwright.
wmux detects AI coding agents for status display only. It does not call AI APIs, capture agent output, or automate agent interactions. You are responsible for complying with your AI provider's Terms of Service.
License
<sub>Keywords: Windows tmux · tmux for Windows · terminal multiplexer · AI agent terminal · cmux alternative · Claude Code Windows · Codex CLI · Gemini CLI · MCP server · Chrome DevTools Protocol · split terminal · multi-agent · browser automation · ConPTY · xterm.js · Electron terminal</sub>
<sub>⭐ Star history</sub>
Reviews
No reviews yet. Be the first.
Related
agent-lsp
Stateful LSP runtime for AI agents — 50+ tools across 30+ languages via MCP.
@paretools/npm
MCP server for npm/pnpm/yarn — structured dependency, audit, and script data for AI agents
Nanobot
A lightweight personal AI assistant framework
mh install mcps/wmux