Run parallel AI agents without losing the plot.
dmux orchestrates Claude Code, Codex, and OpenCode across isolated git worktrees — so every experiment runs in its own pane, with deterministic state, native notifications, and one place to merge what works.
$ dmux ● feat/apps working claude-code 12 files ● fix/session-name idle codex ready to merge ● spike/native-helper waiting opencode needs review ● docs/orchestration analyzing claude-code tests passing [n]ew pane [m]erge [c]lose [s]ource [/] search
Built for agents that ship.
Every agent gets its own pane, its own branch, and its own deterministic state machine.
Worktree-per-pane
Each agent runs in an isolated git worktree. No collisions, no stashing, no "wait, what branch was I on?"
Deterministic state
Hook-backed lifecycle events from Claude Code, Codex, and OpenCode — not screen-scraping heuristics.
Native macOS focus
A signed helper daemon delivers focus-aware notifications and tracks the actual frontmost window.
Orchestration API
HTTP + WebSocket contracts that power the TUI, the web dashboard, and the native desktop app.
Merge with confidence
Pre-merge hooks run tests, type checks, and any custom gate you wire up — before a single line lands on main.
Bring your CLI
Claude Code, Codex, OpenCode supported out of the box. Add your own agent in a few lines of TypeScript.