コンテンツにスキップ

cmux — 並列 AI コーディングエージェント用の macOS ターミナル

作成日: 2026-06-29 出典 / きっかけ: cmux(manaflow-ai 製)の使い方・活用法リサーチ。公式 README / cmux.com / 実体験ブログを裏取り 関連: Fable5_3日間で300万円課金_並列エージェント運用の物理的課題 / loop_engineering_cli調査 / llm_agent_sandbox_隔離技術


0. 要点(3行)

  • cmux は「複数の AI コーディングエージェント(Claude Code 等)を同時に走らせる」ことに特化した macOS ネイティブターミナル。libghostty で GPU 描画する Swift/AppKit 製で、Electron ではない。
  • 本質は「どのエージェントが今あなたを待っているか」を一目で分かるようにすること。サイドバーに各ワークスペースの git ブランチ・PR 番号・ポート・最新通知を並べ、待ち状態のペインは青いリングで光り ⌘⇧U で飛べる。「Claude is waiting for your input」通知の洪水を解決するのが出発点。
  • 強みは「可視化 + スクリプタビリティ」。Unix ソケット API でペイン生成・入力送信・画面読み取り・スクショ・組み込みブラウザ操作まで自動化でき、エージェントのオーケストレーションを組める。macOS 専用・無料・OSS(GPL-3.0)。

1. cmux とは何か

項目 内容
一言で AI コーディングエージェント並列運用に特化した macOS ネイティブターミナル
開発元 manaflow-ai(GitHub org)
技術 Swift + AppKit、libghostty(Ghostty の描画エンジン)で GPU 加速。Electron 不使用(構成比 Swift 82.8% / Python 6.6% / TS 4.8%)
プラットフォーム macOS のみ(Linux / Windows / Android は計画中・ウェイトリスト)
ライセンス GPL-3.0-or-later(公式 README)。商用ライセンスも提供。※一部記事は AGPL-3.0 と記載 — 要確認
価格 無料・OSS。早期機能の「Founders Edition」サブスクあり(cmux AI / iOS アプリ / クラウド VM 等の先行アクセス)
設定流用 既存の ~/.config/ghostty/config(テーマ・フォント・色)をそのまま読む

Mitchell Hashimoto(Ghostty 作者)いわく「cmux は libghostty の描画エンジンの上に作られた別アプリ」。tmux の代替を狙った汎用マルチプレクサではなく、エージェント運用専用に作られている点がポイント。

コミュニティ反応: 2026年2月ローンチ、Hacker News で2位、開発元 Manaflow は YC S24。2026年6月時点で GitHub 2.1万スター超と、並列エージェント界隈で急速に注目されている(数値は各レビュー記事ベース・要追跡)。

なぜ生まれたか(解く課題)

作者 Daniel Dewhurst の出発点が分かりやすい — 「複数の Claude Code セッションを Ghostty のタブ/分割で回していると、macOS 通知が全部『Claude is waiting for your input』で、どのセッションが待っているのか分からない」。この通知疲れ・コンテキストスイッチのコストを潰すために設計された。


2. 中核機能

2-1. 通知システム(cmux の主役)

  • 待ち状態のペインの周囲が青いリングで光る。サイドバーの該当タブも点灯し、未読バッジ+通知本文が出る。
  • ⌘⇧U直近の未読エージェントへジャンプ。通知パネル(⌘I)で保留中の全アラートを一覧。
  • 発火元: 端末エスケープシーケンス(OSC 9 / 99 / 777)/ cmux notify CLI / エージェントの hook。macOS デスクトップ通知にも出る。

何が嬉しいか(イメージ): 普通のターミナルで Claude を 4〜5 個並走させると、macOS 通知は全部「Claude is waiting for your input」でどれが鳴ったか分からない。結局タブを1枚ずつ見て回ることになる。cmux だと「待っている子だけが青く光る」ので、視線を投げるだけでどれに応じればいいか分かる。

【普通のターミナル】通知が来る → どのタブ? → ①開く ②開く ③開く … 全部確認  ← 割り込みコスト大
【cmux】          通知が来る → 青く光ったペインへ ⌘⇧U で直行          ← 割り込みコスト最小
  • 効果は「ペインを常時見張る → 別の作業をして、呼ばれたら応じる」へのモード転換。並列数が増えるほど効く(4〜5 個で体感が変わる、と複数レビュー)。
  • リング色そのものは状態別に変えられない(公式スキーマ cmux.schema.json を確認。待機/完了/エラーで色を出し分ける設定は無い。一部レビューの「緑/黄/赤」は不正確)。色で区別したいなら次の2軸:
  • workspaceColors.colors(16色パレット)でワークスペース単位に色を割り当てる — サイドバーで色分けして見分ける
  • workspaceColors.notificationBadgeColor未読バッジの色を上書き
  • 通知の ON/OFF・挙動は notifications.* で調整(unreadPaneRing リング表示、paneFlash ペイン点滅、sound 通知音、dockBadge Dock バッジ など)。

