
cmux 入門 - Ghosttyベースで複数のコーディングエージェントを見張るmacOSターミナル
当サイトは Amazon.co.jp を宣伝しリンクすることで紹介料を得る手段を提供する、Amazonアソシエイト・プログラムの参加者です。価格・在庫はリンク先の最新情報をご確認ください。
コーディングエージェントを3本、4本と並べて動かしていると、困るのは画面の狭さよりも「どれが自分を待っているのか分からない」ことです。Claude Codeの通知は「Claude is waiting for your input」としか言わないので、タブが10個並んだ状態ではどのタブから呼ばれたのかが分かりません。
cmuxは、この困りごとから作られたmacOS用のターミナルです。READMEの「Why cmux?」には、作者がGhosttyの分割ペインで大量のClaude CodeとCodexを走らせていて、通知の中身に文脈がなく、タブのタイトルも読めなくなったことが動機として書かれています。
この記事では、cmuxが何をするツールで何をしないツールなのか、通知・セッション復元・CLI・ブラウザ・SSHといった中身、料金とCloud VM、そして導入前に知っておきたい点を、公式サイトとドキュメント、GitHubリポジトリを出典に整理します。
NOTE
本文中のバージョン・数値・仕様は2026年10月29日時点で確認したものです。スター数などはGitHub APIの値、リリース情報は公式のChangelogとGitHub Releases、機能の仕様はcmux.com/docs、料金は料金ページの記載に基づきます。リリースの間隔が短いプロダクトなので、細部は短期間で変わります。
cmuxとは何か
cmuxは、libghostty(ターミナルGhosttyの描画エンジン)を使って作られた、ネイティブのmacOSターミナルアプリです。縦タブのサイドバー、エージェントが入力を待っているときに光る通知リング、分割ペイン、アプリ内ブラウザ、それらをすべて外から操作できるCLIとソケットAPIを持っています。
まず事実関係を並べておきます。
| 項目 | 内容 |
|---|---|
| 公式サイト | cmux.com(日本語ページはcmux.com/ja) |
| GitHub | manaflow-ai/cmux |
| 開発元 | Manaflow, Inc.(LICENSEの著作権表記) |
| ライセンス | アプリはGPL-3.0-or-later。サーバー側(web/ など)はBusiness Source License 1.1 |
| 実装 | Swift + AppKit(Electronではない)、描画はlibghostty |
| リポジトリ作成日 | 2026年1月28日(GitHub API) |
| 最新の安定版 | 0.65.2.2(2026年10月27日) |
| GitHubスター | 約28,500 |
| 対応OS | macOS 14.0以降(Apple Silicon / Intel) |
| モバイル | iPhone / iPad向けアプリをTestFlightでベータ配布中 |
| 料金 | アプリは無料。Cloud VMなどは有料プラン(後述) |
日本語のページタイトルは「マルチタスクのために作られたターミナル」です。英語版でも「The terminal built for multitasking, organization, and programmability」と、マルチタスク・整理・プログラマビリティの3つを看板にしています。
Ghosttyのフォークではない
名前と見た目から「Ghosttyの改造版」と思われがちですが、公式FAQははっきり否定しています。cmuxはGhosttyをフォークしたものではなく、libghosttyを描画用のライブラリとして使っているだけで、アプリがWebKitをWebビューとして使うのと同じ関係だ、という説明です。
実用上うれしいのは、Ghosttyの設定ファイル(~/.config/ghostty/config)をそのまま読むことです。テーマ、フォント、色、カーソルなど、Ghosttyで作り込んだ見た目がそのまま引き継がれます。cmux独自の設定(サイドバー、タブバー、ショートカット、通知など)は ~/.config/cmux/cmux.json に分かれています。
「プリミティブであって、解決策ではない」
READMEの「The Zen of cmux」という節には、cmuxの立ち位置がよく表れています。要約すると、cmuxはエージェントの使い方を押し付けない、ターミナル・ブラウザ・通知・ワークスペース・分割・タブとそれを操作するCLIという部品を渡すだけで、何を組み立てるかは使う人に任せる、という考え方です。
この考え方は、機能の範囲にそのまま出ています。後で詳しく書きますが、cmuxはタスクごとにgit worktreeを切って配る、といった「エージェント運用の型」を自分からは持っていません。そこがOrcaのようなworktree中心のツールとの一番大きな違いです。
インストール
公式の手順はDMGとHomebrewの2通りです。
brew tap manaflow-ai/cmux
brew install --cask cmuxDMGの場合は、ダウンロードして cmux.app をアプリケーションフォルダーに入れるだけです。以後はSparkleで自動更新されます。
cmuxのCLIは、cmuxの中で開いたターミナルなら最初から使えます。ほかのターミナルからも使いたい場合は、コマンドパレット(⌘⇧P)で「Shell Command: Install 'cmux' in PATH」を実行すると、/usr/local/bin にリンクが張られます。
cmux list-workspaces
cmux notify --title "Build Complete" --body "Your build finished"0.65.0からは、iTerm2、Terminal、Alacritty、Kitty、WezTerm、Warpの設定を取り込む cmux import と、慣れたショートカットに寄せるキーマップのプリセットも入りました。
画面の構造は5つの階層
ドキュメントの「Concepts」では、画面を次の階層で説明しています。CLIやソケットAPIを使うときに、この用語がそのまま出てきます。
| 階層 | 中身 | 作り方 | 識別子 |
|---|---|---|---|
| Window | macOSのウィンドウ | ⌘⇧N | なし |
| Workspace | 左サイドバーの1行(UI上は「タブ」) | ⌘N | CMUX_WORKSPACE_ID |
| Pane | ワークスペース内の分割領域 | ⌘D(右)/ ⌘⇧D(下) | Pane ID |
| Surface | ペインの中のタブ | ⌘T | CMUX_SURFACE_ID |
| Panel | Surfaceの中身(ターミナルかブラウザ) | 自動 | 内部ID |
サイドバーのワークスペースには、gitのブランチ、紐づいたPRの番号と状態、作業ディレクトリ、待ち受けているポート、最新の通知テキストが表示されます。エージェントごとにワークスペースを分けておけば、サイドバーを見るだけで「どのブランチで誰が何をしているか」がつかめる、という設計です。
通知リング: 呼んでいるエージェントを見落とさない
cmuxの中心にある機能が通知です。エージェントが入力を待つと、そのペインに青いリングが付き、サイドバーのワークスペースが光り、未読バッジが付きます。
通知の発火元は3通りあります。
- ターミナルの標準的なエスケープシーケンス(OSC 9 / 99 / 777)。対応しているプログラムなら設定なしで通知になる
cmux notifyコマンド。エージェントのフックから呼ぶ- エージェント連携のフック。Claude Code、Codex、OpenCode、piなど、フックやOSCに対応しているエージェントで使える
よく使う操作は2つです。⌘⇧Iで通知パネルを開き、⌘⇧Uで最新の未読があるワークスペースへ飛びます。cmuxのウィンドウにフォーカスがあるときや、通知を出したワークスペースを見ているときは、macOSのデスクトップ通知は抑止されます。
通知のたびに任意のシェルコマンドを走らせることもできます。設定画面の「Notification Command」に書いたコマンドが /bin/sh -c で実行され、CMUX_NOTIFICATION_TITLE などの環境変数でタイトルと本文が渡されます。読み上げ(say)や効果音、ログへの追記に使えます。さらに cmux.json の notifications.hooks で、通知の内容をJSONで受け取って加工したり、デスクトップ通知だけ止めたりするフックも書けます(初期状態ではオフ)。
0.65.1では、プログラムがOSC 7501で自分の状態(idle / working / blocked / done / error)を報告し、それをサイドバーに出す仕組みも加わりました。エージェント以外の長いビルドやテストにも使えます。
printf '\e]7501;state=working\e\\'; sleep 5セッション復元
アプリを再起動しても、ウィンドウ・ワークスペース・ペインの配置、作業ディレクトリ、スクロールバック(できる範囲で)、ブラウザのURLと履歴が戻ります。公式FAQによると、アプリの終了だけでなくMacの再起動をまたいでも復元されます。
ただし、動いていたプロセスの中身を保存しているわけではありません。ドキュメントには、tmuxやvim、普通のシェルは「普通のターミナルとして開き直す」と明記されています。
エージェントについては、各エージェントのセッションIDをフックで拾っておくことで、再起動後に会話を再開できます。フックは次のコマンドでまとめて入ります。
cmux hooks setupドキュメントの対応表に載っている主なエージェントと、再開に使うコマンドは次のとおりです。
| エージェント | 再開コマンド |
|---|---|
| Claude Code | claude --resume <id> |
| Codex | codex resume <id> |
| Grok CLI | grok -r <id> |
| OpenCode | opencode --session <id> |
| Gemini | gemini --resume <id> |
| Cursor CLI | cursor-agent --resume <id> |
| Amp | amp threads continue <id> |
0.65.0では、スクロールバックの定期保存と、クラッシュで中断したClaudeのセッションを戻す cmux session restore が入りました。モデルの混雑や接続断のような「やり直せるエラー」でターンが止まったエージェントには、自動で続きを促す仕組みも入っています。
CLIとソケットAPI
cmuxの操作は、ほぼすべてCLIとUnixソケットの両方から呼べます。ワークスペースの作成、ペインの分割、キー入力の送信、画面の内容の読み取り、スクリーンショット、ブラウザの操作まで含まれます。
ソケットは通常 /tmp/cmux.sock で、1行1リクエストのJSONを送ります。
{"id":"req-1","method":"workspace.list","params":{}}注意したいのは、ソケットに誰が接続できるかの設定です。
| モード | 接続できるプロセス | 有効にする方法 |
|---|---|---|
| Off | なし | 設定画面か CMUX_SOCKET_MODE=off |
| cmux processes only | cmuxのターミナルから起動したプロセスだけ | 設定画面の既定値 |
| allowAll | ローカルのすべてのプロセス | 環境変数 CMUX_SOCKET_MODE=allowAll のみ |
既定値では、cmuxの外で動いているプロセスはソケットにつなげません。ドキュメントも、共有のマシンではOffか既定値のままにするよう勧めています。ソケットからはキー入力を送れるので、allowAllにすると、ローカルで動く任意のプロセスがターミナルに文字を打ち込めることになります。安易に切り替えないほうがよい設定です。
エージェントにcmuxを操作させるための「Skills」も用意されています。公開のcmux-skillsには、CLIの操作やワークスペースの自動化、ブラウザの操作などの手順がまとまっています。
アプリ内ブラウザ
ターミナルの横にブラウザのペインを並べられます。READMEによると、ブラウザのスクリプトAPIはVercelのagent-browserから移植したものです。
cmux browser コマンドで、ページの移動、アクセシビリティツリーのスナップショット、クリックや入力、JavaScriptの実行、コンソールとネットワークの読み取りなどができます。
cmux browser open-split http://localhost:3000
cmux browser surface:2 wait --load-state complete --timeout-ms 15000
cmux browser surface:2 snapshotエージェントが自分で開発サーバーの画面を開いて、変更が正しく反映されたかを確かめる、という使い方を想定しています。Playwrightなどを別に立ち上げずに済むのが利点です。
Claude Codeのエージェントチームを分割ペインで見る
Claude Codeのエージェントチーム機能は、仲間のエージェント(teammate)をtmuxのペインとして起動します。cmux claude-teams を使うと、これがcmuxのネイティブな分割ペインとして開きます。
cmux claude-teams
cmux claude-teams --continue仕組みは少し変わっています。cmuxはtmuxの「ふり」をする小さなスクリプト(シム)を作り、TMUX と TMUX_PANE を偽装して、Claude Codeに「tmuxの中で動いている」と思わせます。Claude Codeが発行する split-window や send-keys といったtmuxコマンドを、シムがcmuxのソケットAPIの呼び出しに変換します。あわせて CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 も設定されます。
こうすると、仲間のエージェントもサイドバーの情報と通知の対象になり、隠れたバックグラウンドプロセスになりません。oh-my-opencodeのマルチモデル構成にも、同じ考え方で対応しています。
SSHとリモートtmux
エージェントをリモートのマシンで動かし、手元のcmuxから操作することもできます。
cmux ssh は、リモートマシン用のワークスペースを作るコマンドです。~/.ssh/config のエイリアスや鍵の設定をそのまま読みます。ブラウザのペインはリモート側のネットワークを経由し、ファイルのドラッグアンドドロップはscpで送られ、リモートのエージェントの通知は手元のサイドバーに届きます。不安定な回線向けに、Moshでつなぐ --transport mosh もあります。
cmux ssh user@remote --name "dev server"
cmux ssh user@remote --transport mosh0.65.0からは、cmuxのSSHホスト上で動くClaude CodeとCodexの状態(Running / Needs input / Idle)が、ローカルのエージェントと同じようにサイドバーに出るようになりました。止まっているClaude Codeのセッションを、会話の記録と作業ツリーごとMacとホストの間で移す cmux session move も入っています。
すでにサーバー側でtmuxを使っている人向けには、リモートtmuxのミラーリング(ベータ)があります。cmux ssh-tmux でSSH越しにtmuxのコントロールモード(tmux -CC)に接続し、tmuxのセッション・ウィンドウ・ペインを、cmuxのワークスペース・タブ・分割として表示します。リモート側にtmux 3.2以降が必要で、設定画面の「Beta Features」でオンにするまでは使えません。
tmuxのペインをエージェントに読ませる素朴なやり方はClaude Code に別 tmux ペインを覗かせる小ネタで書きましたが、cmuxはそれをアプリ側の機能として持っている、と考えると分かりやすいと思います。
iPhone / iPadアプリ
iPhoneとiPadから、Macで動いているcmuxのターミナルにつないで、出力を見たり入力を送ったりできます。通知をスマホに転送することもできます。シェルとエージェントはMac側で動き続け、スマホは画面と入力を中継するだけです。
2026年10月29日時点ではベータで、TestFlightで「cmux BETA」として配られています。使い方の要点は次のとおりです。
- Macのcmuxで、設定の「Mobile」にある「Enable iOS pairing」をオンにする。初期状態ではオフで、サインインしただけでは見えない
- Macとスマホで同じcmuxアカウント(チームを使っている場合は同じチーム)にサインインする
- 接続は自動検出の「Auto-Connect」か、Tailscaleだけを使う「Tailscale Only」から選ぶ
- Macがスリープしたり回線が切れたりすると、スマホからは届かない
入手方法の書き方は資料によって分かれています。iOSのドキュメントとREADMEは「早期アクセスはFounder's Editionに含まれる」と書き、料金ページはProプラン以上の特典に「The cmux iOS app」を挙げています。Founder's Editionの価格は、確認した範囲の公式ページには載っていませんでした(未確認)。
料金: 無料の範囲とCloud VM
ターミナルとしての機能は無料です。有料プランで増えるのは、主にクラウド上の実行環境(Cloud VM)です。
| プラン | 月額 | 主な内容 |
|---|---|---|
| Free | $0 | ターミナル、縦タブ、分割、通知、ソケットAPI、ブラウザ、Skills、ローカルのセッション履歴 |
| Pro | $50 | Cloud VMを最大5台(合計20 vCPU / 40 GB RAM)、iOSアプリ、メールサポート |
| Max | $200 | Cloud VMを最大5台(合計80 vCPU / 160 GB RAM)、1台あたり最大64 GB / 32 vCPU |
| Team | 1ユーザー$60 | Proの内容を有料席ごとに。請求の一元化、優先サポート |
| Enterprise | 個別見積もり | Cloudの実行環境のセルフホスト、SSO / SAML、監査ログ、SOC 2とSLA |
料金ページには月払いと年払いの切り替えがありますが、年払いの金額は確認できたページの本文には出ていませんでした(未確認)。
Cloud VMの実体は、ドキュメントで「cmux Cloud」と呼ばれている、クラウド上の常設Linuxマシンです。普通のcmuxのワークスペースとして開け、ペインを閉じてもノートPCを閉じてもターミナルは動き続けます。マシンにはClaude Code、Codex、OpenCode、Piが最初から入っています。2026年10月29日時点では早期アクセスの扱いで、設定の「Beta Features」で「Cloud Machines」をオンにして使います。
cmux vm new --size 8g --name "api work"
cmux vm agent --agent claude --machine brave-otter --sync -- "fix the failing tests"モデルの利用料はcmuxの料金に含まれません。Freeプランの説明にも「your own keys」とあるとおり、エージェントは自分のサブスクリプションかAPIキーで動かします。
テレメトリとプライバシー
プライバシーポリシー(2026年7月14日更新)と設定のリファレンスから分かる点をまとめます。
- アプリは、クラッシュレポートとエラーの診断情報をSentryに送る
- アプリとサイトは、製品の利用状況のイベントを集める。サイトのアクセス解析にはPostHogを使う
- 設定キー
app.sendAnonymousTelemetry(匿名のテレメトリを許可)は、既定値がtrue - iPhone / iPadアプリは、設定の「Share Analytics and Crash Reports」がオンの間だけ、画面の録画(マスク済み)をSentryに送る。ターミナルやブラウザの部分は送信前に端末側で塗りつぶされ、録画は90日で削除される
テレメトリを送りたくない場合は、~/.config/cmux/cmux.json で app.sendAnonymousTelemetry を false にしておくのが確実です。
worktreeを配るツールとの違い
並列エージェント向けのツールには、大きく分けて2つの方向があります。
ひとつは、タスクごとにgit worktreeとブランチを自動で作り、差分のレビューやPRまで面倒を見る「ワークフロー込み」のアプリです。OrcaやSuperset(Paradev)がこちらに当たります。
もうひとつがcmuxで、ターミナルとしての見通しのよさと操作性に徹しています。cmuxのドキュメントには、タスクごとにworktreeを作って配る仕組みは出てきません(確認した範囲では、worktreeという語は変更履歴の不具合修正に出てくるだけでした)。worktreeを使いたければ、git worktree add を自分で打つか、シェル関数やエージェントのSkillsで自動化することになります。ワークスペースのサイドバーがgitのブランチとPRを表示するので、自分でworktreeを切る運用とは相性がよいはずです。
公式サイトにも比較ページが並んでいて、Conductor、Superset、Herdr、tmux、Warp、Ghosttyなどとの1対1の比較が用意されています。あくまで開発元の視点の比較なので、読むときはその前提で読むのがよいと思います。
同じ日に記事にしたSupersetとHerdr、以前の記事のOrcaと並べると、次のようになります。
| 項目 | Superset(Paradev) | Herdr | cmux | Orca |
|---|---|---|---|---|
| 形 | デスクトップアプリ | ターミナルの中で動くTUI(Rust製の単一バイナリ) | macOSのターミナルアプリ(Swift、libghostty) | デスクトップアプリ |
| 中心にあるもの | worktreeの配布、差分レビュー、PR | 止まらないセッションと、エージェントの状態の判定 | 通知リング、分割ペイン、ソケットAPI | worktreeの配布、差分レビュー |
| worktreeを自動で作るか | 作る(タスクごと) | 作れるが主役ではない | 確認した範囲では機能なし | 作る(タスクごと) |
| 差分レビューとPRの画面 | あり | なし | なし | あり |
| 対応OS | macOS(Linuxは実験的) | macOS、Linux、Windows | macOS | macOS、Windows、Linux |
| スマホから | iPhone / iPadアプリ | SSHアプリ経由 | iOSアプリ(早期アクセス) | iOS、Android |
| ライセンス | Elastic License 2.0 | Apache-2.0 | GPL-3.0-or-later(サーバー側はBUSL-1.1) | MIT |
| 料金 | 無料、有料はPro 20ドル/月から | 無料 | 無料、有料はPro 50ドル/月から(Cloud VM) | 無料 |
Orcaの列は2026年8月26日、ほかの3つは2026年10月29日に確認した情報です。
cmuxに近いのはHerdrで、どちらもターミナル側に軸足があります。HerdrがWindowsを含む3つのOSで動くTUIなのに対して、cmuxはmacOS専用のネイティブアプリで、アプリ内ブラウザや通知リングなど、画面の見通しに力を入れています。
使う前に把握しておきたいこと
1. macOS専用対応はmacOS 14.0以降です。公式FAQは、まだ出ていないプラットフォームは待機リストに登録するよう案内しています。WindowsやLinuxのデスクトップで使う方法は、2026年10月29日時点ではありません。
2. ワークフローは自分で組むcmuxは「部品」を渡す設計なので、worktreeの作成、差分のレビュー、PRの作成といった流れは自分で用意する必要があります。逆に言えば、既存の運用を崩さずに入れられます。何もかも面倒を見てほしい人は、worktree中心のツールのほうが楽です。
3. ライセンスは2層になっているアプリはGPL-3.0-or-laterですが、サーバー側のソフトウェア(web/、Cloudflareのワーカー、リレーのサービスなど)はBusiness Source License 1.1で、本番利用やセルフホストには商用ライセンスが必要です。アプリを手元で使うだけなら気にする場面はありませんが、「全部オープンソース」と思い込んで社内でサーバー側をホストしようとすると引っかかります。
10月だけで0.65.0(5日)、0.65.1(12日)、0.65.2(14日)、0.65.2.2(27日)と4回の安定版が出ています。ほかに、mainの最新コミットから自動で作られるNIGHTLY版もあります(安定版と別のアプリとして並べて入れられる)。GitHubのオープンなIssueとプルリクエストは合わせて約4,000件あり、変化の速さは覚悟しておいたほうがよいでしょう。
5. 既定で送られるもの、開いているもの匿名テレメトリは既定でオンです。ソケットは既定ではcmuxの中のプロセスにしか開いていませんが、環境変数でallowAllにすると、ローカルのどのプロセスからでもターミナルに入力を送れるようになります。どちらも、会社のMacに入れる前に一度確認しておきたい点です。
6. レート制限は自分の契約に従うcmuxはエージェントやモデルを提供しません。5本のClaude Codeを並べれば、自分のプランの利用枠を5倍の速さで使います。並列にするほど、待ち時間ではなく利用枠が先に尽きる、ということは起こりえます。
どんな人に向くか
向いているのは、すでにGhosttyやiTerm2で複数のエージェントを並べていて、「どのタブが自分を待っているのか分からない」ことに困っている人です。通知リングと未読へのジャンプ(⌘⇧U)だけでも、その困りごとはかなり減るはずです。Ghosttyの設定をそのまま使えるので、乗り換えの手間も小さく済みます。
エージェントにブラウザやターミナルを操作させたい人にも合います。CLIとソケットAPIが厚く、エージェントが自分でペインを分けたり、開発サーバーの画面を確かめたりする構成を組みやすいからです。
向いていないのは、WindowsやLinuxの人と、worktreeの作成からPRまでを1つのアプリで済ませたい人です。前者はそもそも動きません。後者はcmuxの上に自分で仕組みを足すことになるので、最初からワークフロー込みのツールを選んだほうが早いでしょう。
tmuxで環境を作り込んでいる人は判断が分かれます。cmuxはtmuxの代わりにもなりますが、tmuxをやめる必要はありません。公式FAQにも、SSHとtmuxと組み合わせて使っている人が多いと書かれていて、リモートtmuxのミラーリングも用意されています。
まとめ
cmuxは、複数のコーディングエージェントを並べて動かす人のための、GhosttyベースのネイティブなmacOSターミナルです。
- Ghosttyのフォークではなくlibghosttyをライブラリとして使うSwift / AppKitのアプリで、Ghosttyの設定をそのまま読む
- 縦タブのサイドバーにブランチ・PR・ポート・通知を出し、通知リングと⌘⇧Uで「呼んでいるエージェント」へすぐ飛べる
- 再起動後も配置とスクロールバックが戻り、フックを入れたエージェントは会話を再開できる
- CLIとソケットAPI、アプリ内ブラウザ、
cmux claude-teamsで、エージェント自身にcmuxを操作させられる cmux sshとリモートtmuxで、エージェントを別のマシンで動かせる- アプリはGPL-3.0-or-laterで無料。Cloud VMとiOSアプリが有料プランの中心
worktreeやPRの流れまで抱え込むのではなく、「ターミナルとして見通しをよくする」ことに絞っているのが特徴です。いま使っているエージェントの運用を変えずに、並べたときの見落としだけを減らしたい人には、試す価値があります。


