mcpField
C
cmux-cli

cmux-cli

github.com/robsonrung开发241 次安装今天更新
代码仓库

关于 cmux-cli

cmux-cli 是通过命令行操作 cmux 工作区、面板和终端界面的技能。它要求明确解析操作目标,并查询变更后的状态,再报告操作结果。

主要功能

  1. 01识别当前窗口、工作区和界面
  2. 02按工作区、窗口或界面指定目标
  3. 03管理工作区、分屏和面板焦点
  4. 04发送终端文本和按键输入
  5. 05通过 cmux 状态查询核验变更

适用场景

  1. 01向指定终端界面发送命令
  2. 02创建或聚焦指定工作区面板
  3. 03确认状态、进度或通知

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/robsonrung/rar-skills --skill cmux-cli

安装后在 Claude Code 中输入/cmux-cli确认已加载。

附带文件agents/openai.yamlreferences/cli-reference.md

详细介绍

cmux CLI

选择模型前先选择分支。此工作流使用当前协调器和直接工具运行,不会派发工作器。

默认使用 cmux CLI 作为接口。将每条命令视为针对特定工作区、面板或表面执行。以可观测行为为准:说明预期目标,运行命令,然后查询能够证明结果的 cmux 状态。

建立上下文

  1. 运行 cmux ping。如果失败,报告 cmux 不可用或未响应。除非用户要求,否则不要安装它、修改套接字设置或使用其他终端管理器。
  2. 运行 cmux identify --json,捕获当前聚焦的窗口、工作区、面板和表面。如果请求指定的不是当前聚焦的工作区,则使用 cmux current-workspace --json 或 cmux list-workspaces --json。
  3. 对于非聚焦目标,从 JSON 输出中解析其标识符,并传入文档规定的作用域标志:--window、--workspace 或 --surface。如果需要区分引用 ID 和 UUID,请请求 --id-format both。

请说:“我将验证的可观测行为是表面 <id> 收到请求的输入。”如果可以通过最新查询确定目标,切勿根据之前的命令推断目标。

执行请求的操作

每次 shell 调用只运行一条 cmux 命令。解析 ID 或报告状态时,优先使用 JSON 输出。如果操作不常见,或下文未列出确切标志,请从此技能目录中读取 references/cli-reference.md。

工作区和面板
cmux new-workspace
cmux select-workspace --workspace <workspace-id>
cmux new-split right
cmux list-panels --json
cmux focus-panel --panel <surface-id>

new-split 接受 left、right、up 或 down。仅当用户要求更改状态时,才创建工作区或拆分面板。在运行 close-workspace --workspace <workspace-id> 前,先确认工作区并取得用户明确的关闭意图。

终端输入

已知目标时,将文本发送到指定表面。如果文本是要执行的命令,请另行发送 Enter。

cmux send --surface <surface-id> "npm test"
cmux send-key --surface <surface-id> enter

send 会更改终端输入,send-key enter 会执行输入内容。不要为了检查状态而向终端发送命令。先使用 cmux 查询命令进行检查。send-key 支持 enter、tab、escape、backspace、delete 和方向键。

状态、进度、日志和通知

状态应使用唯一且限定于任务的键。仅清除由该键管理的状态。只有用户要求报告任务状态时,才设置状态、进度或日志。只有用户明确要求时,才创建通知。

cmux set-status task-build "running" --icon hammer --color "#ff9500" --priority 80
cmux set-progress 0.5 --label "Tests running"
cmux log --level progress --source task-build "Tests started"
cmux notify --title "Task complete" --body "Tests passed"

clear-notifications 和 clear-log 会移除共享状态。仅在用户明确要求时运行其中任一命令。使用 cmux sidebar-state 报告最终状态、进度和近期操作上下文。

验证并报告

验收约定:命令成功运行后,再执行独立的 cmux 查询,以显示请求的结果:

请求的结果验证方式
已选择工作区cmux current-workspace --json
拆分面板或聚焦表面已更改cmux list-panels --json 和 cmux identify --json
状态或进度已更新cmux sidebar-state
已创建通知cmux list-notifications --json

对于终端输入,请报告目标以及发送的确切文本或按键。除非能观察到终端命令自身的输出,否则不要声称该命令已成功。报告 cmux 命令、解析出的目标和验证结果。如果 cmux 返回错误,请停止请求的操作并附上错误文本。

套接字边界

除非用户明确要求使用套接字自动化,否则使用 CLI。对于套接字请求,请读取 references/cli-reference.md;仅使用包含 id、method 和 params 的 JSON 请求。未经用户明确批准,不要启用 CMUX_SOCKET_MODE=allowAll 或修改 CMUX_SOCKET_PATH。

评论

支持 Markdown