wmux wmux / docs / en

wmux Documentation

Everything you need to know to get started with wmux, even if you've never used a terminal multiplexer in your life. This guide takes you from zero to confident, step by step.

What is wmux?

wmux is a Windows desktop application that lets you keep several terminals open at the same time, organized in vertical tabs, with the ability to split any tab into multiple panes. Think of it as the Windows equivalent of tools like tmux (Linux/macOS), Ghostty, or Warp — but built specifically for working with AI agents like Claude Code.

Concretely, when you launch wmux you get:

Who is this for? Anyone who wants to run several AI agents in parallel on Windows and keep track of what they're doing. If you already use Claude Code and you're tired of juggling multiple terminal windows, wmux is for you.

The problem wmux solves. AI agents like Claude Code work in bursts — sometimes 30 seconds, sometimes 10 minutes. While one agent is running, you could start another. Without wmux, you have to open several terminal windows, arrange them by hand, and you miss notifications when you're on another screen. With wmux, everything is in one window, each agent has its place, and notifications find you wherever you are.

Installation

wmux ships as a portable zip archive. There is no installer: you download, extract, and run. Here are the exact steps:

1. Download the latest release

Head to the GitHub releases page and grab the file named wmux-X.Y.Z-win-x64.zip (where X.Y.Z is the most recent version). The zip is about 150 MB.

2. Extract the zip

Right-click the downloaded file, choose Extract All, and pick a destination folder. I recommend C:\Users\YourName\wmux for easy access. Avoid Program Files unless you are running as administrator.

Heads up — Mark of the Web. Windows tags files downloaded via a browser as "from the internet". This tag can stop wmux from loading some modules. To strip it, open PowerShell in your wmux folder and run:
Get-ChildItem -Recurse | Unblock-File
You can also right-click the zip before extracting → Properties → check Unblock at the bottom → OK. Even simpler.

3. Launch wmux

In the folder where you extracted wmux, double-click wmux.exe. The first time, Windows SmartScreen will show a blue screen with "Windows protected your PC". That's normal — wmux is not yet signed with an expensive Authenticode certificate. Click More info, then Run anyway.

wmux opens with a dark window and a default PowerShell terminal. Welcome.

Tip — pin wmux to the taskbar. Right-click the wmux icon in the taskbar and choose Pin to taskbar. Now you can launch wmux with one click anytime.

First launch

When you open wmux for the first time, here is what you see:

Double-click the workspace in the sidebar to rename it. I recommend naming your workspaces by project — for example my-site, api-backend, etc.

Core concepts

wmux organizes your work into four layers. Understanding these four words will save you a lot of time.

Workspace

A workspace is a big container. Think of it as a complete "session" for a project: a workspace can hold several panes, and each pane several tabs. You switch between workspaces via the sidebar or with Ctrl+1, Ctrl+2, etc.

Pane

A pane is a visual block inside the workspace. When you split your screen in two to have a terminal on the left and another on the right, you create two panes. Each pane can show a terminal, a browser, or a markdown document.

Surface (tab)

A surface is a tab inside a pane. In a single pane, you can keep several tabs open at once (for example 3 different terminals) and switch between them with Ctrl+Tab. Think of browser tabs, but for your terminals.

Sidebar

The sidebar on the left lists all your workspaces. For each one it displays in real time: the git branch, whether the directory has uncommitted changes, the working directory, the open ports (useful for dev servers), the number of running agents, the GitHub pull request status, and the unread notifications.

Workspace

The global container. One workspace = one project.

Pane

A visual block. Can hold terminal, browser, or markdown.

Surface

A tab inside a pane. Multiple terminals in one pane.

Sidebar

The left strip. Live git, ports, notifications.

Keyboard shortcuts

wmux has 50+ shortcuts, but you really only need about a dozen day-to-day. Learn these and you'll be productive:

Ctrl+T
New tab (surface) in the current pane
Ctrl+D
Split pane horizontally (new terminal on the right)
Ctrl+Shift+D
Split pane vertically (new terminal at the bottom)
Ctrl+W
Close the current tab (surface)
Ctrl+Tab
Next tab in the same pane
Ctrl+N
New workspace
Ctrl+1..9
Switch to workspace 1 through 9
Ctrl+Shift+P
Open the command palette (fuzzy-search any action)
Ctrl+Shift+F
Find inside the current terminal
Ctrl+Shift+B
Toggle the built-in browser
F11
Fullscreen
Ctrl+,
Open settings

