Cmux Ref

manaflow-ai/cmux-skills/skills/cmux-ref

作者 manaflow-ai34027c77c9ffa33f47f5d81012d01296976b4240無授權條款收錄於 2026年10月9日更新於 2026年10月9日

Interpret pasted cmux workspace, pane, surface, or window refs and IDs. Use for cmux-ref, cmux-id, workspace_ref, workspace_id, pane_ref, pane_id, surface_ref, surface_id, window_ref, or window_id context blocks.

AI 產生的概覽

解析貼上的 cmux 工作區、窗格、表面與視窗參照或 ID,並將代理動作導向確切目標。

功能
此技能讓代理辨識以純文字、Markdown、JSON、YAML、shell 賦值或日誌形式貼上的 cmux 拓撲識別碼,包括 window_ref、workspace_ref、pane_ref、surface_ref 及其 UUID 形式。它說明參照與 UUID 的差異、如何在階層中挑選最具體的目標,以及如何在執行動作前對照使用中的 cmux socket 驗證目標。其產出是解析後的目標記錄與明確的 cmux 指令呼叫,而非檔案。
適用情境
當使用者貼上 cmux 參照或 ID,並期望代理針對該確切工作區、窗格、表面或視窗採取動作時使用。也適用於參照可能已過期、需要以 UUID 復原,或貼上的多個區塊造成目標不明確的情況。
執行需求
需要執行中的 cmux 執行個體,以及代理可用的 cmux CLI,包括 tree、identify、list-pane-surfaces、read-screen、send、new-surface 與 open 等指令。此技能不附帶指令碼,僅為說明性指示。

cmux Ref

Use this skill when the user pastes cmux topology identifiers and expects the agent to target that exact workspace, pane, surface, or window. Treat those identifiers as explicit routing context for later instructions.

What To Recognize

Users may paste any mix of these fields, in plain text, Markdown, JSON, YAML, shell-style assignments, or logs:

text
workspace_ref=workspace:1workspace_id=D9C23F06-55C8-4EF6-96D2-F2531B3327A8pane_ref=pane:2pane_id=60495E4A-56E3-469D-A274-A7877F48B54Dsurface_ref=surface:370surface_id=661B301A-2423-44F1-B789-7AEA1021CFCE

Recognize these keys:

  • window_ref, window_id
  • workspace_ref, workspace_id
  • pane_ref, pane_id
  • surface_ref, surface_id

Also recognize bare refs near user intent, such as workspace:1, pane:2, or surface:370.

Meaning

  • *_ref values are short cmux refs such as workspace:1, pane:2, and surface:370. They are convenient for immediate CLI calls in the same cmux instance, but can be renumbered after state changes.
  • *_id values are UUIDs for the same objects. Prefer them for identity checks and stale-ref recovery when both forms are available.
  • The most specific provided object is the default target: surface beats pane, pane beats workspace, and workspace beats window.
  • A complete block describes a hierarchy. Do not mix a surface_id from one pasted block with a workspace_ref from another unless the user clearly says they belong together.

Workflow

Step 1: Parse The Block

Extract keys case-insensitively. Accept = or : separators and ignore quotes, commas, and code fences.

Useful pattern:

text
\b(window|workspace|pane|surface)_(ref|id)\b\s*[:=]\s*["']?([A-Za-z0-9:-]+)["']?

If the user provides only bare refs, bind the most specific one as the target:

text
workspace:1 pane:2 surface:370

Step 2: Announce The Target

When taking action, say the exact target briefly:

text
I will target surface:370 in pane:2, workspace:1.

If a UUID is present, keep it in your internal target record and include it when useful for disambiguation:

text
I will target surface:370 (661B301A-2423-44F1-B789-7AEA1021CFCE).

Step 3: Verify Before Mutating

Before sending text, closing anything, moving surfaces, changing layout, or reading a screen for a non-current target, verify the target exists in the active cmux socket.

Use the current cmux CLI and request both refs and UUIDs:

bash
cmux --json --id-format both tree --allcmux --json --id-format both identifycmux --json --id-format both list-pane-surfaces --workspace <workspace_ref_or_id>

If a ref is stale but the UUID exists in tree --all, use the current ref associated with that UUID. If neither the ref nor UUID can be found, stop and ask the user for a fresh cmux ref block.

Step 4: Use Explicit Targets

Do not fall back to the visually focused workspace when the user pasted explicit refs. Pass the parsed workspace, pane, and surface to cmux commands.

Examples:

bash
cmux read-screen --workspace workspace:1 --surface surface:370 --scrollback --lines 120cmux send --workspace workspace:1 --surface surface:370 "npm test\n"cmux new-surface --workspace workspace:1 --pane pane:2 --type terminal --focus falsecmux open ./report.html --workspace workspace:1 --pane pane:2 --no-focus

If the command accepts only one handle, use the most specific relevant handle. Prefer the UUID when the command accepts UUIDs and you have verified it maps to the intended object.

Ambiguity Rules

Ask one concise question only when the target cannot be inferred safely:

  • Multiple unrelated ref blocks are pasted and the instruction says only "use this" or "that one".
  • A workspace ref and surface ref are both present but verification shows they belong to different current hierarchies.
  • The pasted identifiers are stale and no UUID match exists in cmux --json --id-format both tree --all.

Do not ask when one complete block is present. Use the most specific target in that block.

Safety Rules

  • User-provided cmux refs override caller environment variables and visual focus.
  • Preserve both the ref and UUID in notes or scripts when available.
  • Do not change focus just to verify or use a target. Prefer non-disruptive commands and --focus false or --no-focus when supported.
  • Do not close, move, or send input to a target until it has been verified in the current socket.
  • Browser snapshot element refs are separate from cmux topology refs. Use cmux-browser for DOM or webview snapshot refs.

來源與署名

來源:manaflow-ai/cmux-skills位於skills/cmux-ref提交34027c7

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架