File size: 9,835 Bytes
b7c4c8f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96f34e3
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
# CLI 命令系统

## 架构概述

### 入口

CLI 入口由 **Commander.js** 解析命令行参数,随后启动 **REPL**(交互式循环)。REPL 负责接收用户输入、解析斜杠命令、调用对应的处理函数。

### 命令注册

命令通过 **6 种来源** 注册到系统:

| 来源 | 说明 | 注册位置 |
|------|------|----------|
| **内置命令** | `COMMANDS()` 函数返回的核心命令列表 | `src/commands.ts:261-354` |
| **内置技能** | 随 CLI 打包的 Markdown 技能文件 | `getBundledSkills()` |
| **内置插件** | 内置插件导出的技能命令 | `getBuiltinPluginSkillCommands()` |
| **用户技能目录** | 用户自定义的 Markdown 技能文件 | `getSkillDirCommands()` |
| **工作流** | 多步骤脚本工作流 | `getWorkflowCommands()` |
| **市场插件** | 从插件市场安装的外部插件 | `getPluginCommands()`, `getPluginSkills()` |

### 命令过滤

`getCommands()` 是命令的最终汇聚函数,执行以下过滤:

1. **availability 检查**`meetsAvailabilityRequirement()` — 验证当前用户是否有权限(如 claude.ai 订阅者、Console API 用户)
2. **isEnabled 检查**`isCommandEnabled()` — feature flag 控制是否启用
3. **去重**:内置命令与动态技能(`getDynamicSkills()`)间去重,内置命令优先
4. **动态技能插入**:在插件命令之后、内置命令之前插入

### 远程模式过滤

`REMOTE_SAFE_COMMANDS` 集合定义了可在 `--remote` 模式下安全使用的命令(仅影响本地 TUI 状态)。

`BRIDGE_SAFE_COMMANDS``isBridgeSafeCommand()` 定义了可通过 Remote Control bridge(移动端/web 客户端)执行的命令。

---

## 内置命令详表

以下为 `COMMANDS()` 中注册的所有内置命令,按功能分组:

### 导航与信息

| 命令 | 别名 | 描述 |
|------|------|------|
| `/help` | - | 显示帮助信息,列出所有可用命令 |
| `/clear` | - | 清屏,重置终端显示 |
| `/exit` | - | 退出 CLI |
| `/init` | - | 在项目中初始化 Claude Code 配置文件 |
| `/resume` | - | 恢复之前的会话 |
| `/status` | - | 显示当前会话状态 |
| `/stats` | - | 统计信息和指标 |

### 配置管理

| 命令 | 别名 | 描述 |
|------|------|------|
| `/config` | - | 系统设置管理(theme, model, permissions 等) |
| `/model` | - | 切换 AI 模型 |
| `/theme` | - | 切换终端主题 |
| `/color` | - | 更改 AI 回复颜色 |
| `/permissions` | - | 权限模式管理 |
| `/privacySettings` | - | 隐私设置 |
| `/outputStyle` | - | 输出风格切换 |
| `/statusline` | - | 状态行开关 |
| `/effort` | - | 设置思考/推理投入度 |
| `/fast` | - | 快速模式切换 |
| `/env` | ant 内部 | 环境变量管理 |
| `/remoteEnv` | - | 远程环境变量管理 |
| `/passes` | - | 管理预设的 always-allow/always-deny 规则 |

### 会话管理

| 命令 | 别名 | 描述 |
|------|------|------|
| `/session` | - | 会话管理(分享、导出、查看记录) |
| `/cost` | - | 显示当前会话费用 |
| `/usage` | - | 显示 API 用量 |
| `/compact` | - | 压缩上下文,减少 token 消耗 |
| `/copy` | - | 复制最后一条消息 |
| `/rename` | - | 重命名当前会话 |
| `/tag` | - | 为会话添加标签 |
| `/btw` | - | 快速记笔记,补充上下文 |
| `/rewind` | - | 回滚到之前的对话状态 |

