cmux-ref について
cmux-refは、ユーザーが指定したcmuxのワークスペース、ペイン、サーフェス、ウィンドウの識別子を解釈するエージェントスキルです。対象を検証して最も具体的な指定先を使い、画面上のフォーカス先にはフォールバックしません。
主な機能
- 01cmux参照とUUIDの解析
- 02最も具体的な対象の選択
- 03操作前の対象検証
- 04UUIDを使った古い参照の復旧
- 05明示されたルーティング情報の維持
活用シーン
- 01指定した端末サーフェスへのコマンド送信
- 02指定ワークスペースとペインでのコンテンツ表示
- 03cmux状態変更後の古い参照の解決
- 04画面上のフォーカス先での誤操作回避
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ manaflow-ai/ cmux-skills --skill cmux-refインストール後、Claude Code で/cmux-refを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
cmux Ref
ユーザーが cmux のトポロジー識別子を貼り付け、エージェントがその特定のワークスペース、ペイン、サーフェス、またはウィンドウを対象にすることを期待している場合は、このスキルを使用します。これらの識別子は、後続の指示における明示的なルーティングコンテキストとして扱います。
認識する内容
ユーザーは、次のフィールドを任意に組み合わせて、プレーンテキスト、Markdown、JSON、YAML、シェル形式の代入文、またはログで貼り付けることがあります。
workspace_ref=workspace:1
workspace_id=D9C23F06-55C8-4EF6-96D2-F2531B3327A8
pane_ref=pane:2
pane_id=60495E4A-56E3-469D-A274-A7877F48B54D
surface_ref=surface:370
surface_id=661B301A-2423-44F1-B789-7AEA1021CFCE
次のキーを認識します。
window_ref、window_idworkspace_ref、workspace_idpane_ref、pane_idsurface_ref、surface_id
また、ユーザーの意図の近くにある workspace:1、pane:2、surface:370 などの単独の参照も認識します。
意味
*_refの値は、workspace:1、pane:2、surface:370などの短い cmux 参照です。同じ cmux インスタンス内で CLI をすぐに呼び出す際に便利ですが、状態が変わると番号が振り直されることがあります。*_idの値は、同じオブジェクトを示す UUID です。両方の形式がある場合は、識別の確認や古くなった参照からの復旧に UUID を優先します。- 指定されたオブジェクトのうち、最も具体的なものをデフォルトの対象とします。
surfaceはpaneより優先され、paneはworkspaceより優先され、workspaceはwindowより優先されます。 - ひとまとまりの完全なブロックは階層を表します。ユーザーが同じ階層に属すると明示していない限り、貼り付けられた別のブロックにある
surface_idとworkspace_refを組み合わせないでください。
ワークフロー
ステップ 1:ブロックを解析する
キーは大文字と小文字を区別せずに抽出します。= または : の区切りを受け入れ、引用符、カンマ、コードフェンスは無視します。
便利なパターン:
\b(window|workspace|pane|surface)_(ref|id)\b\s*[:=]\s*["']?([A-Za-z0-9:-]+)["']?
ユーザーが単独の参照のみを指定した場合は、最も具体的なものを対象として割り当てます。
workspace:1 pane:2 surface:370
ステップ 2:対象を伝える
操作する際は、正確な対象を簡潔に伝えます。
I will target surface:370 in pane:2, workspace:1.
UUID がある場合は、内部の対象レコードに保持し、曖昧さの解消に役立つ場合は提示します。
I will target surface:370 (661B301A-2423-44F1-B789-7AEA1021CFCE).
ステップ 3:変更前に確認する
テキストの送信、何かを閉じる、サーフェスの移動、レイアウトの変更、または現在対象ではない画面の読み取りを行う前に、対象がアクティブな cmux ソケット内に存在することを確認します。
現在の cmux CLI を使用し、参照と UUID の両方を要求します。
cmux --json --id-format both tree --all
cmux --json --id-format both identify
cmux --json --id-format both list-pane-surfaces --workspace <workspace_ref_or_id>
参照が古くても UUID が tree --all に存在する場合は、その UUID に対応する現在の参照を使用します。参照も UUID も見つからない場合は、処理を中止し、新しい cmux 参照ブロックをユーザーに求めます。
ステップ 4:対象を明示する
ユーザーが明示的な参照を貼り付けた場合、視覚的にフォーカスされているワークスペースにフォールバックしないでください。解析したワークスペース、ペイン、サーフェスを cmux コマンドに渡します。
例:
cmux read-screen --workspace workspace:1 --surface surface:370 --scrollback --lines 120
cmux send --workspace workspace:1 --surface surface:370 "npm test\n"
cmux new-surface --workspace workspace:1 --pane pane:2 --type terminal --focus false
cmux open ./report.html --workspace workspace:1 --pane pane:2 --no-focus
コマンドがハンドルを 1 つしか受け付けない場合は、関連するもののうち最も具体的なハンドルを使用します。コマンドが UUID を受け付け、意図したオブジェクトに対応することを確認済みの場合は、UUID を優先します。
曖昧さに関するルール
対象を安全に推測できない場合に限り、簡潔な質問を 1 つだけします。
- 関連性のない複数の参照ブロックが貼り付けられ、指示が「これを使って」または「あれ」としか述べていない場合。
- ワークスペース参照とサーフェス参照の両方があり、確認した結果、それらが現在は異なる階層に属している場合。
- 貼り付けられた識別子が古く、
cmux --json --id-format both tree --allに UUID の一致がない場合。
完全なブロックが 1 つある場合は、質問しないでください。そのブロック内の最も具体的な対象を使用します。
安全性に関するルール
- ユーザーが指定した cmux 参照は、呼び出し元の環境変数や視覚的なフォーカスより優先されます。
- 可能な場合は、メモやスクリプトに参照と UUID の両方を保持します。
- 対象の確認や使用のためだけにフォーカスを変更しないでください。非破壊的なコマンドを優先し、対応している場合は
--focus falseまたは--no-focusを使用します。 - 現在のソケット内にあることを確認するまでは、対象を閉じたり、移動したり、入力を送信したりしないでください。
- ブラウザーのスナップショット要素参照は、cmux のトポロジー参照とは別のものです。DOM や WebView のスナップショット参照には
cmux-browserを使用します。