Mindket
Claude Code 入门课第 3 节,共 4 节

Claude Code 斜杠命令:内置的有哪些,自己的怎么写

黑色横幅,带有 Claude 标志,标题是“Claude Code 入门课”,下面一行是“4 节免费课:安装、计划模式、斜杠命令与 hooks”。

Claude Code 斜杠命令是你在消息开头输入的快捷指令,比如 /help、/clear 和 /plan。输入 / 就能看到你能用的全部命令。想加自己的命令,就建一个技能:一个带 SKILL.md 文件的文件夹,文件夹名就是命令名。在 Anthropic 的文档里,自定义命令现在就是技能,旧的 .claude/commands/ 文件仍然可用。

本节内容

  • 输入 / 列出你能用的命令,/ 加几个字母可以筛选。命令只在消息开头才算数,它后面的文字就是它的参数。
  • 自定义命令现在就是技能:.claude/commands/deploy.md 和 .claude/skills/deploy/SKILL.md 都能给你 /deploy。
  • 技能正文里的 $ARGUMENTS,代表你在命令后面输入的内容。
  • disable-model-invocation: true 能阻止 Claude 自己运行某个命令,凡是有副作用的命令都适合加上。
全部课程
本页目录
  1. 开始之前
  2. 写出你的第一个自定义命令
  3. 先学这些内置命令
  4. 自定义命令现在就是技能
  5. 参数,以及谁能运行命令
  6. Claude Code 的作者怎样把日常活儿变成命令
  7. 常见错误
  8. 动手试试
  9. 下一课:hooks
  10. 自测一下
  11. 常见问题
  12. 资料来源

开始之前

你需要有第 1 课装好的 Claude Code,以及一个用 git 管理的项目,因为示例命令要读你尚未提交的改动。斜杠命令在会话里运行,第 1 课里的 claude -p 这类命令则是在终端里运行。

写出你的第一个自定义命令

Anthropic 的技能页面分三步做出第一个示例,本课照着走。下面这个技能会总结你尚未提交的改动。以感叹号开头的那一行会运行 git diff HEAD,Claude Code 在 Claude 读到技能之前,就把输出填进去。

---
description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.
---

## Current changes

!`git diff HEAD`

## Instructions

Summarize the changes above in two or three bullet points, then list any risks you notice such as missing error handling, hardcoded values, or tests that need updating. If the diff is empty, say there are no uncommitted changes.
  1. 在个人技能文件夹里给这个命令建一个文件夹:mkdir -p ~/.claude/skills/summarize-changes。个人技能在你所有项目里都能用。Windows 上在用户文件夹里建同样的文件夹。
  2. 把上面的文字存成这个文件夹里的 SKILL.md。文件夹名就是命令名,所以这个命令是 /summarize-changes。
  3. 打开一个 git 项目,改动一个文件,运行 claude。
  4. 用 /summarize-changes 直接运行命令。也可以问一句“What did I change?”,描述对得上时,Claude 会自己加载这个技能。
  5. 改一改描述或说明,再运行一次命令。Claude Code 在同一个会话里就会读到改动。

先学这些内置命令

命令参考按你什么时候会用到它们来分组。在新仓库里,先运行 /init 生成一份 CLAUDE.md 草稿,再用 /memory 修改。做任务时,/plan 和 /model 改变 Claude 的工作方式。对话变长了,就用 /context 和 /compact 处理占用的空间。

列表里有些条目是内置技能,比如 /doctor 和 /code-review。它们是交给 Claude 的提示词,运行方式和直接执行固定逻辑的命令一样。你能看到哪些命令,取决于你的平台、套餐和环境。

十个内置命令,来自 Anthropic 的命令参考
命令作用
/help显示帮助和可用命令
/init用一份 CLAUDE.md 指南初始化项目
/plan [description]进入计划模式,加上描述就直接开始这项任务
/model [model]切换模型,并保存为新会话的默认模型
/context用彩色方格图显示上下文用量
/compact [instructions]把到目前为止的对话压缩成摘要,腾出上下文空间
/clear [name]用空白上下文开始一段新对话
/resume [session]按 ID 或名称恢复对话,或者打开会话选择器
/rewind把对话、代码或两者一起回退到之前的某个时间点
/diff显示工作区的改动,包括 Claude 目前做过的修改

自定义命令现在就是技能

以前做命令的办法,是在 .claude/commands/ 里放一个 Markdown 文件。Anthropic 的技能页面现在说,自定义命令已经并入技能:.claude/commands/deploy.md 这个文件和 .claude/skills/deploy/SKILL.md 这个技能,都会生成 /deploy,用法也一样。已有的命令文件照常工作,文档建议新写的用技能,因为技能还能带附属文件。

同名时,技能优先。命令文件接受和技能相同的 frontmatter,只有 name 和 paths 除外。

文件存在哪里,决定谁能用到这个命令。文件本身怎么写,Mindket 讲创建 Agent Skill 的指南写得更细。

