dmux is a developer agent multiplexer that gives each parallel AI coding task its own tmux pane, git worktree, and branch, built for developers who want several coding agents working at once without stepping on each other.
What it is
dmux is a command-line orchestration tool distributed as an npm package. It sits on top of two things developers already run: tmux and git. Each task gets a tmux pane, and each pane gets a full working copy of the repository on its own branch, so agents never share a checkout. The tool also launches the agent itself, which means a prompt, a worktree, a branch, and a running coding agent arrive together instead of as four separate manual steps.
The concrete problem it replaces is the hand-assembled parallel-agent workflow. Without dmux, running two or more agents on one repository means creating worktrees by hand, picking branch names by hand, opening tmux panes by hand, starting the agent CLI in each, and then remembering which pane belongs to which branch when it comes time to merge. dmux owns that whole loop, from pane creation through merge or pull request, and it tracks which agent conversation was running in a pane so that state survives a restart.
Key capabilities
- Worktree isolation: every pane is a full working copy of the repository, so agents do not conflict with each other.
- Agent support covering Claude Code, Codex, OpenCode, Cline CLI, Gemini CLI, Qwen CLI, Amp CLI, pi CLI, Cursor CLI, Copilot CLI, and Crush CLI.
- Multi-select launches, so one prompt can be sent to any combination of enabled agents, and goal launches that start supported agents in goal mode from the initial prompt.
- Durable terminals that restore in the last observed directory and resume the previous Codex, Claude, or other supported agent conversation when a pane is recreated.
- Pane menu with Merge, which auto-commits, merges, and cleans up in one step, and Create GitHub PR, which pushes the branch and files a pull request.
- Lifecycle hooks that run scripts on worktree create, pre-merge, post-merge, and other events.
- Built-in file browser for inspecting a pane's worktree, searching files, and previewing code or diffs, plus AI naming of branches, commit messages, and active panes.
Who uses it and how
- Developers running several agents against one repository at the same time, comparing approaches in parallel rather than sequentially.
- Teams that name branches after issue-tracker tickets, using the optional explicit branch and worktree name instead of dmux's default naming.
- Developers working across several repositories, who can add multiple projects to a single dmux session and toggle between each project's panes.
- macOS users who want background panes to send native attention alerts when they settle and need input, with a global off switch available.
- Teams that need repeatable automation around worktree creation and merges, hooked through lifecycle scripts.
Getting started
Install with npm install -g dmux, then run dmux from inside the project directory and press n to create a pane, type a prompt, and pick agents. dmux requires tmux 3.0+, Node.js 18+, Git 2.20+, and at least one supported agent CLI, and on first run it can configure a primary inference provider and model plus an optional backup, configurable later through the s key and Inference Providers.
How it compares
The facts provided name no paid products that dmux replaces and no other multiplexer of this kind, so on the evidence available it stands alone in this registry. The proprietary tools it does touch are not substitutes but dependencies: the coding agents it launches are separate products with their own subscriptions, including a Codex login backed by a ChatGPT subscription and a Grok Build login backed by a SpaceXAI subscription. dmux itself is MIT licensed and self-hosted.
When to use it — and when not to
A self-hoster must supply the whole runtime: tmux 3.0+, Node.js 18+, Git 2.20+, at least one agent CLI installed, and either an API key, a custom OpenAI-compatible endpoint, or a supported subscription login for inference. Anyone who does not already work in tmux, or who runs agents on a single task at a time, gains little from the worktree-per-pane model. The notifications feature is macOS-only, so other platforms get no native attention alerts, and the tool is young enough that its documentation and issue tracker are still the main support channels.
project readme (upstream, from github) — read inline
Parallel agents with tmux and worktrees
Manage multiple AI coding agents in isolated git worktrees.
Branch, develop, and merge — all in parallel.
Documentation ·
Getting Started ·
Issues
Language:
English |
日本語

Install
npm install -g dmux
Quick Start
cd /path/to/your/project
dmux
Press n to create a new pane, type a prompt, pick one or more agents (or none for a plain terminal), and dmux handles the rest — worktree, branch, and agent launch.
On first run, dmux can configure a primary inference provider/model and an optional backup. It discovers models from the provider when possible and supports API-key providers, custom OpenAI-compatible endpoints, a Codex login backed by your ChatGPT subscription, or a Grok Build login backed by your SpaceXAI subscription. Reopen the flow with s → Inference Providers.
What it does
dmux creates a tmux pane for each task. Every pane gets its own git worktree and branch so agents work in complete isolation. When a task is done, open the pane menu with m and choose Merge to bring it back into your main branch, or Create GitHub PR to push the branch and file a pull request.
- Worktree isolation — each pane is a full working copy, no conflicts between agents
- Agent support — Claude Code, Codex, OpenCode, Cline CLI, Gemini CLI, Qwen CLI, Amp CLI, pi CLI, Cursor CLI, Copilot CLI, and Crush CLI
- Goal launches — optionally start supported agents in goal mode from the initial prompt
- Multi-select launches — choose any combination of enabled agents per prompt
- AI naming — branches, commit messages, and active terminal panes named automatically
- Durable terminals — regular terminals restore in their last observed directory; if Codex, Claude, or another supported agent was running, dmux tracks it and resumes that conversation when the pane is recreated
- Smart merging — auto-commit, merge, and clean up in one step
- macOS notifications — background panes can send native attention alerts when they settle and need you, with a global off switch
- Built-in file browser — inspect a pane's worktree, search files, and preview code or diffs without leaving dmux
- Pane visibility controls — hide individual panes, isolate one project, or restore everything later without stopping work
- Multi-project — add multiple repos to the same session
- Lifecycle hooks — run scripts on worktree create, pre-merge, post-merge, and more
Git Branch Controls
dmux can use default branch behavior or let you override branch details when creating a pane.
- Keep the default flow for fast creation, where dmux automatically picks the worktree and git branch names.
- Optionally choose a different base branch per pane.
- Optionally provide an explicit branch/worktree name (useful for issue-tracker ticket naming).
- Multi-agent launches still use shared naming with agent-specific suffixes.
Keyboard Shortcuts
Requirements
- tmux 3.0+
- Node.js 18+
- Git 2.20+
- At least one supported agent CLI (for example Claude Code, Codex, Grok Build, OpenCode, Cline CLI, Gemini CLI, Qwen CLI, Amp CLI, pi CLI, Cursor CLI, Copilot CLI, Crush CLI)
- An inference provider API key, a Codex CLI login backed by a ChatGPT subscription, or a Grok Build CLI login backed by a SpaceXAI subscription (optional, for AI naming, summaries, and pane analysis)
Documentation
Full documentation is available at dmux.ai, including setup guides, configuration, and hooks.
Contributing
See CONTRIBUTING.md for the recommended local "dmux-on-dmux" development loop, hook setup, and PR workflow.
License
MIT