dmux
Run parallel coding agents in isolated tmux panes and Git worktrees.
- Source repo
- standardagents/dmux
- Stars
- ★ 1.8k
- Last updated
- 2mo ago
- License
- MIT
- Primary language
- HTML
- FA score
- 69/100 · Some gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code · OpenAI APIChatGPT (Partial support)
- Cost
- Free software; you pay for model usage
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- A developer handling several unrelated features or bugs can assign each task to a separate coding agent without sharing a working tree.
- Not a fit if
- Environments where tmux, Node.js, or Git cannot be installed
- Users unwilling to install and configure coding-agent CLIs separately
- Teams needing native attention notifications outside macOS
- Source review
- 69/100 · Some gaps
What does this agent do, and when should you use it?
dmux is a local command-line multiplexer that isolates parallel development tasks in separate Git worktrees, branches, and tmux panes. Its keyboard-driven interface can open a plain terminal or launch one or more supported coding-agent CLIs, including Claude Code, Codex, OpenCode, Gemini CLI, and Copilot CLI. When work is ready, the pane menu can auto-commit, merge, and clean up the task or push its branch and create a GitHub pull request. The interface also includes file search, code and diff previews, multi-project views, pane visibility controls, terminal restoration, supported-agent conversation resumption, and lifecycle hooks. It runs on the developer's machine as a Node.js CLI with tmux and Git; inference providers are optional and power naming, summaries, and pane analysis.
After dmux starts inside a Git project, pressing n opens a task flow where the user enters a prompt and selects one or more enabled agents. dmux creates a tmux pane, Git worktree, and branch for the task, then launches the selected agent CLIs; a task can instead be opened as a plain terminal. Pane creation can use automatic naming or an explicitly chosen base branch and branch/worktree name, while multi-agent launches add agent-specific suffixes to shared naming. The f command searches and previews files, code, and diffs in the selected worktree. From the m pane menu, Merge can auto-commit changes, merge them, and clean up, while Create GitHub PR pushes the branch and files a pull request. dmux records regular terminal directories and tracks supported running agents such as Codex and Claude so their conversations can resume when panes are recreated. Lifecycle hooks can run scripts when worktrees are created and before or after merges.
- A developer handling several unrelated features or bugs can assign each task to a separate coding agent without sharing a working tree.
- A maintainer reviewing agent-generated changes can inspect files and diffs inside dmux before merging or opening a GitHub pull request.
- A user evaluating several coding agents against the same prompt can launch any combination of enabled CLIs into separately suffixed branches.
- A developer maintaining multiple repositories can add them to one session and temporarily show panes for only the selected project.
- A team with required setup or merge checks can attach scripts to worktree-creation, pre-merge, and post-merge lifecycle events.
- A terminal-focused developer who returns to long-running tasks can use directory restoration and supported-agent conversation resumption.
How do you install or deploy this agent?
Prerequisites are tmux 3.0+, Node.js 18+, and Git 2.20+. Agent panes also require at least one supported agent CLI, such as Claude Code, Codex, OpenCode, Cline CLI, Gemini CLI, Qwen CLI, Amp CLI, pi CLI, Cursor CLI, Copilot CLI, or Crush CLI. Install dmux globally with:
npm install -g dmuxInference credentials are optional and are used for AI naming, summaries, and pane analysis. Supported credential paths include a provider API key, a Codex CLI login backed by a ChatGPT subscription, or a Grok Build CLI login backed by a SpaceXAI subscription.
How do you use this agent?
Start dmux from a Git project:
cd /path/to/your/projectdmux
Press n, enter a prompt, and select one or more agents; select none to create a plain terminal. On first run, dmux can configure a primary inference provider and model plus an optional backup; reopen this setup with s → Inference Providers. When a task is complete, press m and choose Merge to bring it into the main branch, or Create GitHub PR to push the branch and file a pull request. Other documented controls include t for a terminal, f to browse worktree files, x to close a pane, p to create a pane in another project, and q to quit.
What are this agent's strengths and limitations?
- Every task receives its own Git worktree, branch, and tmux pane, preventing parallel agents from editing one shared working copy.
- The launcher supports a broad documented set of coding-agent CLIs and can start any combination of enabled agents from one prompt.
- Its workflow extends from isolated task creation through automatic commit, merge, cleanup, or GitHub pull-request creation.
- Built-in file search, code and diff previews, multi-project handling, and visibility controls reduce context switching between terminal tools.
- It can restore terminal directories, resume conversations for supported tracked agents, and run scripts at documented lifecycle stages.
- Adoption requires tmux 3.0+, Node.js 18+, and Git 2.20+, excluding environments where those dependencies cannot be installed.
- Agent panes require separately installed and configured coding-agent CLIs; dmux does not replace those runtimes.
- AI naming, summaries, and pane analysis introduce provider credentials, subscription dependencies, and possible inference costs.
- The pull-request workflow is specifically documented for GitHub; equivalent support for other code-hosting platforms is not established.
- Native attention notifications are documented only for macOS, with no evidence of equivalent notification support elsewhere.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| dmux This agent | 69 · Some gaps | CLIFree + model costs | ★ 1.8k | 2mo ago | HTML | Codex · Claude Code · OpenAI API |
| Lody | 75 · Good | Self-hosted service | ★ 1.4k | today | TypeScript | Codex · Claude Code |
| muxel Multi-Agent Workspace | 63 · Some gaps | Desktop appFree + model costs | ★ 34 | today | Rust | Claude Code |
| ClawTeam for OpenClaw | 64 · Some gaps | CLIFree + model costs | ★ 1.5k | 3mo ago | Python | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
Per-task worktrees and branches reduce cross-agent write conflicts, while merge, commit, stash, cancel, and conflict-resolution choices are explicit and covered by failure-path tests. Deductions apply because AI naming, summaries, and pane analysis involve inference providers without specifying which code, diffs, or metadata are transmitted, or how API keys, logs, redaction, and retention are handled. The recovery boundary of smart merge cleanup is also underspecified. Frozen installs, npm provenance, and scoped workflow permissions support dependency security, but no audit, vulnerability-response, or update policy is shown. Authorship, licensing, and repository metadata are present, although mixed standardagents and formkit references weaken attribution stability.
The README, package metadata, and merge tests describe a coherent tmux/worktree multiplexer and identify its Node, Git, tmux, and external agent dependencies. Tests show manual fallback after AI failure or timeout and concrete errors for staging, committing, conflict-pane creation, and unavailable agents, justifying full marks for failure messages. Deductions reflect reliance on several external CLIs, subscriptions, and platform tools without evidence of comprehensive preflight diagnostics, plus inconsistent organization names in repository and issue links.
The source thoroughly identifies users and scenarios including parallel development, plain terminals, multiple projects, agent selection, and conflict resolution. Requirements, optional AI features, and supported CLIs establish useful but incomplete capability boundaries; unsupported repository states, hook trust boundaries, and platform differences are not comprehensively documented. Most actions have precise key or menu triggers, but exact conditions for automatic commits, cleanup, and lifecycle hooks are absent from the supplied material. Environment guidance covers Node 18+, tmux 3+, Git 2.20+, and many agents, while non-macOS behavior and the macOS helper are only partly explained.
The README has clear sections for installation, quick start, features, shortcuts, requirements, documentation, contribution, and licensing, with a Japanese edition. Installation is concise, and the complete MIT text agrees with package metadata, earning full license credit. Package versions, tagged publishing, release automation, and generated release notes provide an update path. Deductions apply because no FAQ, actual changelog, or consolidated known-limitations section is supplied; post-install verification, uninstall, and troubleshooting notes are thin; and mixed standardagents, formkit, and dmux.ai identities plus a lone individual author field leave naming and maintenance responsibility unclear.
Isolated worktrees, parallel agent panes, multi-agent selection, file browsing, and integrated merge handling produce directly usable development workflows and offer substantial value over manually coordinating tmux panes, branches, and worktrees. Editable commit messages, cancellation, stashing, and conflict flows shown in tests strengthen output usability. Cost-benefit is reduced because tmux, Node, Git, an agent CLI, and sometimes API credentials or paid subscriptions are required, with no evidence quantifying resource usage, concurrency cost, or performance on large repositories.
Core claims are traceable across the README, package metadata, publishing workflow, and tests for commit and conflict behavior. Versioning, dependencies, licensing, provenance publishing, and error paths have concrete file evidence. Deductions apply because the supplied tests focus on the merge subsystem and rely heavily on mocks, leaving many advertised features without cross-source corroboration; linked external documentation is not included; and broad phrases such as complete isolation and smart merge are not fully bounded by the supplied code. Facts and inferences are generally distinguishable, but cleanup, data-flow, and platform behavior still require conservative inference.
- Before enabling AI naming, summaries, pane analysis, or AI conflict resolution, determine exactly which repository content each agent CLI and inference provider receives, and independently verify credential storage, logging, and retention settings.
- Automatic commit, merge, stash, and cleanup operations modify Git state; first validate cancellation, conflict handling, stash recovery, and worktree cleanup in a recoverable test repository.
- Lifecycle hooks execute scripts, but the supplied material does not describe approval or sandbox controls; use only trusted repositories and reviewed hooks.
- Verify the present maintenance and publishing relationship among standardagents/dmux, formkit/dmux, and dmux.ai; publisher identity cannot be confirmed from this evidence.
- This static assessment did not execute builds, tests, installation, or dependency vulnerability scans; behavior asserted by test files is not independent reproduction.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
🚀 Features - Speed up terminal auto-naming and gate captures on pane activity - by @justin-schroeder [<samp>(0dc30)</samp>](https://github.com/standardagents/dmux/commit/0dc309a) [View changes on GitHub](https://github.com/standardagents/dmux/compare/v5.11.0...v5.11.1)View on GitHub ↗ -
Release notes excerpt
🚀 Features - Add flexible inference and durable agent sessions - by @justin-schroeder [<samp>(985d8)</samp>](https://github.com/standardagents/dmux/commit/985d805) 🐞 Bug Fixes - Correct v5.11.0 package version - by @justin-schroeder [<samp>(1d055)</samp>](https://github.com/standardagents/dmux/commit/1d05547) [View changes on GitHub](https://github.com/standardagents/dmux/compare/v5.10.0...v5.11.0)View on GitHub ↗ -
Release notes excerpt
🚀 Features - Adds click-to-highlight, and double-click open sidebar - by @justin-schroeder [<samp>(0fdf3)</samp>](https://github.com/standardagents/dmux/commit/0fdf37e) [View changes on GitHub](https://github.com/standardagents/dmux/compare/v5.9.0...v5.10.0)View on GitHub ↗