Claude Code 更新日志里的命令与技能
  1. /plan 成为命令

    2.1.0 版加入从提示符直接进入计划模式的快捷命令。

  2. 命令并入技能

    2.1.3 版把斜杠命令和技能合并,两者的行为都没有变。

  3. /simplify 和 /batch 上线

    2.1.63 版把两者作为内置命令加入。

  4. /reload-skills 上线

    2.1.152 版可以不重启就重新扫描技能文件夹。

  5. 压缩之后技能列表重新送达

    2.1.304 版在对话压缩后,把技能列表再发给 Claude 一次。

  6. 脚本里的自定义命令不再沉默

    2.1.318 版修复了自定义命令在 claude -p 和 SDK 会话里失败时什么都不输出的问题。

来源:Claude Code changelog (2026年11月5日 查阅)

命令文件存放的位置和你要输入的内容,来自 Anthropic 的技能页面
位置路径你输入
个人,所有项目通用~/.claude/skills/deploy/SKILL.md/deploy
单个项目,提交后与团队共享.claude/skills/deploy/SKILL.md/deploy
旧式命令文件.claude/commands/deploy.md/deploy
子文件夹里的命令文件.claude/commands/frontend/component.md/frontend:component
插件内部my-plugin/skills/review/SKILL.md/my-plugin:review

参数,以及谁能运行命令

命令名后面输入的内容,会替换 $ARGUMENTS。对下面这个技能运行 /fix-issue 123,Claude 收到的就是“Fix GitHub issue 123 following our coding standards”加上后面的编号步骤。要传多个值,可以用 $ARGUMENTS[0] 和 $ARGUMENTS[1],或者更短的 $0 和 $1,按位置取。

如果正文里没有占位符,Claude Code 会在末尾补上一行,以 ARGUMENTS: 开头,后面是你的输入,让 Claude 仍然看得到你输入了什么。frontmatter 里的 argument-hint,比如 [issue-number],会在你输入时提示该填什么。

Anthropic 自己举的、要让 Claude 别碰的命令例子是 /deploy。你不会希望 Claude 看着代码像是写好了,就自作主张去部署。disable-model-invocation: true 管的就是这个,user-invocable: false 则正好相反。

---
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
---

Fix GitHub issue $ARGUMENTS following our coding standards.

1. Read the issue description
2. Understand the requirements
3. Implement the fix
4. Write tests
5. Create a commit
谁能运行命令,来自技能页面
Frontmatter你能运行Claude 能运行
什么都不设能能
disable-model-invocation: true能不会自己运行
user-invocable: false不能能

Claude Code 的作者怎样把日常活儿变成命令

Boris Cherny 在 Anthropic 做出了 Claude Code。2026 年 1 月,他在 X 上写道,凡是一天要重复很多次的“内循环”工作,他都做成斜杠命令,这样不用反复输入提示,Claude 也能跑同样的流程。他的 /commit-push-pr 命令一天要用几十次,它先用内联 bash 取到 git status,再交给模型读,用的正是上面第一个命令里以感叹号开头的那一行。他当时把命令放在 .claude/commands/ 里并提交到 git,现在用技能文件夹效果一样。

2026 年 2 月,他宣布了两个内置技能:/simplify 和 /batch,他自己已经天天在用。现在的 /simplify 会检查你改过的代码有哪些可以清理,并直接改好。/batch 为大改动出计划,拆成 5 到 30 个互不依赖的单元,你批准后,每个单元交给一个后台子智能体。下次改完代码,运行一次 /simplify,看看内置技能和普通命令用起来有什么两样。

凡是一天要做很多次的“内循环”工作,我都用斜杠命令来做。

Boris Cherny, Claude Code 的作者,Anthropic,引文为译文 · X (2026年11月5日 查阅)
Boris Cherny(@bcherny)2026 年 1 月 2 日在 X 上的配置串第 7 条:凡是一天要做很多次的内循环工作,我都用斜杠命令来做。命令提交到 git,放在 .claude/commands/ 里。
Boris Cherny 在 X 上,2026 年 1 月 2 日
Boris Cherny(@bcherny)2026 年 2 月 28 日在 X 上的帖子:下一个版本的 Claude Code 会推出两个新技能,/simplify 和 /batch,我已经天天在用。
Boris Cherny 在 X 上,2026 年 2 月 28 日

X 官方嵌入卡片的截图,拍摄于 2026 年 11 月 5 日,时间为 UTC。X 在两条帖子处都用“Show more”截断了后面的内容。点击截图可到 X 上打开原帖。

常见错误

  • 把命令写在别的话后面。Claude Code 只在命令位于消息开头时才识别它。放在普通文字后面时,命令名只表示允许 Claude 运行这个技能,并不会直接运行。
  • 打错字就按回车。这时没有任何高亮,Enter 会把你输入的原样提交,Claude Code 报“Unknown command”。用 Tab 或方向键选一个接近的。你的平台或套餐没有的命令,也不会出现在菜单里。
  • 写错 frontmatter 的字段名。字段名必须和文档完全一致,连连字符都不能差,Claude Code 遇到不认识的字段会直接忽略,不报错。开头的 --- 也必须是文件的第一行。
  • 给命令起了和内置命令一样的名字。在本地终端会话里,你的技能会取代同名的内置命令,但取代不了它的别名。
  • 因为旧教程这么写,就还在 .claude/commands/ 里写新命令。它还能用,但技能能做的更多,而且同名时技能优先于命令文件。

