omux = orchestrate × tmux · formerly cliclaw
Run your coding agents unattended, in parallel, at scale.
omux is a meta-agent that drives Claude Code, Codex — any CLI coding agent — through tmux. It spawns them in panes, reads their terminals, answers their prompts, and loops until the job is verifiably done. You walk away.
npm install -g @happenmass/omux
MITNode 20+tmuxyour model, your keys
Great at writing code. Bad at being left alone.
They can't run without you
CLI agents pause on every confirmation, every choice between two approaches. Step away for coffee and the run is exactly where you left it. omux answers the prompts and keeps the loop moving.
One terminal per agent, and you're the router
Backend agent in one window, frontend in another — and you babysitting both. omux runs the fleet in tmux panes, routes callbacks, and fans out independent work in parallel.
Every run starts amnesiac
Decisions, conventions, gotchas — gone between sessions. omux keeps two-tier memory (about you, and about each codebase) plus resume ids, so agents pick up where they left off.
A loop, not a prompt box
"I don't prompt Claude anymore. I have loops running that prompt Claude and figure out what to do. My job is to write loops."
omux is that loop, pre-built. You state the goal in plain language; it writes the prompts, reads the panes, decides the next move, and keeps going until the success criteria are verifiably met.
"Fix the flaky auth test and cover token expiry." That's the whole prompt you write.
Picks the right agent per task, briefs it with repo context and memory, launches it in a tmux pane.
Agents implement test-first. omux reads their terminals, answers confirmations, interrupts wrong turns.
A failing test is a continue signal, not a stop. It hands back only when tests pass — or a human is truly needed.
real session, real time — one goal in, verified diff out
Built for the parts around the coding
Claude Code and Codex today; a new agent is one adapter file — launch command, four regexes, confirm keys. The orchestration layer never changes.
Each agent gets only the tools it needs. A docs agent never sees your Postgres MCP: smaller prompts, no name collisions, sharper decisions.
Grab any agent's live terminal from the web UI, type keystrokes yourself, release it back. The orchestrator keeps its hands off while you drive.
Agents live in tmux, not in the server process. omux restarts, re-adopts running sessions, restores conversation state from SQLite, repairs interrupted tool calls.
Context compaction rides the same prompt cache as normal turns; mutable prompt sections are ordered to keep the cache prefix stable. The orchestrator's own cost stays small.
Chat with omux in Chinese while it briefs coding agents in English — or any combination. zh-CN and en-US built in.
The honest landscape
| omux | Claude Code subagents | OpenHands | Cursor Composer | |
|---|---|---|---|---|
| Run multiple agents in parallel | ✓ | limited | ✓ | partial |
| Tool-agnostic (Claude Code, Codex, …) | ✓ | Claude only | own runtime | own runtime |
| Native TUI — watch agents reason live | ✓ | ✓ | ✗ | ✗ |
| Drives confirmations / interactive flows | ✓ | n/a | — | — |
| Remote-friendly (SSH, detach, resume) | ✓ | ✓ | ✓ | ✗ |
| Per-agent MCP scoping | ✓ | ✗ | ✗ | ✗ |
landscape as of mid-2026 — these tools move fast; corrections welcome
Two commands to a running fleet
$ npm install -g @happenmass/omux
$ omux
→ open http://localhost:3120 — pair once, then chat
Runs on your machine, with your keys — one for omux's reasoning, and whatever your coding agents already use. On a laptop it's LAN-discoverable by default so you can drive it from your phone; on shared networks, lock it down with omux --host 127.0.0.1 --no-mdns or an SSH tunnel.
Questions people actually ask
Why tmux instead of wrapping the APIs?
Because the experience of Claude Code and Codex is not in their APIs — it's in their TUIs: the step-by-step reasoning, the previews, the confirmations. Wrapping the API throws that away. Driving the terminal keeps it, and makes omux compatible with any CLI agent that ever ships.
Does omux pick which agent handles a task?
Within the adapters you've enabled, yes — Codex for gnarly single-point reasoning, Claude Code for broad multi-file loops, then the other one reviews. Roles are heuristics, not hard-wiring; override per task. It never reaches for a tool you didn't enable.
Can I run it on a remote server?
That's the main mode the author uses: SSH in, start omux, detach, come back hours later. Agents keep working in tmux the whole time. Prefer an SSH tunnel over exposing the port on untrusted networks.
Why "omux"?
orchestrate × tmux — the orchestrator that lives where your agents live. omux is the new name of cliclaw; same project, sharper name.