From cmux
Operates manaflow-ai/cmux macOS terminal multiplexer via CLI commands and JSON-RPC socket API. Manages windows, workspaces, panes, surfaces, notifications, status, and browser controls.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cmux:cmuxThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`cmux`([manaflow-ai/cmux](https://github.com/manaflow-ai/cmux))は、複数の AI コーディングエージェント CLI を縦型タブ・分割ペイン・通知パネル付きで束ねるネイティブ macOS ターミナルである。本スキルは付属の `cmux` CLI コマンドと UNIX ソケット制御 API の使い方を提供する。
cmux(manaflow-ai/cmux)は、複数の AI コーディングエージェント CLI を縦型タブ・分割ペイン・通知パネル付きで束ねるネイティブ macOS ターミナルである。本スキルは付属の cmux CLI コマンドと UNIX ソケット制御 API の使い方を提供する。
soheilhy/cmux ライブラリとは別物)/tmp/cmux.sock--panel は CLI 互換エイリアスとして残るが、新規実装では --surface / --pane を使う未インストールなら以下の手順を案内する。
brew tap manaflow-ai/cmux
brew install --cask cmux
# /usr/local/bin に CLI を symlink
sudo ln -sf "/Applications/cmux.app/Contents/Resources/bin/cmux" /usr/local/bin/cmux
# 疎通確認(cmux アプリが起動している必要あり)
cmux ping
cmux ping がエラーを返す場合は、cmux.app を起動してから再試行する。
| 用語 | 意味 |
|---|---|
| Window | macOS の cmux ウィンドウ(最上位) |
| Workspace | ウィンドウ内の「タブ」相当のグループ |
| Pane | ワークスペース内の分割領域 |
| Surface | ペイン内のタブ。ターミナルまたはブラウザ |
ID 形式は window:N / workspace:N / pane:N / surface:N。CLI 引数の多くで ID または index を受け付ける。
旧 API では
panelという語が使われるが、新 API ではsurfaceに統一されている。
| 目的 | コマンド |
|---|---|
| 自分のコンテキスト把握 | cmux identify --json |
| 機能ケイパビリティ取得 | cmux capabilities |
| 疎通確認 | cmux ping |
| ウィンドウ一覧 | cmux list-windows |
| ワークスペース一覧 | cmux list-workspaces [--json] |
| ペイン一覧 | cmux list-panes |
| サーフェス一覧 | cmux list-pane-surfaces --pane pane:1 |
| 新規ワークスペース | cmux new-workspace [--cwd <dir>] |
| ワークスペース切替 | cmux select-workspace --workspace workspace:2 |
| ペイン分割 | cmux new-split <right|down|left|up> --pane pane:1 |
| サーフェス移動 | cmux move-surface --surface surface:7 --pane pane:2 --focus true |
| サーフェス並べ替え | cmux reorder-surface --surface surface:7 --before surface:3 |
| 視覚的なフラッシュ | cmux trigger-flash --surface surface:7 |
| 通知送信 | cmux notify --title "..." [--body ...] [--workspace ...] |
| 通知一覧 | cmux list-notifications [--json] |
| 通知クリア | cmux clear-notifications |
| ステータス設定 | cmux set-status <key> <value> |
| ステータス削除 | cmux clear-status <key> |
| ブラウザ起動 | cmux --json browser open <url> |
| ブラウザ操作 | cmux browser <surface> <subcommand> ... |
各コマンドの詳細オプションは references/cli-commands.md を参照。
cmux 内で動く Claude Code から自分の所在を知るには、まず identify を呼ぶ。
cmux identify --json
# => {"window": "...", "workspace": "...", "pane": "...", "surface": "..."}
得られた ID を後続の --workspace / --surface 引数に渡す。
cmux new-workspace --cwd ~/Projects/frontend
cmux select-workspace --workspace workspace:2
cmux new-split right --pane pane:1
cmux move-surface --surface surface:7 --pane pane:2 --focus true
ビルド完了・承認待ちなど、AI エージェントから人間に合図を送る用途。
cmux notify --title "Claude Code" --subtitle "Permission" --body "Approval needed"
--workspace workspace:2 を付ければ特定のワークスペースを対象にできる。詳細は references/notifications.md を参照。
cmux set-status copilot_cli Running
# 処理が終わったら
cmux clear-status copilot_cli
サイドバーにアイコンとラベルが表示される。
cmux はサーフェスをブラウザにできる。AI エージェントが Web UI を制御する用途で使う。
cmux --json browser open https://example.com
# => {"surface": "surface:7"}
cmux browser surface:7 wait --load-state complete --timeout-ms 15000
cmux browser surface:7 snapshot --interactive
cmux browser surface:7 click e1 --snapshot-after
詳細なブラウザ操作とフォーム入力は references/agent-browser.md を参照。
cmux は他の CLI コーディングエージェント(Claude Code, Codex, Copilot CLI など)から呼ばれることを想定している。hooks を使った典型的な連携:
# エージェント停止時に通知
if command -v cmux &>/dev/null; then
cmux notify --title 'Claude Code' --body 'Done'
cmux clear-status claude_code
else
osascript -e 'display notification "Done" with title "Claude Code"'
fi
cmux 未インストール環境にもフォールバックさせる(command -v cmux)のがベストプラクティス。
CLI と等価な操作を JSON-RPC over UNIX socket で呼べる。スクリプトから多数のコマンドを高速に発行したい場合や、CLI が存在しない言語から制御したい場合に使う。
echo '{"id":"1","method":"workspace.list","params":{}}' | nc -U /tmp/cmux.sock
echo '{"id":"2","method":"notification.create","params":{"title":"Hi","body":"Hello"}}' | nc -U /tmp/cmux.sock
メソッド一覧とリクエスト/レスポンスの形式は references/socket-api.md を参照。
| 症状 | 対処 |
|---|---|
cmux ping が失敗 | cmux.app が未起動。Spotlight 等で起動する |
cmux: command not found | symlink 未作成。インストール手順の ln -sf ... を実施 |
--panel を使った既存スクリプトの警告 | 互換のため当面動作するが、--surface / --pane に置換する |
| ID と index が取り違えられる | cmux list-* でまず正確な ID を取得し、--workspace workspace:N のように prefix 付きで渡す |
| ソケット接続が拒否される | cmux.app が起動しているか確認。/tmp/cmux.sock の存在を ls -l で確認 |
references/cli-commands.md — 全 CLI サブコマンドのオプションと出力形式の完全リファレンスreferences/socket-api.md — JSON-RPC ソケット API のメソッド一覧、リクエスト/レスポンス形式、エラーコードreferences/notifications.md — 通知・ステータス機能の詳細、エージェント連携パターンreferences/agent-browser.md — cmux browser サブコマンド群(ナビゲーション、スナップショット、フォーム操作、JS 評価)Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub nkmr-jp/setup --plugin cmux