2-2. 垂直タブ(サイドバー)= ワークフローの俯瞰

各ワークスペースについて以下をライブ表示する。6 個のエージェントを別リポで回していても一目で状況が掴めるのが効く。 - git ブランチ名(例: feature/auth-refactor) - 紐づく PR のステータス / 番号(例: PR #42) - 作業ディレクトリ - リッスン中のポート(例: :3000) - 最新の通知テキスト

何が嬉しいか(イメージ): 普通のターミナルのタブは「ターミナル」「ターミナル 2」のように中身が分からない。どれがどのタスクか思い出すのにタブをホバー/クリックして確かめる必要がある。cmux のサイドバーは1行に「何のブランチ・PR は今どの状態・どのポートで動いてる」が出るので、feature/auth-refactor — PR #42 — :3000 を見た瞬間に「あ、認証リファクタの子、PR 出てて 3000 番で dev server 上がってる」と分かる。

┌─ 普通のタブ ─┐      ┌──────────── cmux サイドバー ────────────┐
│ zsh          │      │ ● feat/auth-refactor  PR#42  :3000  待機 │ ← 一行で全部分かる
│ zsh 2        │  →   │ ○ fix/cache-bug       PR#51  :3001  実行 │
│ zsh 3        │      │ ○ docs/readme          —      —    完了 │
└──────────────┘      └─────────────────────────────────────────┘
  中身が見えない          ブランチ/PR/ポート/状態が常時可視
  • 効きどころは「思い出すコストの排除」。複数リポ・複数タスクを行き来しても「今どれが何で、人間の対応待ちはどれか」を頭で覚えておかなくてよい。サイドバー=並列運用のダッシュボードになる。

2-3. 分割ペイン

  • 水平・垂直の両方向に分割可能。
  • エージェントがサブエージェント/teammate を spawn すると、隠れたバックグラウンドプロセスではなく cmux のネイティブなペイン/分割になる — 全エージェントが見えて操作できる。

2-4. 組み込みスクリプタブルブラウザ

  • agent-browser から移植された API 付きの内蔵ブラウザ。
  • エージェントが DOM/アクセシビリティツリーのスナップショット取得・要素 ref 取得・クリック・フォーム入力・JS 評価・ネットワーク/コンソール監視を実行できる。
  • Claude Code が dev server や PR・CI をブラウザ越しに直接触れる(ターミナルから出ずに)。

2-5. SSH / リモートワークスペース

  • cmux ssh user@remote でリモートワークスペースを作る。
  • ブラウザペインがリモートのネットワーク経由になるので、リモートの localhost にそのままアクセスできる。画像のドラッグで SCP アップロード。

2-6. Claude Code Teams(tmux 不要)

  • cmux claude-teams で Claude Code の teammate モードを起動。ネイティブ分割+サイドバーのメタデータで、tmux なしでチーム運用できる。
  • oh-my-opencode のマルチモデルオーケストレーションにも対応。

2-7. プログラマビリティ(CLI + Unix ソケット API)

これが「ただの綺麗なターミナル」と一線を画す部分。スクリプトから: - ワークスペース/タブの生成、ペイン分割、キーストローク(入力)送信 - 画面内容の読み取り(cmux read-screen)、スクリーンショット取得 - ブラウザで URL を開く・ブラウザ自動化 - エージェントは環境変数 CMUX_WORKSPACE_ID / CMUX_SURFACE_ID自分がどのペインにいるか自己認識できる - 再利用可能な「skills」(cmux-skills リポジトリ)/ cmux.json でプロジェクト固有コマンドをコマンドパレットに登録

2-8. セッション永続化

  • セッションを自動保存し、再起動時にウィンドウレイアウト・作業ディレクトリ・スクロールバック・ブラウザ履歴を復元。
  • hook がネイティブのセッション ID を保存していれば、エージェントセッションも resume(Claude Code / Codex / Grok / OpenCode / Pi / Amp / Cursor CLI / Gemini / Rovo Dev / Copilot / CodeBuddy / Factory / Qoder に resume 連携あり)。
  • ⚠️ 制約: 復元されるのは「レイアウト」であって「動いていたプロセス」ではない(再起動でライブプロセスは失われる、と実体験ブログ)。

2-9. その他

  • iOS コンパニオンアプリ(TestFlight ベータ・端末をリアルタイム同期)。
  • Agent Hibernation(アイドルセッションの一時停止)、detachable SSH PTY daemon、cmux diff の CodeView ビューア など随時追加。

3. 対応エージェント

ターミナルで動くエージェントなら基本何でも: Claude Code / Codex / OpenCode / Gemini CLI / Kiro / Aider / Goose / Amp / Cline / Cursor Agent、その他任意の CLI エージェント。


4. インストール

# Homebrew(cask)
brew tap manaflow-ai/cmux
brew install --cask cmux
  • DMG(推奨): Releases から DMG を落として cmux を Applications にドラッグ。Sparkle で自動更新。
  • Nightly ビルドは安定版と並走する別アプリとして入れられる。
  • 調査時点の最新は v0.64.17 系。

5. 主要キーボードショートカット

操作 ショートカット
新規ワークスペース ⌘ N
ワークスペース番号切替 ⌘ 1〜8
右に分割 ⌘ D
下に分割 ⌘ ⇧ D
サイドバー切替 ⌘ B
通知を表示 ⌘ I
直近の未読へジャンプ ⌘ ⇧ U
組み込みブラウザを分割で開く ⌘ ⇧ L
検索 ⌘ F
スクロールバッククリア ⌘ K

※端末側のキーバインドは Ghostty 設定由来。cmux 固有のショートカットは Settings でカスタム可。


6. セットアップの勘所・Tips

6-1. まず通知を hook で自動化する(これが一番効く)

通知は手で打たなくても、エージェントのライフサイクル hook から自動発火させるのが本筋。Claude Code なら入力待ち/許可待ちの Notification イベント(や完了時の Stop)で cmux notify を呼ぶ。

cmux notify のフラグは --title --subtitle --body と宛先(--surface / --workspace)のみ(色フラグは無い)。Notification フックは stdin で JSON が渡り、.message に「何の確認待ちか」が入る。実際に組んだスクリプトの要点(~/.claude/scripts/cmux-notify.sh):

#!/usr/bin/env bash
set -u
# stdin JSON の .message を本文に。cmux 未導入でも Claude を止めない(fail-open, exit 0)
message="$(jq -r '.message // empty')"   # 取れなければ汎用文言にフォールバック
cmux notify --surface "${CMUX_SURFACE_ID:-}" \
  --title "Claude Code" --subtitle "要対応" --body "${message:-入力待ちです}"

呼び出し元ペインを確実に光らせるため、CMUX_SURFACE_ID(cmux が各ペインに注入)を --surface に渡すのがコツ。これを ~/.claude/settings.jsonhooks.Notificationbash $HOME/.claude/scripts/cmux-notify.sh として登録すれば、確認待ちのたびにそのペインが青リングで光る(手動介入ゼロ)。fail-open なので cmux を使っていない端末でも事故らない。

6-2. 通知の出し方は3系統(環境に合わせて選ぶ)

方法 使いどころ
CLI(最も簡単) cmux notify --title "Build" --body "webpack done" hook・スクリプトから
OSC 777(言語非依存) printf '\e]777;notify;Title;Body\a' 任意の言語/プロセスから
OSC 9 / 99 (Kitty 系プロトコル) 既存ツールが対応していれば自動で拾われる

6-3. Ghostty 設定がそのまま効く

cmux は ~/.config/ghostty/config を読むので、フォント・テーマ・色は再設定不要。Ghostty ユーザーは入れた瞬間に見た目が揃う。

6-4. 環境変数でエージェントに「自分の居場所」を教える

CMUX_WORKSPACE_ID / CMUX_SURFACE_ID が各ペインに入るので、オーケストレーション用スクリプトがどのペインで動いているか自己認識できる。ソケット API(cmux read-screen 等)と組み合わせて結果回収・自動操作に使う。

6-5. 並列衝突は git worktree で隔離してから割り当てる

cmux 自体はワークスペースを分けるだけで、ファイルの衝突は防がない。タスクごとに git worktree を切ってから cmux のワークスペースに割り当てるのが定石(llm_agent_sandbox_隔離技術)。


7. いい活用方法(おすすめパターン)

            ┌──────────── cmux サイドバー ────────────┐
 ⌘N で      │ ● feat/auth   PR#42  :3000  "待機中"  ◀─ 青リング = 今あなたを待ってる
 ワークスペース│ ○ fix/cache   PR#51  :3001  "実行中"
 量産       │ ○ docs/readme  —     —     "完了"
            │ ○ spike/x      —     :3002  "実行中"   ⌘⇧U で待機中へ即ジャンプ
            └─────────────────────────────────────────┘
状況 推奨アプローチ
複数リポ/タスクで 6 個のエージェントを並走 サイドバーで branch / PR# / port を俯瞰。待ちは青リング+⌘⇧U で巡回
「Claude is waiting」通知の洪水で疲弊 cmux の文脈付き通知に置換。どのペインが待っているか即特定
Claude Code のチーム/サブエージェント運用 cmux claude-teams。tmux 不要、サブエージェントが見えるペインになる
エージェントに PR レビュー・CI 確認・dev server 操作までさせたい 組み込みスクリプタブルブラウザで PR を開かせ diff/CI を読ませる
エージェントの自動オーケストレーション ソケット API でペイン生成→タスク割当→cmux read-screen で結果回収。env var で自己識別
リモートマシンで開発 cmux ssh user@remote。リモート localhost にブラウザがそのまま到達
並列エージェントの変更衝突を防ぐ 各タスクを git worktree で隔離してから cmux のワークスペースに割当(llm_agent_sandbox_隔離技術 参照)

自分の運用への接続メモ

  • 並列エージェント運用は「課金が一気に膨らむ」「物理リソース(メモリ・トークン)が律速になる」という別の壁がある(Fable5_3日間で300万円課金_並列エージェント運用の物理的課題)。cmux はそこを直接は解決しない — cmux が効くのは「同時に走らせた時の認知負荷(どれが待ちか)」の方
  • 兄弟プロダクトの manaflow(web 版)は各 run を「クラウド or ローカル Docker の隔離 VS Code ワークスペース」で立てる方式。Docker をかなり食うので、Docker メモリが逼迫しやすい環境(自分のローカル基盤検証など)では、ネイティブな cmux ターミナルの方が軽いという相対的な利点がある。
  • loop 系の無人運用(loop_engineering_cli調査)と組み合わせるなら、cmux のソケット API(read-screen・通知 hook)は「ループの状態を外から覗く窓」として使える。

8. 注意点・既知の制約

  • macOS 専用(他 OS は未提供・計画のみ)。
  • セッション復元はレイアウトのみで、動作中プロセスは復元されない(再起動で失われる)。
  • 開発が活発な分、既知バグも多い(実体験ブログでは「400+ の既知バグ」との記述)— production の主力ではなく個人の並列開発ワークフロー高速化ツールとして捉えるのが妥当。
  • ライセンス表記が資料間で GPL-3.0 / AGPL-3.0 と揺れる — 商用利用前に最新の LICENSE を確認すること。

cmux(ターミナル)と manaflow(web)の混同に注意

manaflow-ai は紛らわしい 2 製品を持つ。記事によって取り違えがあるので分けて理解する。

cmux manaflow
形態 macOS ネイティブターミナル web アプリ(Claude Code web / Codex Cloud / Devin 系の代替)
隔離単位 ターミナルのペイン/ワークスペース(+ git worktree 推奨) クラウド or ローカル Docker の VS Code ワークスペース(git diff・dev server preview 付き)
本ノートの対象 ✅ こちら (兄弟プロダクト・参考)

9. まとめ — いつ使うか

「複数の AI エージェントを同時に回し始めたが、どれが待っていて何のブランチか分からなくなった」瞬間が導入の合図。 cmux は (1) サイドバーでの状態俯瞰、(2) 文脈付き通知+⌘⇧U の巡回、(3) ソケット API による自動化、の 3 点で並列運用の認知負荷を下げる。Claude Code を主力にしていて macOS なら相性が良い。逆に「並列の課金・リソース律速」「クラウド隔離実行」を解決したいなら cmux ではなく manaflow(web)側を見る。


参考リンク

公式・一次資料

  • cmux 公式サイト: https://cmux.com/
  • GitHub(本体): https://github.com/manaflow-ai/cmux
  • Releases: https://github.com/manaflow-ai/cmux/releases
  • manaflow-ai org: https://github.com/manaflow-ai
  • 兄弟プロダクト manaflow(web): https://github.com/manaflow-ai/manaflow

実体験・解説ブログ(Tips が濃いもの)

  • 実体験ブログ(Daniel Dewhurst)— 並列ワークフローの設計思想と限界: https://ddewhurst.com/blog/cmux-purpose-built-terminal-for-parallel-agent-workflow/
  • DEV Community(arshtechpro)— hook 連携・通知3系統・ショートカット: https://dev.to/arshtechpro/cmux-the-native-macos-terminal-built-for-running-ai-coding-agents-in-parallel-52il
  • scriptbyai — 並列エージェント運用の全体像: https://www.scriptbyai.com/coding-agents-parallel-manaflow/
  • vibecoding.app レビュー(2026)— 4〜5並列での体感変化: https://vibecoding.app/blog/cmux-review
  • Gardenee Blog 完全ガイド: https://agmazon.com/blog/articles/technology/202603/cmux-terminal-ai-guide-en.html
  • Ry Walker のリサーチメモ: https://rywalker.com/research/cmux

比較・周辺

  • awesome-agent-orchestrators(並列エージェントツール一覧): https://github.com/andyrewlee/awesome-agent-orchestrators
  • Solo vs cmux(代替ツール比較): https://soloterm.com/solo-vs-cmux
  • Agentmaxxing: Run Multiple AI Agents in Parallel(2026): https://vibecoding.app/blog/agentmaxxing

作成: 2026-06-29 / 最終更新: 2026-06-29