Claude Code 斜杠命令完全指南:内置、自定义与团队协作

📅 发布时间:2026/10/17 21:53:31
Claude Code 斜杠命令完全指南:内置、自定义与团队协作
1. 初识 Slash Commands像给 Claude Code 装了一组快捷键用了几个月的 Claude Code我发现真正能拉开手速差距的不是谁记得更多 prompt 技巧而是谁把 Slash Commands 用明白了。Slash Commands 就是 Claude Code 里的斜杠命令体系它既包含开箱即用的内置指令也支持你在项目里自定义专属命令把那些每次都要敲一大段的重复工作压缩成一条短命令。不管你是刚装好 claudecode 还没玩明白的新手还是已经在团队里推广 AI 编程的老手这一章的内容都值得认真过一遍。很多人把 Slash Commands 简单理解成“快捷指令”这么想没错但格局小了。快捷指令只是把一段固定文本替换成短字符串Slash Commands 做得远不止这些。它支持参数传递、变量注入、外部命令执行、子 Agent 联动甚至可以指定不同的模型来处理特定任务。换句话说它是一套小型的可编程工作流系统只是用 Markdown 文件当载体门槛低到近乎为零。先摆一个基本概念Claude Code 会读取项目里的.claude/commands/目录以及用户全局配置目录下的同名目录把里面的每个.md文件都注册为一条斜杠命令。文件名就是命令名文件的 frontmatter 定义命令的元信息正文就是喂给模型的指令模板。你敲下/命令名 参数的瞬间Claude Code 会把模板里的占位符替换成你实际传入的内容然后作为一轮新的对话发给模型。这套设计最打动我的地方是“可版本化”。命令不再是 GUI 软件里的一个按钮而是一个个文本文件天然适合放进 Git 仓库。团队里的每个成员 clone 项目后自动拥有一致的命令集新人的上手成本直接被砍掉一大截。我见过不少团队在 CLAUDE.md 里塞了一堆流程说明结果新人还是要反复问“这个需求你们一般怎么提”。用 Slash Commands 之后直接一个/提需求就能拉起一套标准化流程这才是真正的工程化思维。2. 内置命令逐个数会用和好用是两回事Claude Code 自带的命令不算多但每个都值得单独琢磨。我先把高频的内置命令整理成一张速查表再挑几个容易踩坑的展开聊。命令名作用常用场景/help查看所有可用命令忘了语法时随手敲/init初始化项目生成 CLAUDE.md新项目起步/compact压缩上下文清理 token对话太长、开始变傻时/cost查看会话累计花费月底算账、控制预算/status查看当前会话状态确认上下文和模型信息/doctor自检安装和环境问题出怪问题时排查/update更新 Claude Code 本体版本太旧时/reset清空当前会话上下文彻底乱掉时/login/logout登录/退出账号切换账号/vim切换 Vim 键位Vim 党福音重点说/compact。这命令我一开始不屑一顾直到有一次写一个大型重构任务聊到第 40 多轮上下文被塞得满满当当Claude 开始频繁“失忆”——前面定的变量名后面就忘了甚至开始重复问已经确认过的问题。这时候/compact就派上用场了它会把之前的关键信息压缩成摘要腾出空间给后续对话。不过我提醒一句压缩必然丢失细节。如果对话里有一段你需要长期保留的代码逻辑最好在压缩前手动让它写进一个.md文件或者 CLAUDE.md别指望压缩后还能原样记住。/cost这个命令我几乎是每次会话结束都会敲一下。说实话Claude Code 在复杂项目上的 token 消耗比我想象的快尤其是频繁让模型读大文件、跑测试的时候。我在日常工作中养成了一个习惯每完成一个功能点就敲一次/cost心里有数就不会在月底收到账单时心肌梗塞。团队里如果有人负责统一报销账号这个命令也能帮你判断哪些任务性价比低、需要优化提示词。/init的细节值得多说两句。它不会无脑生成一份模板而是会先扫描项目结构、读取现有代码、分析技术栈再生成一份贴合项目的 CLAUDE.md。我实际测下来它生成的初始版本已经包含了项目的目录结构、技术栈、常用命令、代码风格建议比自己从零写规范靠谱得多。生成完我再润色几笔比如补充团队特有的发布流程、接口约定一份能用的项目说明书就有了。后续每次需求变更我也习惯通过/init重新校准一次让模型随时掌握最新的项目全貌。/doctor在我身上发生过一次真实的“救命”事件。有一次 Claude Code 突然不认我项目的配置文件所有自定义命令全部失效终端报错信息又晦涩。我一度以为是命令写错了删了改、改了删折腾半小时无果。后来鬼使神差敲了/doctor它扫了一圈直接提示配置文件的 YAML 语法问题——有个字段的缩进我多打了一个空格。修复后一切恢复正常。所以遇到莫名其妙的故障别急着怀疑人生先跑一遍/doctor。3. 自定义 Slash Commands把重复劳动变成一条指令内置命令是开胃菜自定义命令才是 Slash Commands 真正的重头戏。这一节我带你从零手写一条命令把“让 Claude 做 Code Review”这个高频场景固化下来。先建目录。在项目根目录里创建.claude/commands/如果放在用户主目录下就是全局命令所有项目都能用。文件名就是命令名比如code-review.md那你以后敲/code-review就能触发。文件是纯 Markdown 格式第一部分是 YAML frontmatter第二部分是命令正文。--- description: 对指定范围内的代码做一次审查输出结构化报告 argument-hint: [文件路径或 Git 版本范围] model: sonnet allowed-tools: Read, Bash, Grep --- 你是一名资深代码审查专家。请审查我在下面的参数中指定的代码范围重点关注 1. 潜在的 Bug 和边界条件 2. 安全风险注入、权限、数据泄露 3. 性能和可维护性问题 4. 是否存在明显的过度设计 审查范围$ARGUMENTS 输出格式要求 - 按严重程度分级列出问题 - 每个问题标明文件路径和行号如果可见 - 给出修改建议和参考示例 - 如果没有发现问题也请明确说明保存后回到 Claude Code 会话输入/code-review src/utils/parser.ts命令就会自动触发。这里$ARGUMENTS是核心变量它把你在命令后面输入的参数原样传给模型。除了它之外还有位置参数$1、$2、$3以及命令名本身$0。当你只想要第一个参数时就别用$ARGUMENTS而是写$1能让模板对参数的利用更精细。frontmatter 里的关键字段我实际用下来觉得最有用的是这三个。description会在你敲/时随命令列表一起展示写清楚能省去很多记忆成本。model允许指定特定模型处理这条命令比如我习惯让简单的格式化任务用快模型跑复杂的架构分析用更强的模型。allowed-tools限制命令执行期间模型能调用的工具这个对控制风险很有用比如纯问答类命令就不需要 Edit 权限。还有一个非常强大的变量语法那就是#!bash。它允许你在命令模板里直接执行 shell 并注入输出。举个实际例子我有一条命令是“查看最近的 Git 变更并生成周报”模板里有一段请根据以下 Git 提交记录生成一份面向团队管理的周报 #!bash:git log --oneline --since7 days ago这样每次执行/周报Claude 都会自动拉取最近一周的提交记录然后基于真实数据帮你写周报不再需要你自己复制粘贴。执行时能明显看到命令的运行输出最终生成的周报里每一条都对应一个真实的提交记录我只需要加几句业务上下文说明就能直接发到群里。我在实际使用中还发现一个可能被忽略的细节命令正文一开始最好加一句“不要问我直接开始”。因为默认情况下模型收到你的指令可能还会反问一些“你想让我重点关注什么”之类的问题。但对于已经标准化了的流程反问就等于浪费时间。直接一句“请立即开始处理不要要求更多输入”能省掉一次往返。4. 子 Agent 与 Slash Commands 的配合玩法Claude Code 里的子 AgentSubagent是另一个杀手级功能它和 Slash Commands 结合之后能组合出非常灵活的执行流程。简单理解子 Agent 就是你给 Claude Code 预先定义的一个“专业角色”它拥有独立的技能、工具和系统提示词可以在主线程之外被调用。在命令模板里引用子 Agent 有两种常见方式。第一种是在 frontmatter 里指定agent字段让整条命令以某个子 Agent 身份运行第二种是在正文里通过特定语法临时唤起子 Agent。我自己的项目里建了一个architecture-review子 Agent专门负责接口设计和模块边界审查然后写了一条/架构审查命令来调用它。--- description: 针对当前分支的架构变更发起专项审查 argument-hint: 无需参数 agent: architecture-review allowed-tools: Read, Bash, Grep, Glob --- 请审查当前分支上最近一次合并请求涉及的所有代码变更 输出包含以下章节的结构化报告 - 变更概览 - 模块接口的一致性检查 - 依赖方向是否清晰 - 数据流是否存在循环依赖 - 整体质量评分与改进建议执行时模型会以架构审查员的角色切入看问题的角度和通用代码审查完全不同。它不再盯变量命名和函数长度而是关注模块之间的耦合、接口的兼容性、数据的流向。这个体验很像你同时雇了一个代码质检员和一个系统架构师各自负责不同的视角。除了在 frontmatter 里固定指定我还会在一条命令里编排多个子 Agent 完成一个流水线。比如做一次完整的/发布前检查我会在正文里要求模型依次唤起“安全审查员”检查潜在漏洞、“性能优化师”评估热点路径、“发布检查员”核对发布清单。这样一次执行就把原来需要多次人工切换视角的任务自动化了。踩过坑之后我一定要提醒一句子 Agent 之间不要并行跑太狠它们的结果可能需要相互依赖但 Claude Code 不会自动替你做结果聚合。我在流程里明确写了“先完成 A再基于 A 的输出执行 B”顺序上要严格约束不然容易得到几份各说各话的报告。模型成本上也要有清晰预期。子 Agent 的调用会产生独立的 token 计费实际消耗是主线程之外额外叠加的。我在一条比较重的工作流里统计过同时调起三个子 Agent整个命令的 token 消耗大概是普通命令的 2.5 倍到 3 倍。所以我的建议是高频且耗时不敏感的场景可以放心用子 Agent但只是为了顺手提速就不要滥用先用普通命令跑通再说。5. 团队共享与跨平台别让命令烂在你的笔记本里Slash Commands 既然是文件就意味着它能进 Git、能随项目流动、能在团队里复用。这也是我强烈建议每个团队认真对待它的原因。先说基础设施。项目里的.claude/commands/目录天然就是项目的一部分只要你不把.claude目录写进.gitignore成员 clone 项目后立刻能用上全部命令。对于不适合放进项目仓库的私人命令比如连接个人账号的脚本、内部跳板机信息、本地数据目录路径放在用户主目录~/.claude/commands/下会更好。一个基本原则是项目相关的命令放项目里个人环境相关的命令放全局避免把个人路径变量污染到团队共享模板中。我所在的团队实际跑下来会发现命令文档的“可维护性”和代码一样重要。建议给每个命令的正文里留一段“适用范围”说明并写明依赖哪些环境变量或工具链。这样半年后有人改命令时不至于对着#!bash里不知道什么时候写的脚本发呆。我们团队的做法是在命令正文底部统一加一段注释包括创建人、最近更新日期、是否依赖特定插件、参考文档链接。这块成本极低收益却能覆盖很长时间。跨平台问题是最容易翻车的地方。热搜词里那几个高频问题基本都集中在 Windows 环境比如“claudecode 安装提示 iex 所在位置 行:1”和“claudecode 每次使用完 .exe 就失效”我实际排查过很多和 PowerShell 的执行策略、路径解析有关。如果你在#!bash里写了 Linux 专属命令比如grep、sed的组合在 Windows 下直接跑会报错。我的经验是凡是面向团队共享的命令尽量用跨平台的写法或者在命令模板里加一段环境判断比如用#!bash内联检测操作系统后再执行相应分支的命令。还有人在 PyCharm 里集成 Claude Code或者用 CentOS 离线环境这些场景下命令目录路径的配置稍有不同。我的建议是先在终端里跑一次/status确认当前环境实际读取的配置路径再决定命令文件该放哪。不要凭感觉猜路径这是最快踩坑的方式之一。折腾过一次“命令在某台电脑上失效”后我做了一个团队内部的命令同步脚本把.claude/commands里的文件写一个哈希校验每次启动 Claude Code 时自动比对中心仓库的版本有差异就提示更新。这个做法不一定适合所有人但如果你团队里已经有人频繁出现“我的命令怎么和你们不一样”可以考虑类似方案。自动化程度高一点团队协作就越省心。6. 常见问题与排查思路给踩坑的兄弟们引条路用 Slash Commands 时间长了总会遇到一些反复出现的怪问题。我把自己踩过、也帮别人排查过的坑整理成一个排查表你遇到类似情况可以直接对照着看。症状可能原因排查思路命令不存在敲/看不到目录路径不对 / frontmatter 语法错误检查命令是否在.claude/commands/下跑/doctor看有没有解析异常模型不按模板执行自己瞎发挥模板指令不够强硬在正文开头加“严格按以下步骤不要跳过任何环节”去掉模棱两可的措辞参数没有传进模板用错了变量名确认$ARGUMENTS的大小写若用$1检查参数位置是否匹配#!bash命令报错环境变量缺失 / 跨平台不兼容先手动执行该命令看是否正常补环境判断尽量不要在模板里写绝对路径执行到一半被 CtrlC 打断后状态异常会话上下文残留敲/reset清空后重试每次用完 .exe 就失效Windows 下安装方式/执行策略问题用/doctor自检检查 PATH 配置和 PowerShell 执行策略一直要求点确认没法自动化权限配置未打开在设置中放开对应工具的白名单权限或检查allowed-tools是否受限关于“不用一直点确认”这个问题我要单独多说一段。Claude Code 默认在模型请求执行某些高风险操作时会弹出确认提示这是安全设计不建议彻底关掉。但如果你需要跑批量的自动化任务可以在命令的 frontmatter 里精确声明allowed-tools给这条命令放行它确实需要的工具权限。这样既不用全局放开沙箱也能让高频命令减少打断。我的经验是先在最严格限制下跑通命令再渐进式地给命令增加它真正需要的权限不要一上来就太后门大开。还有一个很多人问过的问题Slash Commands 能不能接 DeepSeek 或者其他 API理论上只要 Claude Code 支持配置自定义 API Base命令本身的模板机制是通用的。命令里的 frontmatter 可以指定不同的model但你得先确认当前环境里是否配置了对应的 provider 和密钥。我的建议是如果想在不同模型之间切换做对比测试可以把 model 配置差异单独写在settings.json里命令模板里不要写死模型名保留灵活性。毕竟今天你用 A 模型效果好明天可能有个新模型更香别把自己锁死。7. 一些我自己的使用体会Slash Commands 最迷人的地方在于它把“和 AI 对话”这件事从一个纯随机过程变成了一个可沉淀、可复用、可度量的系统工程。我现在的日常基本是高频场景全部命令化低频场景再临时写 prompt。刚开始可能觉得“写命令模板比自己打字还慢”但一旦积累了三五十条命令你就能明显感受到复利效应——每一次敲斜杠命令都是在调用一次已经被验证过的、高效的 AI 交互流程。有一个小技巧我想最后分享不要等到命令很完美了才投入使用。我的第一条自定义命令写得稀烂一个 code review 命令没有限定输出格式也没有给参数提示但就是用起来了用着用着才慢慢迭代成了今天的样子。命令是活文档它的价值在于持续使用和持续修正而不是一蹴而就的完美设计。如果你还没开始建自己的命令库现在就创建一个你最常用的场景5 分钟就能写出来然后让它替你干第一个活剩下的交给时间沉淀。