Claude Code的斜杠命令(Slash Commands)是控制会话行为的快捷指令,分为内置命令、技能(Skills)、插件命令和MCP提示四类,其中内置命令超过60个。本文将系统解析内置命令库,详解如何通过创建SKILL.md文件来自定义命令,并深入介绍参数替换、动态上下文注入等高级用法与命令处理架构,帮助你从基础到高级全面掌握斜杠命令。

Claude Code 斜杠命令全解析:60+ 内置命令与自定义命令创建

斜杠命令是 Claude Code 交互式会话中的核心控制手段。在输入框中键入 / 即可唤出所有可用命令的菜单。本文将作为你的完整参考指南,涵盖内置命令速查、自定义命令创建以及其背后的工作原理。

命令分类概览

Claude Code 的斜杠命令系统分为四个层级,它们的来源和优先级不同:

  1. 内置命令:由 Claude Code 直接提供,用于控制会话、模型、工具等。
  2. 技能命令:用户或团队创建的自定义命令,存放于 .claude/skills/ 或旧版的 .claude/commands/ 目录。
  3. 插件命令:通过安装插件获得的额外命令。
  4. 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 的其他核心功能:

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> 是该服务器暴露的提示名称。