### 工具与技能

| 命令 | 别名 | 描述 |
|------|------|------|
| `/skills` | - | 管理技能(列出、启用、禁用) |
| `/mcp` | - | MCP 服务器管理(添加、连接、查看) |
| `/plugin` | - | 插件管理 |
| `/reloadPlugins` | - | 重新加载所有插件 |
| `/hooks` | - | 钩子系统管理 |
| `/keys` / `/keybindings` | - | 快捷键管理 |
| `/add-dir` | - | 添加技能目录 |
| `/terminalSetup` | - | 终端设置工具 |

### 语音与 Friend

| 命令 | 别名 | 描述 |
|------|------|------|
| `/voice` | feature 控制 | 语音听写模式 |
| `/friend` | - | Friend 虚拟宠物管理 |
| `/thinkback` | - | Thinkback 回放 |
| `/thinkbackPlay` | - | Thinkback 播放控制 |

###  Goal 与规划

| 命令 | 别名 | 描述 |
|------|------|------|
| `/goal` / `/goals` | - | 目标管理(创建、查看、更新) |
| `/plan` | - | 规划模式切换 |
| `/ultraplan` | feature 控制 | 高级规划模式 |
| `/agent` / `/agents` | - | 代理管理(列出、配置) |
| `/tasks` | - | 后台任务管理 |

### Git 与文件

| 命令 | 别名 | 描述 |
|------|------|------|
| `/diff` | - | 显示 Git diff |
| `/branch` | - | 分支管理 |
| `/files` | - | 显示会话中跟踪的文件 |
| `/commit` | ant 内部 | 创建 Git 提交 |
| `/commit-push-pr` | ant 内部 | 提交、推送、创建 PR |
| `/fork` | feature 控制 | Fork 子代理 |
| `/buddy` | feature 控制 | 协作编程伙伴 |

### 集成与外部服务

| 命令 | 别名 | 描述 |
|------|------|------|
| `/login` | - | 登录(非 3P 用户) |
| `/logout` | - | 登出 |
| `/feishu` | - | 飞书集成 |
| `/telegram` | - | Telegram 集成 |
| `/desktop` | - | 桌面应用模式 |
| `/mobile` | - | 移动端二维码 |
| `/install-github-app` | - | 安装 GitHub App |
| `/install-slack-app` | - | 安装 Slack App |
| `/bridge` | feature 控制 | 桥接模式 |
| `/peers` | feature 控制 | UDS 对等节点管理 |
| `/subscribe-pr` | feature 控制 | 订阅 PR 通知 |

### 诊断与开发

| 命令 | 别名 | 描述 |
|------|------|------|
| `/doctor` | - | 系统诊断,检查配置和依赖 |
| `/upgrade` | - | 升级 CLI 版本 |
| `/version` | ant 内部 | 显示版本信息 |
| `/heapdump` | - | 堆转储(调试用) |
| `/sandbox-toggle` | - | 沙箱模式开关 |
| `/debug-tool-call` | ant 内部 | 调试工具调用 |
| `/perf-issue` | ant 内部 | 性能问题报告 |
| `/ant-trace` | ant 内部 | Ant 追踪 |
| `/oauth-refresh` | ant 内部 | OAuth token 刷新 |
| `/color` | - | 更改 AI 颜色 |
| `/stickers` | - | 贴纸管理 |

### 反馈与分析

| 命令 | 别名 | 描述 |
|------|------|------|
| `/feedback` | - | 发送反馈 |
| `/review` | - | 代码审查 |
| `/ultrareview` | - | 深度代码审查 |
| `/security-review` | - | 安全审查 |
| `/insights` | - | 会话分析报告 |
| `/extra-usage` | - | 额外用量显示 |
| `/rate-limit-options` | - | 速率限制选项 |
| `/summary` | ant 内部 | 会话摘要生成 |
| `/share` | ant 内部 | 分享会话 |
| `/release-notes` | - | 版本发布说明 |
| `/cost` | - | 会话费用 |
| `/usage` | - | 使用情况 |

