name: 编写Slash命令 description: 创建和使用自定义Slash命令以自动化Claude Code工作流。学习参数传递、前端配置、Bash集成和文件引用,用于构建可重用提示。 allowed-tools: Bash
Slash命令指南
Slash命令是可重用的提示模板,用于自动化Claude Code中的重复任务。定义一次,即可通过/command-name [args]随时调用。
快速开始
创建命令
项目范围(与团队共享):
mkdir -p .claude/commands
echo "分析此代码的性能问题:" > .claude/commands/optimize.md
个人(跨所有项目):
mkdir -p ~/.claude/commands
echo "审查此代码的安全漏洞:" > ~/.claude/commands/security-review.md
通过/optimize或/security-review调用。
自定义命令架构
| 范围 | 位置 | 范围 | 可共享 |
|---|---|---|---|
| 项目 | .claude/commands/ |
仓库特定 | 是(团队) |
| 个人 | ~/.claude/commands/ |
所有项目 | 否 |
命名空间
在子目录中组织命令(不影响调用):
.claude/commands/
├── frontend/
│ └── component.md # 调用为`/component`(显示"project:frontend")
├── backend/
│ └── api.md # 调用为`/api`(显示"project:backend")
└── security-review.md # 调用为`/security-review`
注意: 用户级别和项目级别同名命令冲突;只有一个可用。
参数与占位符
使用$ARGUMENTS捕获所有参数
当需要所有参数作为单个字符串时,使用$ARGUMENTS:
---
description: 修复带有可选优先级的问题
argument-hint: [issue-number] [optional-priority]
---
修复问题 #$ARGUMENTS 遵循我们的编码标准。
用法: /fix-issue 123 → $ARGUMENTS = "123"
用法: /fix-issue 123 high-priority → $ARGUMENTS = "123 high-priority"
使用$1, $2, ...访问单个参数
对于结构化命令,使用位置参数:
---
description: 使用优先级和分配人审查拉取请求
argument-hint: [pr-number] [priority] [assignee]
---
审查PR #$1,优先级$2,分配给$3。
专注于安全、性能和代码风格。
用法: /review-pr 456 high alice → $1="456", $2="high", $3="alice"
何时使用位置参数:
- 参数有不同角色(ID、优先级、所有者)
- 需要默认值:
${3:-unassigned} - 在整个命令中单独引用参数
前端配置
所有选项都是可选的;命令无需前端配置即可工作。
| 字段 | 目的 | 示例 |
|---|---|---|
description |
在/help中显示(SlashCommand工具必需) |
"修复安全问题" |
argument-hint |
自动完成参数语法提示 | "[issue] [priority]" |
allowed-tools |
此命令可以调用的工具 | Bash(git add:*), Bash(git status:*) |
model |
为此命令覆盖默认模型 | "claude-3-5-haiku-20241022" |
disable-model-invocation |
阻止SlashCommand工具触发 | true |
完整前端配置示例
---
description: 使用暂存更改创建git提交
argument-hint: [message]
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
model: claude-3-5-haiku-20241022
---
创建git提交,消息:$ARGUMENTS
Bash执行与文件引用
使用!运行Bash命令
前缀内联命令以!在命令运行前执行。需要allowed-tools包含Bash:
---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*), Bash(git log:*)
description: 创建git提交
---
## 上下文
- 当前状态:!`git status`
- 暂存更改:!`git diff --cached`
- 最近提交:!`git log --oneline -5`
## 你的任务
创建一个总结更改的单个提交。
Bash命令的输出包含在提示上下文中。
使用@引用文件
在命令中包含文件内容:
审查@src/utils/helpers.js中的实现
比较@src/old-version.js与@src/new-version.js
使用标准文件引用(例如,@docs/、@src/)。
模式示例
示例1:基于优先级的问题修复
---
description: 修复带有优先级级别的问题
argument-hint: [issue-number] [priority-level]
---
修复GitHub问题 #$1,优先级"$2"。
步骤:
1. 理解问题上下文
2. 编写最小化、专注的修复
3. 考虑边缘情况
4. 确保测试通过
用法: /fix-issue 42 high
示例2:Bash驱动的代码审查
---
allowed-tools: Bash(git diff:*), Bash(git log:*)
description: 审查最近提交的代码质量
argument-hint: "[number-of-commits]"
---
## 上下文
最近更改:
!`git log --oneline -${1:-5}`
完整差异:
!`git diff HEAD~${1:-5}...HEAD`
## 你的任务
提供代码质量审查,专注于可读性、性能和最佳实践。
用法: /review-commits 3 → 审查最后3个提交
示例3:多参数配置命令
---
description: 设置功能标志进行测试
argument-hint: feature [enable|disable] [environment]
---
配置功能"$1"在$3环境中$2。
验证:
- 功能标志存在于@src/config/features.ts中
- 环境有效(dev、staging、production)
- 更改在部署前测试
用法: /feature dark-mode enable staging
SlashCommand工具集成
SlashCommand工具允许Claude以编程方式调用您的自定义命令。
启用自动调用
添加到CLAUDE.md或项目指令:
适当时,使用/optimize分析代码性能。
修复错误时,使用/fix-issue与问题编号。
工具访问要求
- 命令必须有
description前端配置 - 命令不能有
disable-model-invocation: true - 用户必须在权限中允许
SlashCommand工具
禁用特定命令
阻止Claude自动调用命令:
---
disable-model-invocation: true
description: 仅手动审查
---
您的命令内容...
权限规则
通过/permissions精细控制:
SlashCommand:/commit # 精确匹配:仅/commit
SlashCommand:/review-pr:* # 前缀匹配:/review-pr带任意参数
拒绝SlashCommand以禁用所有自动调用。
最佳实践
✅ 做:
- 使用描述性名称匹配功能(例如,
/optimize、/security-review) - 包含
description以便通过/help和SlashCommand工具发现 - 添加
argument-hint用于清晰使用模式 - 保持命令专注于单一责任
- 使用Bash执行用于变化的上下文(git状态、时间戳)
❌ 不做:
- 嵌入属于代码的静态内容(改用文件引用)
- 创建没有描述的命令(破坏工具集成)
- 使用过多位置参数(>3变得难记)
- 假设工具可用而不声明
allowed-tools
内置Slash命令(参考)
您免费获得的基本命令:
| 命令 | 目的 |
|---|---|
/help |
列出所有命令(内置+自定义) |
/config |
打开设置界面 |
/status |
显示版本、模型、账户 |
/cost |
令牌使用统计 |
/model |
切换AI模型 |
/memory |
编辑CLAUDE.md |
/rewind |
回滚对话或代码 |
/clear |
清除历史 |
/agents |
管理自定义AI子代理 |
/mcp |
管理MCP服务器连接 |
工作流集成
在CLAUDE.md或项目指令中:
## 自定义命令
使用这些命令加速开发:
- `/optimize [file]` — 分析代码性能
- `/security-review [file]` — 检查漏洞
- `/commit [message]` — 创建原子提交
- `/test [suite]` — 运行测试并聚焦
在对话中:
> 我将使用/optimize检查此函数的性能问题。
Claude识别斜杠,如果启用SlashCommand工具,可能自动调用。
另见
- MCP Slash命令:由MCP服务器暴露的命令(模式:
/mcp__server__prompt) - 插件命令:来自已安装插件的命令(模式:
/plugin-name:command或仅/command) - 交互模式:键盘快捷键和输入模式
- 权限:精细的工具和命令访问控制