You can customize any shortcut in Settings → Keyboard shortcuts. If you're coming from tmux or Ghostty, presets are available to mirror your existing muscle memory.

Working with Claude Code

This is where wmux really earns its keep. wmux automatically detects Claude Code and wires up its integration without asking you to configure anything. When you run claude in a wmux terminal, the following happens behind the scenes:

Concrete result: you run claude, ask it "browse github.com and find the wmux repo", and you watch in real time what it's doing inside the browser pane. No Playwright, no invisible windows, no configuration.

The wmux-orchestrator plugin

To go further with Claude Code, wmux ships with a plugin called wmux-orchestrator. It lets you run several Claude Code agents in parallel on a single task, each in its own visible pane. The plugin analyzes your codebase, splits the task into subtasks, and coordinates everything.

It's explained in full on plugin.wmux.org with an interactive simulator.

Split panes

Having several terminals side by side is often what saves you the most time. wmux makes it trivial.

Split horizontally

Press Ctrl+D. The current pane splits in two: the original on the left, a new empty terminal on the right. Focus automatically moves to the new pane.

Split vertically

Press Ctrl+Shift+D. The pane splits horizontally: the original on top, the new one on the bottom.

Resize

Grab the separator bar between two panes with your mouse and drag. Resizing is smooth. If you need an exact ratio, head to the settings.

Close a pane

Ctrl+Shift+W closes the current pane. If the pane contains several tabs (surfaces), they all close. The neighboring pane automatically takes the freed space.

Tip — pane zoom. Press Ctrl+Shift+Z to temporarily expand the current pane to the full workspace. Press again to restore the normal layout. Perfect when you need to read a long log without losing your arrangement.

The embedded browser

wmux ships with a real Chromium browser (not a basic webview) that you can open next to any terminal. It serves two purposes:

  1. Watch Claude Code work in real time when it browses the web via chrome-devtools-mcp. Every agent action is visible live, as if you were looking over its shoulder.
  2. Read library docs, check a dashboard, open Stack Overflow without leaving wmux.

To open a browser, use Ctrl+Shift+B. A browser pane opens on the right. Type a URL in the address bar, or click the "new surface" button to stack several browser tabs in the same pane.

The browser supports full DevTools (right-click → Inspect), Chrome keyboard shortcuts, and back/forward with Alt+ and Alt+.

Notifications

When an agent finishes a task or needs your attention, wmux alerts you several ways at once:

Notifications are triggered automatically by the shell integration scripts that detect when a command finishes or is interrupted. To trigger one manually from a script, use wmux notify "My message".

Activity indicators

In the sidebar, each surface displays a small colored dot:

Save & restore sessions

wmux automatically saves your window state every 30 seconds: workspaces, panes, tabs, working directories, browser URLs. When you close wmux and reopen it, you land back on the exact same layout.

You can also save a named session manually to come back to it later:

wmux session save "before-refactor"
wmux session list
wmux session load "before-refactor"

Sessions are stored in %APPDATA%\wmux\sessions\ as JSON files.

Themes

wmux bundles 450+ ready-to-use themes imported from the Ghostty project, plus the ability to import your own themes from Windows Terminal.

Change theme

Open settings with Ctrl+,, go to Appearance, then Theme. Hover a theme name to preview it. The change applies instantly to every open terminal.

Import a Windows Terminal theme

If you've already set up Windows Terminal with a theme you like, wmux can read it directly:

wmux config import-wt

This imports every colorSchemes entry from your Windows Terminal settings.json and makes it available in wmux.

Import a Ghostty theme

Same idea with a Ghostty config file:

wmux config import-ghostty ~/.config/ghostty/config

Shell integration

For wmux to know what's happening in each terminal (current git branch, directory, last command exit code, active ports), it injects integration scripts into your shell at startup. Three shells are supported:

Integration is automatic: you don't have to do anything. wmux detects your default shell, injects the script when the terminal launches, and it just works.

If you want to see what is injected, look inside %APPDATA%\wmux\shell-integration\. The scripts are documented and you can tweak them if you want to customize what shows up in the sidebar.

