
cmux 公式スキル徹底解説 — ターミナル制御・ブラウザ自動化・Markdown ビューアの3本柱
はじめに
cmux を「AI エージェント向けターミナル」たらしめているのは、リポジトリで公開されている公式スキルの存在だ。スキルとは、AI に cmux の操作方法を教える命令セットのこと。これにより Claude Code や他のエージェントが cmux を自律的に操作できるようになる。
この記事のポイント
- cmux 公式スキルは「ターミナル制御」「ブラウザ自動化」「Markdown ビューア」の 3 本柱
- ブラウザスキルの snapshot + refs 方式は、CSS セレクタ推測を不要にする画期的なアプローチ
- Markdown ビューアはファイル変更を自動検知してリアルタイム更新される
- 3 つのスキルを組み合わせることで、開発からデバッグまで cmux 内で完結する
本記事は cmux シリーズの続編として、cmux 入門記事・Vol.1 lazygit 編・Vol.2 Yazi + Neovim 編で構築した環境に、AI 自律操作の能力を加える内容になっている。
cmux のスキルとは何か?
cmux 本体(9k+ スター)のリポジトリには、skills/ ディレクトリに複数の公式スキルが含まれている。エンドユーザー向けの主要なものは以下の 3 つだ。
| スキル | 内容 | 主な用途 |
|---|---|---|
skills/cmux/ | トポロジー制御 | ペイン分割、ワークスペース管理、サーフェス移動 |
skills/cmux-browser/ | ブラウザ自動化 | URL オープン、フォーム操作、スクリーンショット |
skills/cmux-markdown/ | Markdown ビューア | タスクリスト表示、ドキュメントのライブプレビュー |
スキルファイル(SKILL.md)を Claude Code が読み込むことで、AI がこれらの操作を自律的に実行できるようになる。
cmux コアスキル — AI がターミナルレイアウトを自由に操る
ハンドルモデル — すべての操作の起点
cmux は 4 階層のリソースモデルを持つ。
Window(macOS ウィンドウ)
└── Workspace(タブ的なグループ)
└── Pane(分割コンテナ)
└── Surface(ペイン内のタブ — ターミナルまたはブラウザ)
各リソースには window:1, workspace:2, pane:3, surface:7 のようなハンドルが振られる。AI はこのハンドルで操作対象を指定する。
# 自分の現在位置を確認
cmux identify --json
# トポロジーの一覧取得
cmux list-windows
cmux list-workspaces
cmux list-panes
cmux list-pane-surfaces --pane pane:1ワークスペースとペインの操作
# 新しいワークスペースを作成(プロジェクト単位の切り替えに)
cmux new-workspace
# ペインを分割(右に新しいターミナルを開く)
cmux new-split right --panel pane:1
# サーフェスを別のペインに移動
cmux move-surface --surface surface:7 --pane pane:2 --focus true
# ワークスペースの並び替え
cmux reorder-workspace --workspace workspace:4 --before workspace:2Flash とヘルスチェック — 自動化に不可欠な機能
# 特定のサーフェスを視覚的にフラッシュ(注意を引く)
cmux trigger-flash --surface surface:7
# サーフェスの状態をチェック(隠れていないか、切り離されていないか)
cmux surface-health --workspace workspace:2surface-health は自動化ループでフォーカスを送る前に UI 状態が安定しているか確認するのに使える。地味だが、安定した自動化には不可欠だ。
cmux ブラウザスキル — snapshot + refs で CSS セレクタ推測が不要に
ブラウザスキルは cmux の最も強力な機能の一つだ。内蔵の WebKit ブラウザを AI が完全に自動操作できる。
従来のブラウザ自動化との決定的な違い
従来: DOM 全体を取得 → CSS セレクタを推測 → 操作
cmux: snapshot → refs(e1, e2, ...)→ 直接操作
snapshot --interactive を実行すると、ページ上の操作可能な要素にコンパクトな参照番号(e1, e2, e3...)が振られる。AI はこの番号で直接操作する。CSS セレクタを推測する必要がない。
基本ワークフロー
# 1. ブラウザを開く
cmux --json browser open https://example.com
# 2. ページ読み込みを待機
cmux browser surface:7 wait --load-state complete --timeout-ms 15000
# 3. スナップショットで要素参照を取得
cmux browser surface:7 snapshot --interactive
# 4. refs で直接操作
cmux browser surface:7 fill e1 "hello"
cmux --json browser surface:7 click e2 --snapshot-after
# 5. 操作後に再スナップショット(refs は DOM 変更で無効化される)
cmux browser surface:7 snapshot --interactiveフォーム自動入力の実例
# サインアップフォームを自動入力
cmux --json browser open https://example.com/signup
cmux browser surface:7 wait --load-state complete --timeout-ms 15000
cmux browser surface:7 snapshot --interactive
cmux browser surface:7 fill e1 "Jane Doe"
cmux browser surface:7 fill e2 "jane@example.com"
cmux --json browser surface:7 click e3 --snapshot-after
cmux browser surface:7 wait --url-contains "/welcome" --timeout-ms 15000豊富な Wait パターン
# CSS セレクタで要素出現を待機
cmux browser surface:7 wait --selector "#ready" --timeout-ms 10000
# テキスト出現を待機
cmux browser surface:7 wait --text "Success" --timeout-ms 10000
# URL 変化を待機
cmux browser surface:7 wait --url-contains "/dashboard" --timeout-ms 10000
# JavaScript 条件で待機
cmux browser surface:7 wait --function "document.readyState === 'complete'" --timeout-ms 10000--snapshot-after — 操作と再スナップショットを 1 コマンドで
# クリック後に自動で snapshot を取り直す
cmux --json browser surface:7 click e5 --snapshot-afterDOM を変更する操作(クリック、フォーム送信など)の後は refs が無効化される。--snapshot-after を使えば、操作と再スナップショットを 1 回のコマンドで実行できる。
WKWebView の制約: cmux のブラウザは WebKit ベースのため、Chrome DevTools Protocol 依存の機能(ビューポートエミュレーション、ネットワークインターセプト、スクリーンキャスト録画)は not_supported になります。
cmux Markdown スキル — タスクリストをライブプレビュー
開発中にタスクリストやドキュメントを確認したいとき、別のアプリに切り替える必要はない。cmux の Markdown ビューアは、ターミナルの横にリッチレンダリングされた Markdown を表示する。
基本的な使い方
# Markdown ファイルをビューアで開く
cmux markdown open plan.md
# 特定のワークスペースで開く
cmux markdown open design.md --workspace workspace:2ライブファイルウォッチ — 自動更新される
ファイルが変更されると、ビューアが自動的に更新される。これが最大の特徴だ。
# タスクリストを作成
cat > plan.md << 'EOF'
# タスクリスト
## Steps
1. コードベースを分析
2. 機能を実装
3. テストを書く
4. ビルドを確認
EOF
# ビューアで開く
cmux markdown open plan.md
# AI が進捗を更新 → ビューアが自動で反映
echo "## Step 1: Complete ✅" >> plan.mdエディタの保存、echo でのリダイレクト、アトミックなファイル置換(temp に書いてリネーム)のいずれでも自動更新される。
AI エージェントのタスク進捗をリアルタイムで可視化する
このライブ更新を最も活かせるのが、AI エージェントのタスク管理の可視化だ。
通常、Claude Code にタスクを依頼すると、ターミナルにログが流れ続けるだけで「今どこまで進んでいるのか」が把握しにくい。しかし、AI がタスクの進捗を Markdown ファイルに書き出し、それを cmux のビューアで表示すれば、人間は隣のペインで進捗をリアルタイムに追える。
たとえば、AI が 5 つのタスクを順番に処理する場合:
# 実装タスク
## Phase 1: セットアップ
- [x] プロジェクト初期化
- [x] 依存関係インストール
## Phase 2: 実装
- [x] API エンドポイント作成
- [ ] フロントエンド実装 ← 今ここ
- [ ] テスト作成AI がタスクを完了するたびにチェックを入れてファイルを更新すると、ビューアが即座に反映される。人間はコードの詳細を追わなくても、「今 3/5 が終わったな」と一目で把握できる。
この仕組みを自動化するには、プロジェクトの AGENTS.md に以下のルールを追記する:
## Plan Display
タスクに着手する前に計画を .md ファイルに書き出し、cmux で開いてください:
cmux markdown open plan.md
タスクの完了ごとにチェックボックスを更新してください。
ビューアはファイル変更を自動検知してリアルタイム更新されます。AI がこのルールを読み込めば、以降は自動的に「計画をファイルに書く → ビューアで開く → 進捗を更新する」というフローを実行するようになる。
3 つのスキルを組み合わせた開発フローとは?
3 つのスキルを組み合わせると、開発からデバッグまで cmux 内で完結するフローが実現する。
# 1. コアスキル: レイアウトを準備
cmux new-split right --panel pane:1 # 右にペインを追加
# 2. Markdown スキル: タスクリストを表示
cmux markdown open tasks.md # 左にタスクリスト
# 3. ブラウザスキル: 開発サーバーのプレビュー
cmux browser open http://localhost:3000 # 右にブラウザ
# 4. AI がコードを修正 → ブラウザで確認 → タスクリスト更新
# すべてが cmux の中で完結するこのフローでは:
- コアスキルがレイアウトの自動構成を担当
- ブラウザスキルが UI の確認とテストを担当
- Markdown スキルが進捗の可視化を担当
AI は 3 つのスキルを自由に組み合わせて、最適な開発環境を自動構成できる。
よくある質問
Q. 公式スキルはどうやってインストールしますか?
A. cmux アプリにはスキルファイルはバンドルされていません。cmux の GitHub リポジトリから skills/ ディレクトリの内容を取得し、Claude Code のスキル配置先(~/.claude/skills/ やプロジェクトの .claude/skills/)に手動で配置してください。なお、cmux の CLI(cmux send 等のコマンド)自体は cmux 内のターミナルで自動的に使えます(CMUX_SOCKET_PATH 環境変数が自動設定されるため)。
Q. ブラウザスキルの snapshot refs はいつ無効になりますか?
A. ページナビゲーション、モーダルの開閉、DOM の大きな変更が発生すると無効になります。操作後は必ず snapshot --interactive で再取得するか、--snapshot-after オプションを使ってください。
Q. Markdown ビューアはどんな形式に対応していますか?
A. 見出し(h1〜h6)、コードブロック、テーブル、リスト、引用、太字・斜体・取り消し線、リンク、インライン画像に対応しています。ライト/ダークモード両対応です。
Q. Linux や Windows で使えますか?
A. cmux は macOS 専用(macOS 14.0 以上)です。
まとめ
cmux の公式スキルは、AI エージェントにターミナル環境の「目」と「手」を与える。
- コアスキルでウィンドウやペインのレイアウトを自在に操作する
- ブラウザスキルの snapshot + refs で、CSS セレクタ推測なしに Web 操作を自動化する
- Markdown スキルでタスクリストやドキュメントをライブプレビューする
3 つを組み合わせれば、コーディング・プレビュー・進捗管理がすべて cmux の中で完結する。cmux を使っているなら、これらのスキルを活用しない手はない。
ZenChAIne では引き続き cmux の活用法を探求していく。