命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
启动并驱动项目应用查看变更效果
/run 是 Claude Code 的 bundled skill(捆绑技能),而非执行固定逻辑的 built-in 命令。它负责在真实运行时表面启动并驱动当前项目的应用,让你直接观察代码变更的效果——而不只依赖测试用例的通过。
与 built-in 命令(如 /help、/compact)不同,bundled skill 是 prompt 驱动的:它给 Claude 一套详细指令,由 Claude 用自身工具来编排具体操作。换言之,/run 不是写死逻辑的 built-in 命令,而是 Claude Code 随附的一个 bundled skill。
在会话中直接输入:
/run
也可以附带描述性上下文让 Claude 聚焦:
/run 验证登录页在移动端宽度下的渲染
/run 触发后先找项目级 skill,找不到再回落到内置推断:
第一步:检查 .claude/skills/ 或 .claude/commands/ 下是否存在
专为本项目编写的 run skill(如 run-myapp/SKILL.md)
第二步:若不存在,自动读取 README、package.json、Makefile 等,
推断项目类型并选择对应的内置启动模板
| 项目类型 | 驱动方式 |
|---|---|
| Web server / API | 后台启动 + curl 接口冒烟测试 |
| CLI 工具 | 构建、调用并核验退出码 |
| TUI / 终端应用 | tmux 包装,send-keys / capture-pane 驱动 |
| Electron / 桌面 GUI | Playwright _electron 在 xvfb 下驱动 |
| 浏览器驱动应用 | 启动 dev server + Chromium 脚本控制 |
| Library / SDK | 导入并调用冒烟脚本 |
/run 优先读取项目 skill,因此为关键项目创建一个能显著提高准确率:
.claude/
└── skills/
└── run-myapp/
├── SKILL.md ← Agent 指令,相当于 man page
└── driver ← 可执行代码,真正控制运行中的 app
SKILL.md 描述 how,driver 是实际交付物:只有 driver 能以编程方式点击按钮、发送请求、捕获输出,skill 才算完整;否则不过是重写了一遍 README。
若需在某项目中关闭 /run 及其他 bundled skill,在项目或用户级 settings.json 中设置:
{
"disableBundledSkills": true
}
/run | /verify | 手写 Bash | |
|---|---|---|---|
| 定位 | 启动 + 驱动 app | 验证某次变更是否生效 | 任意命令 |
| 需要 setup | 无(自动推断) | 无 | 无 |
| 项目类型感知 | 是 | 是 | 否 |
| 适合 UI 检查 | 是(含截图) | 是 | 需自行搭建 |
| 实现机制 | prompt 驱动 skill | prompt 驱动 skill | 直接执行 |
/run,目测真实效果,而非只看测试绿灯/run,Claude 自行推断并执行package.json / Makefile 推断启动方式;若这些文件描述不完整或过时,Claude 可能选错命令。解决方案是为项目创建专属的 .claude/skills/run-<项目名>/ skill。SKILL.md 里的每条命令都应是"在当前容器/机器实际跑通过"的,照搬 README 而未验证,会导致 skill 在 CI 或他人机器上静默失败。