dmux
Run parallel coding agents in isolated tmux panes and Git worktrees.
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.
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.
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 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.