Ghosttyからcmuxに乗り換えた。
worktree が増えると、画面と頭が両方ごちゃつく
1 プロジェクトの中で複数機能を並行して進めるとき、git worktree add でブランチごとに別ディレクトリを切ることが多い。feature A を実装している間に feature B のレビュー依頼が来ても、本流の作業ツリーは触らずに済むので便利だ。
ただ並列タスクが 3 つ、4 つと増えると、ターミナルの pane も比例して増える。これまで使っていた Ghostty は描画は速くて満足していたが、
- どの pane でどの worktree を見ていたか分からなくなる
- 隣の pane で走っている AI agent の出力をのぞくのに、いちいち pane をフォーカスし直す
- pane を新規で並べる作業も毎回手動
という地味な摩擦が積もって、worktree 並列の旨味が削れていた。
前から cmux が良いという噂は周辺で聞いていて、初期に少し触ったきりだった。久しぶりに起動したら、アプリのアイコンも刷新されていて、待望のグローバルショートカットが設定できるようになっていたり、進化を遂げていた。
cmux
cmux は manaflow-ai が 2026 年 2 月にリリースした macOS ネイティブターミナル。描画エンジンは Ghostty と同じ libghostty を使っているので、Ghostty で慣れていた表示品質やキーバインドの感覚はそのまま持ち越せる。
cmux の構造は Workspace → Pane → Surface の 3 階層になっていて、ふつうのターミナルとの違いは次の 3 点:
- 左サイドバーに workspace(垂直タブ)が並ぶ — 1 つの workspace は 1 つの作業コンテキスト
- workspace を pane に分割でき、各 pane の中身(surface)は terminal でも browser でも良い — 横分割・縦分割に加えて pane 内のタブ分割もでき、「左 pane は editor、右 pane は terminal + dev server preview の 2 タブ、下 pane は test runner」のように、ふつうのターミナル分割より一段細かい構成を組める
- CLI と Unix domain socket で外部から pane を操作・監視できる —
new-split、send、send-key、read-screen、notify、set-statusなどが揃い、AI agent から pane を生成・送信・監視できる
3 番目が cmux の本体的な価値。
2 のブラウザ surface には dev server の preview や Storybook、Figma を常時並べておけて、cmux browser open <url> で AI agent に「dev サーバーを左下 pane で開いて」と指示できる。さらにブラウザ pane では画面上の要素をカーソルで選択してそのままプロンプトに添付できるので、「ここのボタン」「この余白」を毎回スクリーンショットや CSS セレクタで渡す手間が省け、デザインの細部修正を AI agent に任せやすい。
使い方
1. Claude Code に cmux を覚えさせる
そのままだと Claude Code は cmux の CLI を知らないので、skill plugin を入れる。私は ph3on1x/claude-cmux-skill を使わせてもらった。
/plugin marketplace add ph3on1x/claude-cmux-skill /plugin install claude-cmux-skill@claude-cmux-skill
インストール後、Claude Code を再起動すれば /cmux でスキルが読み込まれ、pane の生成・送信・監視の API を Claude が把握した状態で会話を始められる。ここから先は cmux 側のコマンドを自分で覚える必要はなく、日本語で「こう並べて」「あの pane の出力を見て」と指示すれば動く。
2. 運用: worktree 1 つ = workspace 1 つ + pane 数枚
私のふだんの並べ方は、
- worktree 1 つにつき workspace 1 つ をサイドバーに並べる
- workspace の中は、左 pane = 編集、右 pane = Claude Code セッション、必要なら下 pane = dev server や test runner
worktree 切替はサイドバーの workspace 切替 1 アクションで終わる。「どの workspace = どの worktree」はタブ名で見えるので、頭の中で覚えなくていい。worktree を破棄するときは workspace を close するだけなので残骸が残らない。
新しい worktree を切ったら、Claude Code に「この worktree を新しい workspace で開いて、右に Claude Code 用の pane を立てて」と伝えれば、レイアウトはそのまま組まれる。
3. サブエージェントごとに pane を分けさせる
「3 つの独立タスクを Claude Code のサブエージェント 3 体に並列で任せたい」とき、ふだんは結果がメインセッションのバッファに混ざって流れていく。各サブエージェントが今どこまで進んでいるかは、最終出力まで覗けない。
cmux skill が入った状態だと、こう頼める:
走らせるサブエージェントごとに pane を分割して、それぞれの作業を別 pane で走らせて
Claude Code は pane を 3 つ立て、それぞれに独立した Claude Code セッションと別タスクを割り振り、read-screen 相当の覗き見で進捗を確認しながら orchestrator として振る舞う。各エージェントの作業が 物理的に別 pane に分かれている ので、ログが混ざらず、止まっている pane も一目で発見できる。終わった pane は順次畳まれる。
おわりに
worktreeや複数プロジェクトで並列開発する人ほどcmux は試す価値がありそう。
しばらく使い倒したら、Claude Code skill 経由での実用パターンを別記事にしたい。