### 实验性 & Feature-gated

| 命令 | 别名 | 描述 |
|------|------|------|
| `/proactive` | feature 控制 | 主动模式 |
| `/brief` | feature 控制 | 简报模式 |
| `/assistant` | feature 控制 | 助手模式 |
| `/torch` | feature 控制 | Torch 调试工具 |
| `/web` / `/remote-setup` | feature 控制 | 远程设置 |
| `/workflows` | feature 控制 | 工作流管理 |
| `/force-snip` | feature 控制 | 强制截断上下文 |
| `/remoteControlServer` | feature 控制 | 远程控制服务器 |
| `/buddy` | feature 控制 | 编程伙伴 |
| `/agents-platform` | ant 内部 | 代理平台管理 |
| `/bughunter` | ant 内部 | Bug 猎人工具 |
| `/autofix-pr` | ant 内部 | 自动修复 PR |
| `/backfill-sessions` | ant 内部 | 回填会话数据 |
| `/issue` | ant 内部 | 问题管理 |
| `/onboarding` | ant 内部 | 引导流程 |
| `/teleport` | ant 内部 | 远程会话跳转 |
| `/good-claude` | ant 内部 | 内部工具 |
| `/ctx_viz` | ant 内部 | 上下文可视化 |
| `/mock-limits` | ant 内部 | Mock 限制测试 |
| `/bridge-kick` | ant 内部 | 桥接踢出 |
| `/reset-limits` | ant 内部 | 重置限制 |

---

## Skill 系统

技能(Skills)是以 Markdown 文件形式定义的提示词模板,可被 LLM 或用户调用。技能系统分为:

- **打包技能(Bundled Skills)**:随 CLI 发布的内置 `.md` 文件
- **用户技能目录(Skill Dir Commands)**:用户在工作区 `./claude/skills/` 或全局 `~/.claude/skills/` 中定义的技能
- **插件技能(Plugin Skills)**:从插件加载的技能
- **MCP 技能**:通过 MCP 协议提供的技能(`getMcpSkillCommands()`)

技能文件的 YAML frontmatter 定义 `name``description``model` 等属性,正文为发送给 LLM 的提示词。

### 技能相关工具

- `SkillTool`:AI 可调用的技能执行工具
- `getSkillToolCommands()`:获取所有可被模型调用的 prompt 类型命令
- `getSlashCommandToolSkills()`:获取斜杠命令可用的技能列表

---

## 工作流系统

工作流(Workflows)是通过 `WorkflowTool` 实现的多步骤脚本,支持:

- 顺序执行多个步骤
- 条件分支
- 变量传递
- 用户确认点

当 `WORKFLOW_SCRIPTS` feature flag 启用时,工作流命令通过 `createWorkflowCommand()` 注册。

---

## 命令类型

`Command` 类型包括三种变体:

| 类型 | 说明 |
|------|------|
| `prompt` | 扩展为提示词发送给模型(技能、工作流) |
| `local` | 本地执行,输出纯文本 |
| `local-jsx` | 本地执行,渲染 Ink UI 组件 |

---

## 配置管理

`/config` 命令管理系统设置。配置值存储在:

- **用户设置**`~/.claude/settings.json`
- **项目设置**`.claude/settings.json`(项目级覆盖)
- **会话设置**:仅当前会话有效

支持的配置项包括 theme、model、permissions(权限模式)、音效、通知等。

相关文件:
- `/home/yuki/Code/Agent/Codev/src/commands.ts` — 命令注册与过滤核心
- `/home/yuki/Code/Agent/Codev/src/types/command.ts` — Command 类型定义
- `/home/yuki/Code/Agent/Codev/src/skills/loadSkillsDir.ts` — 技能目录加载
- `/home/yuki/Code/Agent/Codev/src/tools/WorkflowTool/` — 工作流工具实现