动手试试

  • 在会话里输入 /,翻一翻列表。输入几个字母筛选,然后运行 /help。
  • 照上面的做法建好 /summarize-changes,运行两次:一次直接输入 /summarize-changes,一次问“What did I change?”。
  • 把 fix-issue 的文字存成第二个技能,运行 /fix-issue 123。然后删掉 disable-model-invocation: true,这样描述会进入 Claude 的上下文,Claude 就能自己加载这个技能。
  • 为你每周都要往聊天里粘贴的某件事做一个自己的命令,沿用同样的两部分文件:先 frontmatter,再说明。

下一课:hooks

命令是你开口它才运行。第 4 课讲 hooks,它们在固定的节点自己运行,比如工具调用之前。

想把命令分享给别人,就把它打包成插件,Mindket 讲 Claude Code 插件的文章里有做法。

自测一下

  1. 你把一个技能保存在 ~/.claude/skills/summarize-changes/SKILL.md,输入哪条命令能运行它?

    查看答案

    A. /summarize-changes 文件夹名就是命令名,个人技能在你所有的项目里都能用。

  2. 你对一个含有 $ARGUMENTS 的技能运行 /fix-issue 123,$ARGUMENTS 代表什么?

    查看答案

    C. 命令名后面的 123 你在命令名后面输入的内容,会替换掉 $ARGUMENTS。

  3. 哪一行 frontmatter 能阻止 Claude 自己去运行 /deploy 这样的命令?

    查看答案

    D. disable-model-invocation: true disable-model-invocation: true 让 Claude 不能自己启动这个命令,user-invocable: false 则恰好相反。

  4. 下面哪条消息会直接运行 /summarize-changes?

    查看答案

    B. /summarize-changes Claude Code 只在命令出现在消息开头时才识别它,放在普通文字后面就不会直接运行。

常见问题

命令能预先批准工具,让 Claude 不再询问吗?

能,在 frontmatter 里用 allowed-tools。文档里有个 /commit 技能,在那里列了 Bash(git add *) Bash(git commit *) Bash(git status *)。这个授权只管运行命令的那一轮,你发出下一条消息时就清除,没列出的工具仍由你的权限设置管。提交进仓库的技能,在那里运行 Claude Code 之前先看一遍这个字段,因为技能可以给自己授予很大的工具权限。

斜杠命令和技能有什么区别?

在 Claude Code 里现在几乎没有区别。两者都会生成一个 /名称 命令。技能多了放附属文件的文件夹、控制谁能运行它的 frontmatter,以及描述和你的请求对得上时的自动加载。

添加命令之后要重启 Claude Code 吗?

不用。Claude Code 会监视 ~/.claude/skills/ 和项目的 .claude/skills/,在同一个会话里就能读到新增、修改或删除的技能。例外是会话启动时还不存在的顶层技能文件夹,建好之后运行 /reload-skills。

怎样把命令从 / 菜单里隐藏起来?

在它的 frontmatter 里设置 user-invocable: false。这样 Claude Code 会把它从菜单里隐藏,你输入它的名字也不会运行,但 Claude 仍然可以加载它。适合那种只是背景知识、不是你会去执行的动作的技能。

插件能添加斜杠命令吗?

能。插件里的技能以 /plugin-name:skill-name 的形式出现,所以不会和你自己的命令冲突。Mindket 的插件文章讲了怎样制作和安装。

/init 只能建 CLAUDE.md 吗?

设置了 CLAUDE_CODE_NEW_INIT=1 之后,它会走一套交互流程,还会带你过一遍技能、hooks 和个人记忆文件。如果它发现了 OpenAI Codex 或 Google Gemini CLI 的配置,会提示你用 /import 把它们带过来。

一条消息里能运行两个命令吗?

在终端提示符下可以。输入 /write-tests /fix-issue 123,两个技能都会加载,后面的文字会作为参数传给每一个。Claude Code 会展开第一个技能,外加它后面叠放的最多五个。

资料来源

  1. Claude Code docs: Commands (2026年11月4日 查阅)https://code.claude.com/docs/en/commands
  2. Claude Code docs: Extend Claude with skills (2026年11月4日 查阅)https://code.claude.com/docs/en/skills
  3. Claude Code changelog (2026年11月5日 查阅)https://code.claude.com/docs/en/changelog
  4. Boris Cherny on X: tip 7, slash commands, 2 January 2026 (2026年11月5日 查阅)https://x.com/bcherny/status/2007179847949500714
  5. Boris Cherny on X: /simplify and /batch, 28 February 2026 (2026年11月5日 查阅)https://x.com/bcherny/status/2027534984534544489

分享本节课

下一课:hooks

让你自己的命令在 Claude Code 会话的固定节点自动运行。

开始第 4 课

本节课的 Markdown 版本 · Claude Code 入门课 · 全部课程