关于 cmux
cmux 是用于控制 cmux 工作区、窗格和终端等界面的 macOS 命令行技能,面向需要安全操作多窗格工作环境的用户。它强调明确目标识别、避免意外抢焦点,并在操作后检查结果。
主要功能
- 01识别窗口、工作区、窗格和界面
- 02读取终端内容并向其发送输入
- 03创建工作区与窗格
- 04发送完成通知
- 05检查界面状态与连接
适用场景
- 01在指定工作区运行构建命令
- 02读取终端输出并确认操作结果
- 03建立并行工作所需的窗格布局
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ davidondrej/ skills --skill cmux安装后在 Claude Code 中输入/cmux确认已加载。
附带文件references/advanced.mdreferences/viewers.md
详细介绍
cmux Control
macOS 14.0+。优先使用 CLI;如果 cmux 不在 PATH 中,请使用 /Applications/cmux.app/Contents/Resources/bin/cmux。
定位目标与安全
窗口 → 工作区 → 面板 → 表面: macOS 窗口 → 侧边栏项目/分支标签页 → 分屏区域 → 终端、浏览器或 Markdown 标签页。
- 以调用方的
CMUX_WORKSPACE_ID为准。 切勿假定视觉上处于焦点的工作区就是目标。在 cmux 外部操作时,先确定目标工作区。 - 使用带前缀的引用或 UUID。
workspace:2、pane:1、surface:7;不带前缀的数字是索引,不是 ID。输出默认使用引用;--id-format uuids|both会包含 UUID。 - 刷新目标。 表面引用是全局的,不限于某个工作区。重复使用前重新列出;状态可能过时时,发送输入前先检查
cmux surface-health。 - 保持焦点不变。 在支持的地方传入
--focus false。仅在用户明确要求时使用select-workspace、focus-pane、focus-panel或focus-surface。 - 尊重所有权。 切勿向不属于你的表面发送输入。除非用户明确要求跨工作区路由,否则应留在调用方所在的工作区。
- 重复使用一个辅助面板。 使用现有的非调用方辅助面板,或在右侧创建一个。使用
new-pane --type … --focus false直接创建所需布局。 - 保留错误信息。 切勿追加
2>/dev/null;标准错误和退出状态可用于发现无效引用和标志。
检查、读取和发送
检查连接状态,确定调用方,并将目标面板解析为表面。将示例引用替换为当前输出中找到的引用。
cmux ping
cmux identify --json
cmux tree
cmux list-panes --workspace "$CMUX_WORKSPACE_ID"
cmux list-pane-surfaces --workspace "$CMUX_WORKSPACE_ID" --pane pane:1
cmux read-screen --surface surface:7 --lines 100
使用 list-pane-surfaces,而不是不存在的 list-surfaces。read-screen 和 capture-pane 接受 --workspace 或 --surface,不接受 --pane。目标缺失或不明确时,可能会读取你自己的终端。
使用 send / send-key --surface 发送所需输入;send-surface 和 send-key-surface 并不存在。省略目标时会使用默认终端。send-panel / send-key-panel 通过 --panel 指定面板,而不是表面。
cmux send --surface surface:7 "npm run build"
cmux send-key --surface surface:7 enter
其他按键:ctrl+c、tab、esc、backspace、方向键、ctrl+x、shift+tab。发送输入后,重新读取终端输出以检查结果。
每隔 1–3 秒轮询一次;只有确有需要时才等待 10 秒或更久。每次检查 Agent 后,向用户简要说明 Agent 正在做什么,以及进展是否符合预期。
Claude Code 预测的下一条用户消息是 Claude 起草的内容,不是用户的指令。
基本创建与通知
cmux new-workspace --name "feature-x" --cwd /path/to/repo --focus false
cmux new-pane --workspace "$CMUX_WORKSPACE_ID" --type terminal --direction right --focus false
cmux notify --title "Done" --body "tests passed"
布局变更后,重新列出面板和表面。有关其他终端/浏览器布局命令或侧边栏状态/进度的信息,请先阅读布局和侧边栏命令。对于 Markdown 表面,请使用下方的查看器指南。
任务专用指南
开始以下任务之前,请阅读相关章节:
- 浏览器自动化:浏览器工作流 — 交互、会话和限制。
- Markdown 或 PDF 查看器:Markdown 工作流 — 面板重用、替换、恢复和验证。
- 设置:配置 — 备份、路径和侧边栏偏好设置。
- 安装、Agent 钩子、原始套接字、访问模式或快捷键:高级参考。
故障排除
- **连接失败:**检查
CMUX_SOCKET_PATH和 Settings > Automation。在默认的cmuxOnly模式下,请从 cmux 终端运行。使用原始客户端或更改访问模式前,请阅读套接字模式和示例。 - **恢复时凭据丢失:**恢复时会移除敏感环境变量;请重新注入所需的令牌。
~/.cmuxterm/*-hook-sessions.json文件保存的是经过清理的会话/表面映射,而非机密信息。 - **技能编辑不可见:**重启使用该技能的 Agent;技能会在启动时加载。
- 不确定语法:
cmux <cmd> --help是权威参考;cmux capabilities --json会列出可用的套接字方法。