Claude Code的斜杠命令(Slash Commands)是控制会话行为的快捷指令,分为内置命令、技能(Skills)、插件命令和MCP提示四类,其中内置命令超过60个。本文将系统解析内置命令库,详解如何通过创建SKILL.md文件来自定义命令,并深入介绍参数替换、动态上下文注入等高级用法与命令处理架构,帮助你从基础到高级全面掌握斜杠命令。
Claude Code 斜杠命令全解析:60+ 内置命令与自定义命令创建
斜杠命令是 Claude Code 交互式会话中的核心控制手段。在输入框中键入 / 即可唤出所有可用命令的菜单。本文将作为你的完整参考指南,涵盖内置命令速查、自定义命令创建以及其背后的工作原理。
命令分类概览
Claude Code 的斜杠命令系统分为四个层级,它们的来源和优先级不同:
- 内置命令:由 Claude Code 直接提供,用于控制会话、模型、工具等。
- 技能命令:用户或团队创建的自定义命令,存放于
.claude/skills/或旧版的.claude/commands/目录。 - 插件命令:通过安装插件获得的额外命令。
- MCP 提示命令:来自 MCP 服务器的提示,以
/mcp__<server>__<prompt>格式调用。
重要变更:自定义斜杠命令功能已合并入技能。
.claude/commands/目录中的文件仍可工作,但.claude/skills/是当前推荐的方式。两者都会创建/command-name快捷方式。如果同名命令同时存在,技能版本会优先使用。
内置命令完整速查表
Claude Code 提供了超过 60 个内置命令和 5 个捆绑技能。以下表格列出了核心的内置命令,涵盖会话管理、环境配置、开发辅助等多个类别。
会话与环境管理
| 命令 | 功能说明 |
|---|---|
/clear |
清除当前对话(别名:/reset, /new) |
/exit |
退出 REPL(别名:/quit) |
/compact [instructions] |
压缩对话历史,可附加聚焦指令 |
/branch [name] |
将对话分支到一个新会话(别名:/fork) |
/resume [session] |
恢复之前的对话(别名:/continue) |
/rename [name] |
重命名当前会话 |
/context |
以彩色网格可视化上下文使用情况 |
/sandbox |
切换沙盒模式 |
模型与工作模式控制
| 命令 | 功能说明 |
|---|---|
/model [model] |
选择模型,可使用左右箭头调整推理强度 |
/effort [low|medium|high|xhigh|max|auto] |
通过交互式滑块设置推理强度等级 |
/fast [on|off] |
切换快速模式 |
/plan [description] |
进入规划模式 |
/voice |
切换按键说话的语音听写功能 |
/color [color|default] |
设置提示栏颜色,无参数时随机选择颜色 |
开发工具与集成
| 命令 | 功能说明 |
|---|---|
/diff |
交互式查看未提交的变更差异 |
/doctor |
诊断安装健康状态,可自动修复问题 |
/init |
初始化 CLAUDE.md 文件 |
/memory |
编辑 CLAUDE.md 或切换自动记忆 |
/permissions |
查看或更新权限(别名:/allowed-tools) |
/less-permission-prompts |
分析近期工具调用,通过添加允许列表减少权限提示 |
/mcp |
管理 MCP 服务器和 OAuth |
/plugin |
管理插件 |
/ide |
管理 IDE 集成 |
任务与输出管理
| 命令 | 功能说明 |
|---|---|
/goal <statement> |
注册会话级别的完成条件,Claude 会持续工作直至目标达成。使用 /goal clear 移除。 |
/tasks |
列出或管理后台任务 |
/copy [N] |
复制助手回复到剪贴板,w 表示写入文件 |
/export [filename] |
将当前对话导出到文件或剪贴板 |
/rewind |
回退对话和/或代码(别名:/checkpoint) |
/recap |
返回会话时显示会话摘要 |
/insights |
生成会话分析报告 |
团队与项目辅助
| 命令 | 功能说明 |
|---|---|
/team-onboarding |
基于项目的 Claude Code 设置生成新成员引导指南 |
/review |
已弃用 – 请改为安装 code-review 插件 |
/security-review |
分析分支的安全漏洞 |
/install-github-app |
设置 GitHub Actions 应用 |
5 个捆绑技能
这些技能随 Claude Code 一起发布,像斜杠命令一样调用:
/batch <instruction>:使用 worktree 编排大规模并行更改。/claude-api:加载项目语言对应的 Claude API 参考。/debug [description]:启用调试日志。/loop [interval] <prompt>:按间隔重复运行提示。/code-review [effort]:审查当前差异的正确性缺陷(原/simplify,于 v2.1.146 重命名)。
已弃用/移除的命令
| 命令 | 状态 |
|---|---|
/review |
已弃用,由 code-review 插件替代 |
/output-style |
自 v2.1.73 起弃用 |
/fork |
已重命名为 /branch(别名仍有效) |
/pr-comments |
自 v2.1.91 起移除,直接询问 Claude 查看 PR 评论 |
/vim |
自 v2.1.92 起移除,请使用 /config → 编辑器模式 |
创建自定义命令(推荐使用技能)
当前创建自定义斜杠命令的推荐方式是使用技能。它取代了旧的 .claude/commands/ 方法,提供了更强大的功能,如自动调用、脚本捆绑和子代理执行。
步骤 1:创建技能文件
在项目根目录的 .claude/skills/ 下创建一个以命令名命名的目录,并在其中创建 SKILL.md 文件。
# 为命令创建目录
mkdir -p .claude/skills/my-command
步骤 2:编写 SKILL.md
文件由 YAML frontmatter 和 Markdown 正文组成。Frontmatter 定义命令的元数据。
---
name: my-command
description: 简要描述该命令的作用和触发条件。
argument-hint: [可选-参数提示]
allowed-tools: Bash(npm *), Read, Grep
# 其他可选字段...
---
# 命令标题
这是当用户调用 `/my-command` 时,Claude 将遵循的指令。
## 指令
1. 执行第一步。
2. 使用参数:$ARGUMENTS
3. 动态获取上下文:!`git status`
Frontmatter 字段参考
| 字段 | 作用 | 默认值 |
|---|---|---|
name |
命令名称(成为 /name) |
目录名 |
description |
简要描述(帮助 Claude 知道何时使用) | 文件的第一段文字 |
argument-hint |
预期的参数提示,用于自动补全 | 无 |
allowed-tools |
命令无需许可即可使用的工具 | 继承 |
model |
指定使用的特定模型 | 继承 |
disable-model-invocation |
若为 true,则仅用户可调用(Claude 不会自动触发) |
false |
user-invocable |
若为 false,则从 / 菜单中隐藏 |
true |
context |
设为 fork 可在隔离的子代理中运行 |
无 |
agent |
使用 context: fork 时的代理类型 |
general-purpose |
hooks |
技能范围的钩子(PreToolUse, PostToolUse, Stop) | 无 |
参数与动态上下文高级用法
参数替换
命令可以接收参数,并在提示中通过特定变量进行替换。
$ARGUMENTS:替换为用户输入的所有参数。$0,$1,$2…:替换为用户输入的按空格分隔的第1、2、3…个参数。
示例:创建修复 Issue 的命令
---
name: fix-issue
description: 按编号修复 GitHub Issue
---
修复 Issue #$ARGUMENTS,遵循我们的编码标准。
调用方式:/fix-issue 123,Claude 收到的提示是“修复 Issue #123,遵循我们的编码标准。”
动态上下文注入(Shell 命令)
在提示正文中,可以使用 !`command` 语法在命令执行前运行 bash 命令,并将输出动态注入上下文。这对于提供实时的仓库状态至关重要。
示例:创建 Git 提交命令
---
name: commit
description: 基于上下文创建 Git 提交
allowed-tools: Bash(git *)
---
## 上下文
- 当前 Git 状态:!`git status`
- 当前差异:!`git diff HEAD`
- 当前分支:!`git branch --show-current`
- 最近提交:!`git log --oneline -5`
## 你的任务
根据以上变更,创建一个符合规范的 Git 提交。
当调用 /commit 时,Claude 会先执行上述 shell 命令,将结果作为上下文的一部分,再执行后续指令。
文件引用
使用 @ 符号可以直接将文件内容包含在提示中。
审查 @src/utils/helpers.js 中的实现。
比较 @src/old-version.js 和 @src/new-version.js 的差异。
MCP 提示作为命令
MCP 服务器可以将其提示暴露为斜杠命令,格式为:
/mcp__<server-name>__<prompt-name> [arguments]
示例:
/mcp__github__list_prs:列出 GitHub PR。/mcp__github__pr_review 456:审查指定的 PR。/mcp__jira__create_issue "Bug 标题" high:创建 Jira Issue。
MCP 权限语法
在权限设置中控制对 MCP 服务器的访问:
mcp__github:访问整个 GitHub MCP 服务器。mcp__github__*:通配符访问所有工具。mcp__github__get_issue:访问特定工具。
命令处理架构与生命周期
理解命令从输入到执行的过程,有助于你更好地设计和调试自定义命令。
四类命令处理流程
graph TD
A["用户输入:/command-name"] --> B{"命令类型?"}
B -->|内置| C["执行内置逻辑"]
B -->|技能| D["加载 SKILL.md"]
B -->|插件| E["加载插件命令"]
B -->|MCP| F["执行 MCP 提示"]
D --> G["解析 Frontmatter"]
G --> H["替换变量 $ARGUMENTS"]
H --> I["执行 Shell 命令 !`...`"]
I --> J["发送至 Claude"]
J --> K["返回结果"]
命令执行生命周期时序图
sequenceDiagram
participant User as 用户
participant Claude as Claude Code
participant FS as 文件系统
participant CLI as Shell/Bash
User->>Claude: 输入 /optimize
Claude->>FS: 搜索 .claude/skills/ 和 .claude/commands/
FS-->>Claude: 返回 optimize/SKILL.md
Claude->>Claude: 解析 frontmatter
Claude->>CLI: 执行 !`command` 替换
CLI-->>Claude: 命令输出
Claude->>Claude: 替换 $ARGUMENTS
Claude->>User: 处理提示
Claude->>User: 返回结果
最佳实践与故障排除
设计原则
- 命名清晰:使用动词开头、含义明确的名称(如
/fix-lint,/generate-test)。 - 描述准确:
description字段应说明触发条件,这对自动调用至关重要。 - 职责单一:一个命令专注于完成一个明确的任务。
- 安全优先:涉及副作用(如部署、提交)的命令,务必设置
disable-model-invocation: true。 - 善用上下文:使用
!`command`注入实时状态,避免让 Claude 猜测。
常见问题解决
问题:输入 / 后看不到我的命令?
- 检查文件路径是否正确:必须是
.claude/skills/<name>/SKILL.md或.claude/commands/<name>.md。 - 验证
SKILL.md文件的name字段是否与你期望的命令名一致。 - 如果
user-invocable设置为false,命令将被隐藏。 - 尝试重启 Claude Code 会话或运行
/help查看可用命令列表。
问题:命令执行报错或行为不符预期?
- 在
SKILL.md中提供更详细、有示例的指令。 - 检查
allowed-tools字段是否允许了命令所需的工具(如需要执行 shell 命令则必须有Bash权限)。 - 使用简单的输入先进行测试。
问题:技能与旧命令同名冲突?
- 如果
.claude/skills/review/SKILL.md和.claude/commands/review.md同时存在,技能版本会覆盖命令版本。 - 解决方法:删除其中一个,或重命名其中一个文件。
相关指南
掌握斜杠命令后,你可以进一步探索 Claude Code 的其他核心功能:
- 技能系统:深入了解技能的高级特性,如自动调用和子代理执行。
- 记忆系统:学习如何通过
CLAUDE.md持久化跨会话的上下文和偏好。 - 8 个实战斜杠命令模板:获取更多可直接复制使用的命令模板。
FAQ
Q: 如何查看所有可用的斜杠命令?
A: 在 Claude Code 会话中直接输入 / 即可弹出命令菜单,显示所有内置命令和自定义技能命令。输入 / 后继续键入字母可以进行筛选。
Q: 自定义命令应该放在哪个目录?
A: 推荐的新方式是创建在 .claude/skills/<命令名>/SKILL.md。旧的方式 .claude/commands/<命令名>.md 仍然兼容,但不推荐用于新项目。
Q: 技能文件 (.claude/skills/) 和旧命令文件 (.claude/commands/) 的关系是什么?
A: 功能上是合并的,都会创建 /command-name。新版本的技能系统功能更强(支持自动触发、捆绑脚本等)。如果同名,技能版本优先。
Q: 如何让 Claude 自动调用我创建的命令?
A: 在技能的 SKILL.md frontmatter 中确保 disable-model-invocation 字段为 false(默认值),并且 description 字段清晰描述了触发条件。Claude 会在认为合适时自动建议或使用该技能。
Q: MCP 提示命令的命名规则是什么?
A: 遵循 /mcp__<server-name>__<prompt-name> 的格式。其中 <server-name> 是在 MCP 配置中定义的服务器名称,<prompt-name> 是该服务器暴露的提示名称。