02

斜杠命令

55+ 内置命令 + 无限自定义,掌握 Claude Code 的快捷操控

内置命令概览

在 Claude Code 中输入 /,你会看到一个命令菜单。Claude Code 提供了 55+ 内置命令5 个捆绑技能,覆盖从会话管理到代码审查的方方面面。继续输入字母可以过滤命令列表。

斜杠命令分为四大类型:

内置命令

Claude Code 自带的命令,如 /help/clear/model

技能命令

用户创建的 SKILL.md 文件,如 /optimize/pr

📦
插件命令

已安装插件提供的命令,如 /frontend-design:frontend-design

🔌
MCP 命令

MCP 服务器暴露的命令,如 /mcp__github__list_prs

下面是最常用的内置命令,按功能分类:

会话管理

/clear 清空对话(别名:/reset/new
/compact 压缩对话历史,可选聚焦方向,释放上下文空间
/resume 恢复之前的对话(别名:/continue
/branch 将对话分支到新会话(别名:/fork
/rename 重命名当前会话
/exit 退出 Claude Code(别名:/quit

模型与性能

/model 切换模型,左右箭头调整 effort 等级
/effort 设置思考力度:low / medium / high / max / auto
/fast 切换快速模式(on/off)
/cost 查看 token 用量统计
/context 以彩色网格可视化上下文使用情况

开发工具

/diff 交互式查看未提交的代码变更
/rewind 回退对话和/或代码(别名:/checkpoint
/plan 进入规划模式,先思考再动手
/pr-comments 获取 GitHub PR 评论
/security-review 分析分支安全漏洞

系统配置

/config 打开设置(别名:/settings
/memory 编辑 CLAUDE.md,切换自动记忆
/permissions 查看/更新工具权限
/mcp 管理 MCP 服务器和 OAuth
/hooks 查看钩子配置
/init 初始化 CLAUDE.md 项目记忆文件

捆绑技能

/batch 使用 worktrees 编排大规模并行变更
/claude-api 加载项目语言的 Claude API 参考文档
/debug 启用调试日志
/loop 按时间间隔重复运行提示
/simplify 审查已改变的文件,提升代码质量
💡
快速过滤

输入 / 后继续打字就能过滤命令。比如输入 /mo 会筛选出 /model/mobile 等。不需要记住所有命令 — 模糊搜索就够了。

自定义命令:从模板到技能

内置命令是基础,但 Claude Code 的真正威力在于自定义命令。你只需要创建一个 Markdown 文件,就能拥有自己的斜杠命令。

自定义命令现在推荐使用 Skills(技能)格式。旧的 .claude/commands/ 方式仍然兼容,但技能提供了更多高级功能:

📁
目录结构

可以捆绑脚本、模板和参考文件

🤖
自动触发

Claude 遇到相关场景时自动激活,无需手动输入

🔀
子代理执行

设置 context: fork 在独立上下文中运行

🎛️
调用控制

指定只有用户、只有 Claude、或双方都可以调用

创建一个自定义技能命令只需两步:

.claude/skills/optimize/SKILL.md
---
name: optimize
description: 分析代码性能并优化。当用户要求优化代码时使用。
allowed-tools: Bash(npm *), Read, Grep
---

# 代码优化

分析当前项目的代码,找出以下问题:

1. 性能瓶颈和内存泄漏
2. 不必要的重复计算
3. 可以简化的复杂逻辑
4. 缺失的错误处理
逐行解读
YAML 前置数据开始标记 命令名称 — 输入 /optimize 触发 描述 — 帮助 Claude 判断何时自动调用 允许使用的工具 — 无需每次授权 YAML 前置数据结束标记 Markdown 标题,命令的显示名称 给 Claude 的指令 — 明确要做什么 具体检查项 1:性能问题 具体检查项 2:重复计算 具体检查项 3:复杂逻辑 具体检查项 4:错误处理

Frontmatter(前置数据)支持丰富的配置字段:

name 命令名称,变成 /name。默认使用目录名
description 简要描述,帮助 Claude 判断何时使用
argument-hint 参数提示,用于自动补全
allowed-tools 命令可使用的工具,无需逐一授权
disable-model-invocation 设为 true 则只有用户能触发,Claude 不能自动调用
context 设为 fork 在独立子代理中运行
💡
迁移提示

旧格式 .claude/commands/optimize.md 仍然有效。如果技能和旧命令同名,技能优先。建议逐步迁移到 .claude/skills/optimize/SKILL.md 格式。

MCP 命令与插件命令

除了内置命令和自定义技能,斜杠命令还有两个来源:MCP 服务器插件。它们让 Claude Code 的能力边界无限扩展。

MCP 命令

MCP 服务器可以将自己的功能暴露为斜杠命令。命名格式为:

MCP 命令格式
# MCP 命令的通用格式
/mcp__<服务器名>__<提示名> [参数]

# 实际使用示例
/mcp__github__list_prs
/mcp__github__pr_review 456
/mcp__jira__create_issue "Bug 标题" high
逐行解读
MCP 命令的固定前缀格式 格式:/mcp__ + 服务器名 + __ + 提示名 + 可选参数 下面是几个真实例子 列出 GitHub 仓库的所有 PR 审查编号为 456 的 PR 在 Jira 上创建一个高优先级 Bug

MCP 权限控制也很灵活:

mcp__github 允许访问整个 GitHub MCP 服务器
mcp__github__* 通配符 — 访问所有 GitHub 工具
mcp__github__get_issue 精确控制 — 只允许获取 Issue

插件命令

安装的插件也会提供斜杠命令。如果没有命名冲突,可以直接用 /命令名;有冲突时用完整格式:

/commit 无冲突时直接使用短名称
/commit-commands:commit 有冲突时使用 /插件名:命令名 格式
💡
命令架构

当你输入 /命令名 时,Claude Code 按优先级查找:内置命令 → 技能(SKILL.md) → 插件命令 → MCP 提示。同名时优先级高的生效。

命令参数与动态上下文

斜杠命令不是死板的模板 — 它们支持参数传递动态上下文注入,让每次调用都能根据当前环境做出不同响应。

参数传递

命令支持两种参数方式:

参数方式 1:$ARGUMENTS(全部参数)
---
name: fix-issue
description: 修复 GitHub Issue
---

修复 Issue #$ARGUMENTS,遵循我们的编码规范
逐行解读
YAML 前置数据开始 命令名:/fix-issue 描述信息 YAML 前置数据结束 $ARGUMENTS 会被替换为用户输入的全部参数。如 /fix-issue 123 → "123"
参数方式 2:$0、$1...(按位参数)
---
name: review-pr
description: 按优先级审查 PR
---

审查 PR #$0,优先级为 $1
逐行解读
YAML 前置数据开始 命令名:/review-pr 描述信息 YAML 前置数据结束 $0 是第一个参数,$1 是第二个。如 /review-pr 456 high → $0="456",$1="high"

动态上下文注入

在 SKILL.md 中,可以用两种方式注入实时数据:

动态上下文语法
# Shell 命令 — 用 !` ` 包裹
当前分支:!`git branch --show-current`
最近提交:!`git log --oneline -5`
Git 状态:!`git status`

# 文件引用 — 用 @ 前缀
查看实现:@src/utils/helpers.js
对比文件:@src/old.js 与 @src/new.js
逐行解读
Shell 命令:在 SKILL.md 加载时自动执行并替换为输出 获取当前 Git 分支名 获取最近 5 条提交记录 获取当前工作区状态 文件引用:将文件内容注入到提示中 引用 helpers.js 的完整内容 同时引用两个文件,方便对比
💡
为什么需要动态上下文?

Claude 不知道你当前的 Git 状态或文件内容。用 !`command` 在命令加载时自动注入实时数据,让 Claude 的回答始终基于最新状态,而不是过时的猜测。

实战命令示例

学了语法,来看几个实际项目中常用的命令。这些都是开箱即用的生产力工具。

示例 1:智能 Git 提交

.claude/skills/commit/SKILL.md
---
name: commit
description: 基于当前变更创建 Git 提交
allowed-tools: Bash(git *)
---

## 上下文

- 当前状态:!`git status`
- 代码变更:!`git diff HEAD`
- 当前分支:!`git branch --show-current`
- 最近提交:!`git log --oneline -5`

## 任务

根据以上变更内容,创建一个 Git 提交。
逐行解读
前置数据开始 命令名:/commit 描述 允许执行所有 git 命令 前置数据结束 上下文区块标题 自动获取 Git 工作区状态 自动获取所有代码变更的 diff 自动获取当前所在分支 自动获取最近 5 条提交(保持风格一致) 任务区块标题 Claude 会基于注入的上下文自动生成提交信息

示例 2:安全推送

.claude/skills/push-all/SKILL.md
---
name: push-all
description: 暂存、提交并推送,带安全检查
disable-model-invocation: true
allowed-tools: Bash(git *), Bash(npm *)
---

暂存所有变更,创建提交并推送,但先检查:

1. 敏感文件:.env*、*.key、*.pem、credentials.json
2. API 密钥:检测真实密钥 vs 占位符
3. 大文件:>10MB 且未使用 Git LFS
4. 构建产物:node_modules/、dist/、__pycache__/
逐行解读
前置数据开始 命令名:/push-all 描述 禁止 Claude 自动触发 — 只能用户手动 /push-all 允许 git 和 npm 命令 前置数据结束 主要指令 安全检查 1:不要提交密钥文件 安全检查 2:区分真假 API 密钥 安全检查 3:避免提交超大文件 安全检查 4:不要提交构建产物

示例 3:测试覆盖扩展

.claude/skills/unit-test-expand/SKILL.md
---
name: unit-test-expand
description: 提升测试覆盖率,针对未测试的分支和边界情况
---

# 测试覆盖扩展

分析项目代码,找出测试覆盖不足的地方:

1. 扫描所有源文件,识别缺少测试的函数
2. 检查条件分支覆盖(if/else/switch)
3. 补充边界情况测试(空值、极大值、异常输入)
4. 生成新的测试用例并运行验证
逐行解读
前置数据开始 命令名:/unit-test-expand 描述 — 明确触发条件 前置数据结束 标题 主要指令 步骤 1:全面扫描,找出盲区 步骤 2:关注条件分支 — 这是最容易遗漏的地方 步骤 3:补充各种边界输入的测试 步骤 4:不光写测试,还要跑一遍确认通过
💡
最佳实践总结

命名清晰 — 用动词开头,一看就知道做什么。包含 description — 帮助 Claude 判断何时触发。有副作用的命令加 disable-model-invocation — 防止 Claude 误操作。用 !` ` 注入实时数据 — 让 Claude 始终看到最新状态。

检验一下

检验你对斜杠命令的理解。选错了也别担心 — 解释会帮你巩固知识。

问题 1:创建自定义斜杠命令时,推荐使用哪种格式?

问题 2:在 SKILL.md 中,如何让命令加载时自动执行 git status 并注入结果?

问题 3:你创建了一个 /deploy 命令来部署到生产环境。如何防止 Claude 自动触发它?

问题 4:如何调用 GitHub MCP 服务器的 list_prs 功能?

💡
从命令到记忆

斜杠命令解决了"快捷操作"的问题,但每次新会话都要重复配置怎么办?下一章记忆系统会教你让 Claude 记住你的偏好、规范和项目上下文 — 让每次对话都不用从零开始。