cmux
Ghostty ベースのネイティブ macOS ターミナル。縦タブ・通知リング・組み込みブラウザで、並列の AI コーディングエージェント作業を支援する(manaflow-ai/cmux)
cmux は Electron ではなく Swift/AppKit で書かれたターミナルアプリ。既存の ~/.config/ghostty/config を読み込み、テーマ・フォント・色をそのまま使える。サイドバーに縦タブを置き、各ワークスペースの Git ブランチ・PR 状態・作業ディレクトリ・待受ポート・最新通知を一覧できる。
複数の Claude Code / Codex セッションを並列で走らせると、どのペインが入力待ちか判別しづらい——という課題から生まれた。ターミナルシーケンス(OSC 9/99/777)と cmux notify CLI でエージェントフックと連携し、待機中のペインに青いリング、タブをハイライトする。
flowchart TD
subgraph app["cmux.app (Swift / AppKit)"]
UI["Sidebar / Splits / Notifications"]
WS["Workspace & TabManager"]
BR["Built-in Browser"]
end
subgraph term["Terminal"]
GT["libghostty"]
CFG["~/.config/ghostty/config"]
end
subgraph auto["Automation"]
CLI["cmux CLI"]
SOCK["Unix Socket API"]
HOOK["Agent Hooks"]
end
subgraph agents["Coding Agents"]
CC["Claude Code"]
CX["Codex / OpenCode / Pi …"]
end
UI --> WS
WS --> GT
CFG --> GT
CLI --> SOCK
SOCK --> WS
HOOK --> CLI
CC --> HOOK
CX --> HOOK
BR --> SOCK
agents --> GT
cmux コマンド実装(ソケット経由でアプリを操作)⌘⇧U で最新未読へジャンプ。
⌘I で開く。
cmux ssh user@remote でリモート用ワークスペース。ブラウザはリモートネットワーク経由、画像 D&D で scp アップロード。
cmux claude-teams で teammate モードを tmux なしでネイティブ分割起動。
cmux.json でコマンドパレット用アクションを定義。
DMG(推奨)
最新リリース DMG を Applications にドラッグ。Sparkle で自動更新。
Homebrew
brew tap manaflow-ai/cmux
brew install --cask cmux
brew upgrade --cask cmux # 更新時
Nightly
別バンドル ID の NIGHTLY ビルド は安定版と共存可能。main 先端の自動ビルド。
cmux CLI は Unix ソケット経由で実行中のアプリを操作する。ワークスペース作成、ペイン分割、キーストrokes 送信、ブラウザ URL オープン、通知送信などが可能。
グローバルオプション(抜粋)
| オプション / 変数 | 用途 |
|---|---|
--socket <path> / CMUX_SOCKET_PATH | ソケットパス上書き |
--password / CMUX_SOCKET_PASSWORD | ソケット認証 |
--json | JSON 出力(対応コマンド) |
--id-format refs|uuids|both | ハンドル形式 |
--window | 対象ウィンドウ指定 |
代表コマンド
| コマンド | 概要 |
|---|---|
cmux open | ファイル・ディレクトリ・URL を開く |
cmux notify | 通知を送る(エージェントフックから) |
cmux hooks setup | 対応エージェントのフックをインストール |
cmux claude-teams | Claude Code Teams 起動 |
cmux ssh | SSH ワークスペース作成 |
cmux restore-session | 保存済みセッションを復元 |
cmux config | cmux.json 検証・リロード |
cmux feed | キーボードファーストの Feed TUI |
エージェントフック
cmux hooks setup
cmux hooks setup codex
cmux hooks setup --agent opencode
Claude Code、Codex、OpenCode、Pi、Amp、Cursor CLI、Gemini、Rovo Dev などの resume 連携に対応。詳細は 公式ドキュメント とリポジトリ内 docs/agent-hooks.md。
ワークスペース
| ショートカット | 操作 |
|---|---|
⌘N | 新規ワークスペース |
⌘1–8 / ⌘9 | ワークスペース 1–8 / 最後へ |
⌃⌘] / ⌃⌘[ | 次 / 前のワークスペース |
⌘B | サイドバー表示切替 |
分割・通知
| ショートカット | 操作 |
|---|---|
⌘D / ⌘⇧D | 右 / 下に分割 |
⌥⌘←→↑↓ | 方向キーでペイン focus |
⌘I | 通知パネル |
⌘⇧U | 最新未読へジャンプ |
⌘⇧L | 分割内ブラウザを開く |
全ショートカットは Settings → Keyboard Shortcuts でカスタマイズ可能。README の表が正。
終了時にレイアウトをスナップショット保存。再起動で以下を復元する(ベストエフォート含む):
- ウィンドウ / ワークスペース / ペイン構成
- 作業ディレクトリ、ターミナル scrollback
- ブラウザ URL とナビゲーション履歴
tmux / vim 等の任意プロセス状態はチェックポイントしない。フックで native session ID が保存されたエージェントは、設定が有効なら resume コマンドを自動実行。
# 手動で前回セッションを復元
cmux restore-session
# または File → Reopen Previous Session / ⌘⇧O
スナップショットは ~/Library/Application Support/cmux/、エージェントマッピングは ~/.cmuxterm/ に保存。自動 resume を止める例:
{
"terminal": {
"autoResumeAgentSessions": false
}
}
(~/.config/cmux/cmux.json または Settings → Terminal)
- GitHub: manaflow-ai/cmux
- Getting Started(公式ドキュメント)
- Session Restore ガイド
- デモ動画(YouTube)
- Discord コミュニティ
- リポジトリ内:
README.md、docs/cli-contract.md、docs/configuration.md