Spawn, coordinate, and manage AI agents in tmux panes from one terminal.
# 1. Spawn 3 agents side-by-side
maw swarm --count 3
# 2. Send them work
maw tmux send %23 "review the auth module"
maw tmux send %24 "write tests for wake-cmd.ts"
maw tmux send %25 "run maw preflight and report"
# 3. Check on them
maw panes
# 4. Clean up
maw team shutdown swarm
maw cleanup┌─────────────────────────────────────────────────────────┐
│ tmux session: 01-mawjs │
│ │
│ ┌─────────────────┐ ┌─────────┐ ┌─────────┐ ┌────────┐ │
│ │ │ │ scout │ │ builder │ │ tester │ │
│ │ LEAD │ │ (claude)│ │ (codex) │ │(claude)│ │
│ │ (you/oracle) │ │ │ │ │ │ │ │
│ │ │ │ %23 │ │ %24 │ │ %25 │ │
│ └─────────────────┘ └─────────┘ └─────────┘ └────────┘ │
└─────────────────────────────────────────────────────────┘
▲ ▲ ▲ ▲
│ │ │ │
maw team send maw team peek maw tmux send
maw team broadcast ────────────────────────────>
maw team create <name> [--description <text>]
maw team spawn <name> <role> --prompt "instructions" --exec
maw team ls
maw team status
maw team shutdown <name>
maw team delete <name>maw tmux send <pane-id> "command or message" # direct to pane
maw team send <team> <agent> "message" # via inbox
maw team broadcast <team> "message to all" # fan-out
maw team hey <agent> # quick message
maw team peek <agent> # see their screen
maw team inbox <agent> # read their inboxmaw swarm # 3 claude agents (default)
maw swarm --count 5 # 5 agents
maw swarm codex codex claude # mixed engines
maw swarm --tiled # equal-size layoutmaw wake <oracle> # default (claude)
maw wake <oracle> --codex # use codex engine
maw wake <oracle> --engine gemini # explicit engine flag
maw wake <oracle> -e aider # short formEngines configured in ~/.config/maw/maw.config.json:
{
"commands": {
"default": "claude --dangerously-skip-permissions --continue",
"codex": "codex --search --dangerously-bypass-approvals-and-sandbox",
"aider": "aider --yes-always"
}
}maw panes # list all panes across sessions
maw layout # rebalance (main-vertical)
maw layout --tiled # equal grid
maw zoom <agent> # toggle fullscreen
maw split <target> # split a pane
maw close <pane> # hide (don't kill)
maw open <pane> # restore hidden panemaw preflight # version, plugins, dead agents, config
maw preflight --fix # revive dead agents + prune symlinks
maw doctor --smoke # 7-check smoke test (~1s)
maw cleanup # kill zombie panesWhen maw wake finds a pane with a dead agent (bare shell), it automatically
re-sends the launch command instead of saying "already running":
$ maw wake esp32
⚡ 'esp32-oracle' in 07-esp32 — agent dead, re-launching...
maw team create review
maw team spawn review security --prompt "review for security issues" --exec
maw team spawn review perf --prompt "review for performance" --exec
maw team spawn review tests --prompt "check test coverage" --exec
# ... wait for results ...
maw team peek security
maw team peek perf
maw team peek tests
maw team shutdown reviewmaw swarm claude codex aider
# Claude explores with tools, Codex with search, Aider with git
maw team broadcast swarm "analyze src/config/command.ts"maw preflight --fix # heal dead agents
maw doctor --smoke # verify everything works
# then deploy