Environment variables injected. In any terminal launched by wmux, the following variables are available: WMUX=1 (to detect you're inside wmux), WMUX_SURFACE_ID (the unique tab ID), WMUX_PIPE (the named pipe path for the CLI), WMUX_CLI (the wmux.exe path). Useful if you want to write your own scripts that talk to wmux.

The wmux CLI

wmux is scriptable. When you launch the application, it starts a named pipe (\\.\pipe\wmux) that accepts JSON-RPC v2 commands. The wmux.exe executable is also a client of that pipe: you can use it from any shell to drive wmux from a command line.

A few useful examples

# Create a new named workspace
wmux new-workspace --title "my-project" --cwd C:\Users\me\dev\project

# Split the current pane and run a command inside it
wmux split --down
wmux send "npm run dev"

# List all workspaces
wmux list-workspaces

# Open a URL in the built-in browser
wmux browser open https://github.com/amirlehmam/wmux

# Trigger a notification
wmux notify "Build finished successfully"

# Get the full window tree (JSON)
wmux tree

The full command list is available via wmux --help in any terminal. The CLI is what lets Claude Code and every other automation tool talk to wmux.

Why no MCP? wmux does not expose an MCP server, by design. The CLI over named pipe is simpler, more reliable, and integrates better with existing workflows. Claude Code can call wmux directly via Bash without needing an extra abstraction layer.

The wmux-orchestrator plugin

wmux ships a Claude Code plugin called wmux-orchestrator that turns a single complex task into several agents working in parallel, each in its own visible pane.

For example, if you ask "refactor authentication to use JWT", the orchestrator will:

  1. Analyze the codebase and identify all affected files
  2. Split the task into subtasks (shared types, service, middleware, tests)
  3. Organize the subtasks into waves based on their dependencies
  4. Spawn a Claude Code agent per subtask, each in its own wmux pane
  5. Coordinate wave transitions automatically
  6. Launch a reviewer agent at the end to check consistency

The plugin is already installed with wmux (it's copied into ~/.claude/plugins/cache/ on first launch). You can use it directly with:

/wmux-orchestrator:orchestrate "refactor auth to JWT"

For a full explanation with an interactive simulator, live demo, detailed architecture, and step-by-step usage guide, visit plugin.wmux.org.

Visit plugin.wmux.org

Common issues

wmux won't start, I get an error about node-pty

This is almost always the Mark of the Web blocking native module loading. In PowerShell, navigate to the wmux folder and run Get-ChildItem -Recurse | Unblock-File, then relaunch. If that doesn't fix it, re-download the zip and uncheck Unblock in Properties BEFORE extracting.

Keyboard shortcuts don't work

Check that your antivirus or something like AutoHotkey isn't intercepting combinations. Windows Defender and most consumer antiviruses don't interfere, but some productivity tools do. Test in Settings → Keyboard shortcuts with the "test" button.

Claude Code doesn't recognize wmux

When you run claude in a wmux terminal, verify that the environment variables are injected: run echo $env:WMUX (PowerShell) or echo $WMUX (bash). You should see 1. If you see nothing, the shell integration didn't load — restart the shell or relaunch wmux.

Also check that ~/.claude/CLAUDE.md contains a section starting with # wmux. If it's missing, auto-injection failed. Relaunch wmux from an admin terminal and inspect the logs.

The built-in browser is slow or black

Turn on GPU acceleration in Settings → AdvancedHardware acceleration. On older machines without a dedicated GPU, it can make a big difference. On very old GPUs or inside a VM, turn acceleration off instead — it can produce visual artifacts.

How do I update wmux?

wmux has a built-in auto-updater that checks for new versions on launch. When an update is available, you see a small notification. Click it and wmux updates itself. You can also force a check via HelpCheck for updates, or manually download the latest release from GitHub and replace your installation.

Can I use wmux on macOS or Linux?

No. wmux is built specifically for Windows (it uses ConPTY, native Win32 APIs, and Windows-specific Electron optimizations). On macOS, use cmux, the parent project written in Swift/AppKit. On Linux there's tmux, Ghostty, or Warp — but you won't get the wmux-orchestrator plugin.

Resources

To go further, here's where to look:

Back to wmux.org Download wmux