AI エージェントを並列実行する際に起きがちなファイル競合問題を、git worktree を活用して自動解決するツール「dmux」を紹介する。

背景:AI エージェント並列実行の落とし穴

Claude Code や OpenAI Codex などの AI コーディングエージェントを複数同時に走らせると、次のような問題が起きやすい。

  • 共通ファイルの同時上書き:複数エージェントが同じファイルを編集し、片方の変更が消える
  • 変更の消失:あるエージェントが直したコードを、別のエージェントが元に戻してしまう

ターミナルを複数開いたり、tmux でペインを分割して並列実行する方法は手軽だが、全エージェントが同一のワーキングディレクトリを共有しているため、この問題は常に起きうる。

dmux とは

dmux は、AI エージェントの並列実行環境を安全に管理するための CLI ツール。内部的には git worktree + branch の自動隔離 を行い、各エージェントが独立したディレクトリ・ブランチで作業できる環境を自動でセットアップする。

主な特徴

  1. 自動隔離:難しい設定なしに git worktree + ブランチを自動作成し、エージェントごとに完全に分離した環境を提供する
  2. 衝突の自動解決:マージ競合が発生した場合、AI が自動で解決を試みる
  3. エージェント切り替え:Claude Code、Codex、Claude Opus、Composer など任意のエージェントを簡単に切り替え可能
  4. A/B テスト:複数エージェントの出力を比較検証できる

git worktree によるエージェント隔離の仕組み

git worktree は、同一リポジトリを複数のディレクトリに展開する Git 標準機能。通常の git clone とは異なり、リポジトリのデータを共有しながら、異なるブランチを別ディレクトリでチェックアウトできる。

リポジトリ
├── (メインディレクトリ)   ← ブランチ: main
├── .worktrees/agent-1/   ← ブランチ: agent/task-a  ← エージェント1
└── .worktrees/agent-2/   ← ブランチ: agent/task-b  ← エージェント2

dmux はこの仕組みを自動化し、各エージェントを専用の worktree に割り当てる。エージェント同士は別ブランチで動くため、同一ファイルへの同時書き込みが発生しない。

利用が向いているケース

  • 複数のタスクを並列で AI に処理させたい
  • 異なるアプローチを同時に試して結果を比較したい
  • Claude Code の並列セッションを安定して運用したい

インストール

前提条件

  • Node.js 18+
  • tmux 3.0+
  • Git 2.20+
  • AI エージェント CLI が少なくとも1つインストール済み(Claude Code、Codex、Gemini CLI など)

npm でインストール

1
npm install -g dmux

起動

プロジェクトディレクトリで dmux を実行するだけで起動できる。

1
2
cd your-project
dmux

基本操作

dmux は tmux ベースの TUI で、キーボードショートカットで操作する。

キー操作
n新規ペインを作成
j / Enterペインに移動
mペインメニューを開く
fファイルブラウザ
q終了

ワークフロー

  1. n で新規ペインを作成
  2. タスクの説明(プロンプト)を入力
  3. 使用するエージェントを選択(複数選択可、空のままだと通常のターミナル)
  4. dmux が自動で git worktree とブランチを作成し、エージェントを起動

各エージェントは隔離された worktree 内で動作するため、完了後に自動でマージされる。

関連ツール:cmux との違いと使い分け

AI エージェントの並列実行を支援するツールとして cmux もある。dmux と名前が似ているが、役割が異なる。

  • dmux — tmux ベースの CLI ツール。git worktree の自動作成・管理によるファイル競合の防止が主な役割
  • cmux — macOS ネイティブのターミナルアプリ(iTerm2 や Terminal.app の代替)。縦タブ、通知リング、インアプリブラウザなど、複数エージェントの視覚的な管理が主な役割
dmuxcmux
種類CLI ツール(tmux 上で動作)ターミナルエミュレータ(アプリ)
主な役割worktree による作業環境の隔離エージェント状態の視覚的管理・通知
worktree 管理自動なし(手動で切り替え)
プラットフォームLinux / macOSmacOS のみ

どちらか一方で十分なケース

  • dmux だけ:通常のターミナルで dmux を起動すれば、worktree 隔離と並列実行は完結する。視覚的な通知やブラウザ統合が不要ならこれで十分
  • cmux だけ:ワークスペースごとに手動で worktree を切り替えれば、dmux なしでも隔離は可能。自動化より UI の快適さを重視する場合に向く

組み合わせるケース

cmux のターミナル上で dmux を起動する構成。iTerm2 の中で tmux を使うのと同じ関係になる。dmux の自動 worktree 管理に加えて、cmux の通知リングやインアプリブラウザも活用したい場合に有効。

まとめ

dmux は、AI エージェントの並列実行における「ファイル競合」という実用上の課題に対して、git worktree という既存の Git 機能を活かしてシンプルに解決するツール。単体でも十分に機能し、cmux のような UI 特化のターミナルと組み合わせればさらに快適な並列実行環境を構築できる。Claude Code や Codex を使った開発フローを並列化・効率化したい場合に有力な選択肢となる。