Claude Code自定义命令:打造你的专属提示词库
本文介绍了Claude Code的自定义命令功能,帮助用户创建可复用的提示词模板。主要内容包括:自定义命令的基本概念、创建方法、语法规则和实用场景。通过将常用提示词保存为模板,用户可通过"/命令名"一键调用,实现团队协作标准化、提高工作效率。文章详细讲解了命令文件的创建步骤、变量替换功能,并提供了代码审查、测试生成等实用模板示例。自定义命令适用于代码审查、测试生成、文档编写等多种开发场景,能有效解
·
目录
Claude Code自定义命令:打造你的专属提示词库 🎯
📅 更新于:2026年5月 | ✍️ 原创文章,转载请注明出处
📌 目录
1. 什么是自定义命令
1.1 基本概念
自定义命令是 Claude Code 的一项强大功能,允许你:
📁 .claude/commands/
├── review.md → /review
├── test.md → /test
├── refactor.md → /refactor
├── docs.md → /docs
└── commit.md → /commit
简单来说:把常用的提示词保存成模板,用 /命令名 一键调用。
1.2 与CLAUDE.md的区别
| 特性 | CLAUDE.md | 自定义命令 |
|---|---|---|
| 触发方式 | 自动加载 | 手动调用 /command |
| 用途 | 项目上下文 | 可复用的任务模板 |
| 数量 | 通常1个 | 可以多个 |
| 内容 | 静态配置 | 动态任务指令 |
1.3 核心价值
🎯 价值1:一致性 —— 团队使用相同的提示词模板
🎯 价值2:效率 —— 一键调用,不用重复输入
🎯 价值3:标准化 —— 统一代码审查、测试、提交的流程
🎯 价值4:可维护 —— 修改模板,全局生效
2. 为什么需要自定义命令
2.1 没有自定义命令的痛点
# ❌ 痛点1:重复输入
"帮我做代码审查,检查类型安全、错误处理、性能问题、代码风格..."
# 每次都要输入一大段
# ❌ 痛点2:不一致
"帮我写测试" → 有人用Jest,有人用Vitest
"帮我写文档" → 有人用JSDoc,有人用Markdown
# 团队标准不统一
# ❌ 痛点3:容易遗漏
"帮我重构代码"
# 忘记说"保持测试通过",结果重构后测试挂了
2.2 有自定义命令的好处
# ✅ 好处1:一键调用
/review
# 自动执行完整的代码审查流程
# ✅ 好处2:团队统一
/test
# 所有人用同样的测试生成模板
# ✅ 好处3:不会遗漏
/refactor
# 自动包含"保持测试通过"的约束
2.3 适用场景
| 场景 | 命令示例 | 说明 |
|---|---|---|
| 代码审查 | /review |
统一审查标准 |
| 测试生成 | /test |
统一测试框架和风格 |
| 代码重构 | /refactor |
包含约束条件 |
| 文档生成 | /docs |
统一文档格式 |
| Git提交 | /commit |
统一提交信息格式 |
| Bug修复 | /fix |
标准化修复流程 |
| 性能优化 | /perf |
包含性能测试步骤 |
3. 自定义命令的工作原理
3.1 文件结构
📁 项目根目录/
├── .claude/
│ └── commands/
│ ├── review.md # 项目级命令
│ ├── test.md
│ └── refactor.md
├── src/
├── package.json
└── CLAUDE.md
3.2 命名规则
| 规则 | 示例 | 说明 |
|---|---|---|
| 文件名 | review.md |
命令名就是文件名 |
| 调用方式 | /review |
斜杠 + 文件名(不含.md) |
| 大小写 | Code-Review.md → /Code-Review |
保持大小写 |
| 连字符 | code-review.md → /code-review |
支持连字符 |
3.3 加载时机
1. 你输入 /review
2. Claude Code 读取 .claude/commands/review.md
3. 将文件内容作为提示词执行
4. 支持变量替换(如 $ARGUMENTS)
3.4 作用域
| 位置 | 作用域 | 说明 |
|---|---|---|
.claude/commands/ |
项目级 | 只在当前项目生效 |
~/.claude/commands/ |
全局级 | 所有项目都可用 |
4. 创建你的第一个命令
4.1 步骤1:创建目录
# 在项目根目录创建
mkdir -p .claude/commands
4.2 步骤2:创建命令文件
# 创建一个代码审查命令
touch .claude/commands/review.md
4.3 步骤3:编写命令内容
# .claude/commands/review.md
请对当前文件或指定文件进行代码审查。
## 审查维度
1. **类型安全**
- 是否有 `any` 类型
- 类型定义是否完整
- 是否有类型断言滥用
2. **错误处理**
- 异步操作是否有 try-catch
- 边界条件是否处理
- 错误信息是否有意义
3. **性能**
- 是否有不必要的重渲染
- 是否有内存泄漏风险
- 是否有可优化的循环
4. **代码风格**
- 命名是否符合规范
- 是否有重复代码
- 注释是否充分
## 输出格式
请以表格形式输出:
| 问题类型 | 位置 | 问题描述 | 建议修改 |
|---------|------|----------|----------|
| 类型安全 | 第15行 | 使用了any类型 | 改为具体类型 |
## 使用方式
- 默认审查当前文件
- 可以指定文件:/review src/utils/format.ts
4.4 步骤4:使用命令
# 在Claude Code中输入
/review
# 或者指定文件
/review src/utils/format.ts
4.5 完整示例
# 1. 进入项目目录
cd my-project
# 2. 创建命令目录
mkdir -p .claude/commands
# 3. 创建命令文件
cat > .claude/commands/review.md << 'EOF'
请对当前文件或指定文件进行代码审查。
## 审查维度
1. 类型安全
2. 错误处理
3. 性能
4. 代码风格
## 输出格式
以表格形式输出问题和建议。
EOF
# 4. 提交到Git
git add .claude/commands/
git commit -m "feat: 添加代码审查命令"
# 5. 使用
# 在Claude Code中输入 /review
5. 命令语法详解
5.1 基本语法
# 命令标题
命令的描述和说明。
## 具体指令
详细的任务步骤。
5.2 变量替换
Claude Code 支持在命令中使用变量:
| 变量 | 说明 | 示例 |
|---|---|---|
$ARGUMENTS |
用户传入的参数 | /review src/utils.ts → $ARGUMENTS = src/utils.ts |
使用示例
# .claude/commands/fix.md
修复以下文件中的bug:$ARGUMENTS
## 步骤
1. 读取文件 $ARGUMENTS
2. 分析错误原因
3. 提供修复方案
4. 执行修复
5. 运行测试验证
# 使用时
/fix src/api/auth.ts
# $ARGUMENTS 会被替换为 "src/api/auth.ts"
5.3 条件逻辑
虽然命令文件不支持真正的条件语句,但你可以通过描述来实现:
# .claude/commands/test.md
为指定的文件或当前修改的代码生成测试。
## 判断逻辑
如果指定了文件($ARGUMENTS不为空):
- 为指定文件生成测试
如果没有指定文件:
- 查看git diff,为修改的代码生成测试
## 测试要求
- 使用项目配置的测试框架
- 包含正常case和异常case
- 测试覆盖率 > 80%
5.4 多行指令
# .claude/commands/docs.md
请为以下内容生成文档:
## 文档类型
- 如果是组件:生成Props文档和使用示例
- 如果是函数:生成JSDoc文档
- 如果是API:生成API文档
## 格式要求
```typescript
/**
* 函数描述
* @param paramName - 参数说明
* @returns 返回值说明
* @example
* // 示例代码
*/
输出位置
- 组件文档:放在组件同目录下的README.md
- 函数文档:直接写在代码注释中
### 5.5 引用其他文件
```markdown
# .claude/commands/refactor.md
重构指定的代码,参考项目的编码规范。
## 参考文件
- 编码规范:.claude/conventions.md
- 组件示例:src/components/UserCard.tsx
## 重构要求
1. 阅读.claude/conventions.md了解编码规范
2. 参考src/components/UserCard.tsx的写法
3. 重构$ARGUMENTS指定的文件
4. 保持测试通过
6. 10个实用命令模板
6.1 代码审查命令
# .claude/commands/review.md
对代码进行全面审查。
## 审查清单
### 必查项
- [ ] 类型安全:是否有any、类型断言
- [ ] 错误处理:try-catch、边界条件
- [ ] 性能:重渲染、内存泄漏、循环优化
- [ ] 安全:XSS、SQL注入、敏感信息
### 代码风格
- [ ] 命名规范
- [ ] 代码重复
- [ ] 注释完整
- [ ] 测试覆盖
## 输出格式
### 问题汇总
| 严重程度 | 类型 | 位置 | 问题 | 建议 |
|---------|------|------|------|------|
| 🔴 高 | 类型安全 | 15行 | any类型 | 改为具体类型 |
| 🟡 中 | 性能 | 23行 | 未使用useMemo | 添加memo |
### 优点
- 列出代码的亮点
### 改进建议
- 给出具体的优化方向
$ARGUMENTS
6.2 测试生成命令
# .claude/commands/test.md
为指定代码生成单元测试。
## 测试框架
- 前端:Jest + React Testing Library
- 后端:Jest + Supertest(Node)/ JUnit 5(Java)
## 测试要求
### 覆盖场景
1. 正常流程(happy path)
2. 边界条件
3. 异常情况
4. 并发场景(如适用)
### 测试结构
```javascript
describe('功能模块', () => {
beforeEach(() => {
// 初始化
});
afterEach(() => {
// 清理
});
it('应该处理正常输入', () => {
// 测试正常流程
});
it('应该处理边界条件', () => {
// 测试边界
});
it('应该抛出错误', () => {
// 测试异常
});
});
输出位置
- 与源文件同目录,命名为
xxx.test.ts
$ARGUMENTS
### 6.3 重构命令
```markdown
# .claude/commands/refactor.md
重构指定的代码。
## 重构约束
1. **必须保持测试通过** —— 重构后运行所有测试
2. **不改变外部行为** —— 功能完全一致
3. **小步重构** —— 每次只做一个改动
## 重构方向
- 提取重复代码
- 简化复杂逻辑
- 改善命名
- 优化性能
## 步骤
1. 运行现有测试,确认通过
2. 分析代码,找出重构点
3. 执行重构
4. 再次运行测试,确认通过
5. 总结改动
## 输出格式
### 重构前
```typescript
// 原始代码
重构后
// 重构后的代码
改动说明
- 改动1:xxx
- 改动2:xxx
测试结果
- 通过:xx个
- 失败:xx个
$ARGUMENTS
### 6.4 文档生成命令
```markdown
# .claude/commands/docs.md
生成代码文档。
## 文档类型判断
### 如果是组件
生成:
1. Props接口文档
2. 使用示例
3. 注意事项
### 如果是函数
生成JSDoc文档:
```typescript
/**
* 函数描述
*
* @param paramName - 参数说明
* @returns 返回值说明
* @throws 错误说明
*
* @example
* const result = myFunction('input');
*/
如果是API接口
生成API文档:
- 请求方式
- URL路径
- 请求参数
- 响应格式
- 错误码
文档风格
- 使用中文
- 包含代码示例
- 简洁明了
$ARGUMENTS
### 6.5 Git提交命令
```markdown
# .claude/commands/commit.md
生成规范的Git提交信息。
## 步骤
1. 查看当前修改:`git diff`
2. 查看暂存区:`git diff --cached`
3. 分析改动类型
4. 生成提交信息
5. 执行提交
## 提交信息格式
():
Type类型
- ✨ feat: 新功能
- 🐛 fix: 修复bug
- 📝 docs: 文档
- 💄 style: 格式
- ♻️ refactor: 重构
- ✅ test: 测试
- 🔧 chore: 构建/工具
示例
✨ feat(auth): 添加微信登录支持
- 集成微信OAuth2.0
- 添加微信用户信息解析
- 更新登录页面UI
Closes #123
注意
- 使用中文描述
- 包含改动的具体内容
- 关联Issue(如有)
### 6.6 Bug修复命令
```markdown
# .claude/commands/fix.md
修复Bug的标准流程。
## 步骤
### 1. 理解问题
- 阅读错误信息
- 复现问题
- 确定影响范围
### 2. 分析原因
- 查看相关代码
- 定位问题根源
- 确定修复方案
### 3. 执行修复
- 编写修复代码
- 添加防护措施(避免再次发生)
### 4. 验证修复
- 运行测试
- 手动验证
- 检查边界情况
### 5. 总结
- 问题原因
- 修复方案
- 预防措施
## 输出格式
### 问题描述
[描述问题]
### 根本原因
[分析原因]
### 修复方案
```typescript
// 修复后的代码
测试结果
- 单元测试:✅ 通过
- 集成测试:✅ 通过
预防措施
- 如何避免类似问题
$ARGUMENTS
### 6.7 性能优化命令
```markdown
# .claude/commands/perf.md
性能分析与优化。
## 分析维度
### 前端性能
- 组件重渲染
- Bundle大小
- 首屏加载时间
- 内存泄漏
### 后端性能
- 数据库查询
- API响应时间
- 缓存命中率
- 并发处理
## 步骤
1. 识别性能瓶颈
2. 测量当前性能
3. 实施优化
4. 验证优化效果
## 常见优化手段
### 前端
- React.memo
- useMemo / useCallback
- 虚拟滚动
- 代码分割
- 图片懒加载
### 后端
- 数据库索引
- 查询优化
- 缓存策略
- 异步处理
## 输出格式
### 性能瓶颈
[描述发现的问题]
### 优化方案
[具体优化措施]
### 优化前后对比
| 指标 | 优化前 | 优化后 | 提升 |
|------|--------|--------|------|
| 加载时间 | 3s | 1s | 66% |
$ARGUMENTS
6.8 API接口生成命令
# .claude/commands/api.md
生成RESTful API接口代码。
## 技术栈
- 框架:Express / FastAPI / Spring Boot
- 数据库:MySQL / PostgreSQL
- ORM:Prisma / SQLAlchemy / MyBatis-Plus
## 生成内容
1. Controller/Router
2. Service层
3. Repository/DAO层
4. 数据模型
5. 请求/响应DTO
6. 单元测试
## 命名规范
- Controller: `xxxController.ts`
- Service: `xxxService.ts`
- Repository: `xxxRepository.ts`
- DTO: `xxxRequest.ts`, `xxxResponse.ts`
## 代码风格
- RESTful设计
- 统一错误处理
- 参数验证
- 日志记录
## 使用方式
/api 用户管理 CRUD
/api 订单查询接口
/api 文件上传接口
$ARGUMENTS
6.9 数据库迁移命令
# .claude/commands/migrate.md
生成数据库迁移脚本。
## 步骤
1. 分析模型变更
2. 生成迁移脚本
3. 检查数据兼容性
4. 提供回滚方案
## 迁移类型
- 创建表
- 添加字段
- 修改字段
- 删除字段
- 添加索引
- 数据迁移
## 输出格式
### 迁移脚本
```sql
-- Up
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Down
DROP TABLE users;
注意事项
- 是否有数据丢失风险
- 是否需要数据迁移
- 是否影响现有功能
$ARGUMENTS
### 6.10 技术方案命令
```markdown
# .claude/commands/design.md
生成技术方案文档。
## 文档结构
### 1. 需求背景
- 业务需求
- 技术需求
- 约束条件
### 2. 方案设计
- 整体架构
- 模块划分
- 接口设计
- 数据模型
### 3. 技术选型
- 框架选择
- 中间件选择
- 第三方服务
### 4. 实现计划
- 阶段划分
- 时间估算
- 风险点
### 5. 测试方案
- 单元测试
- 集成测试
- 性能测试
## 输出格式
使用Markdown格式,包含:
- 架构图(文字描述)
- 接口表格
- 数据模型ER图(文字描述)
- 代码示例
$ARGUMENTS
7. 团队共享命令
7.1 为什么团队共享很重要
🎯 统一标准 —— 代码审查、测试、提交都有标准
🎯 提高效率 —— 新人直接用现成命令
🎯 减少沟通 —— 不用反复解释"怎么做"
7.2 共享方式
方式1:提交到Git仓库(推荐)
# 1. 创建命令目录
mkdir -p .claude/commands
# 2. 添加命令文件
# ... 创建各个命令文件
# 3. 提交到Git
git add .claude/commands/
git commit -m "feat: 添加Claude Code自定义命令"
# 4. 团队成员拉取后即可使用
git pull
方式2:使用全局命令
# 在用户目录下创建
mkdir -p ~/.claude/commands
# 添加通用命令
# 这些命令在所有项目都可用
7.3 团队命令清单建议
| 命令 | 用途 | 优先级 |
|---|---|---|
/review |
代码审查 | ⭐⭐⭐ 必须 |
/test |
测试生成 | ⭐⭐⭐ 必须 |
/commit |
Git提交 | ⭐⭐⭐ 必须 |
/refactor |
代码重构 | ⭐⭐ 推荐 |
/docs |
文档生成 | ⭐⭐ 推荐 |
/fix |
Bug修复 | ⭐⭐ 推荐 |
/api |
API生成 | ⭐ 可选 |
7.4 命令维护
# .claude/commands/README.md
# Claude Code 自定义命令
## 命令列表
| 命令 | 说明 | 维护者 |
|------|------|--------|
| /review | 代码审查 | @zhangsan |
| /test | 测试生成 | @lisi |
| /commit | Git提交 | @wangwu |
## 使用方法
1. 确保在项目根目录
2. 输入 `/命令名` 即可
## 添加新命令
1. 在 `.claude/commands/` 目录创建 `.md` 文件
2. 按照现有命令的格式编写
3. 提交到Git
## 注意事项
- 命令文件必须是 `.md` 格式
- 命令名即文件名(不含.md)
- 支持中文内容
8. 高级用法与技巧
8.1 组合命令
创建一个命令调用其他命令:
# .claude/commands/full-workflow.md
完整的开发工作流。
## 步骤
### 1. 代码审查
先执行 /review,确保代码质量
### 2. 生成测试
执行 /test,补充测试用例
### 3. 性能检查
执行 /perf,检查性能问题
### 4. 生成文档
执行 /docs,更新文档
### 5. 提交代码
执行 /commit,规范提交
## 注意
- 每个步骤完成后确认再进行下一步
- 如果某个步骤失败,停下来修复后再继续
8.2 条件执行
# .claude/commands/smart-test.md
智能测试生成。
## 判断逻辑
### 情况1:指定了文件
如果 $ARGUMENTS 不为空:
- 为指定文件生成测试
### 情况2:未指定文件
如果 $ARGUMENTS 为空:
- 查看 `git diff --name-only` 获取修改的文件
- 为这些文件生成测试
### 情况3:有未提交的修改
如果有未提交的修改:
- 只测试修改的部分
### 情况4:没有修改
如果没有修改:
- 运行所有测试,检查覆盖率
8.3 环境感知
# .claude/commands/dev.md
根据环境执行不同操作。
## 环境判断
### 开发环境
如果当前是开发环境(NODE_ENV=development):
- 启动开发服务器
- 开启热更新
- 显示详细日志
### 测试环境
如果当前是测试环境(NODE_ENV=test):
- 运行测试
- 生成覆盖率报告
### 生产环境
如果当前是生产环境(NODE_ENV=production):
- 构建生产版本
- 优化资源
- 压缩代码
8.4 模板继承
# .claude/commands/base-review.md
代码审查基础模板。
## 基础检查项
- 类型安全
- 错误处理
- 代码风格
---
# .claude/commands/frontend-review.md
前端代码审查(继承base-review)。
## 基础检查项
参考 /base-review 的检查项
## 额外检查项
- 组件设计
- 状态管理
- 样式方案
- 性能优化
8.5 动态参数
# .claude/commands/generate.md
代码生成器。
## 使用方式
/generate component UserProfile
/generate api users
/generate model Order
## 参数解析
$ARGUMENTS 的第一个参数是类型:
- component: 生成组件
- api: 生成API接口
- model: 生成数据模型
$ARGUMENTS 的第二个参数是名称:
- 作为生成文件的名称
## 根据类型执行
### 如果类型是 component
生成 React 组件代码
### 如果类型是 api
生成 RESTful API 代码
### 如果类型是 model
生成数据模型代码
9. 常见问题与避坑
9.1 命令不生效
问题:输入 /review 没反应
排查步骤:
# 1. 检查文件是否存在
ls -la .claude/commands/
# 2. 检查文件名是否正确
# 必须是 .md 结尾
# 3. 检查是否在项目根目录
pwd
# 4. 检查Claude Code版本
# 确保是最新版本
9.2 变量不替换
问题:$ARGUMENTS 没有被替换
原因:可能是语法错误
解决:
# ❌ 错误
文件:$ARGUMENTS
# ✅ 正确
文件:$ARGUMENTS
# 确保 $ARGUMENTS 前后有空格
9.3 命令冲突
问题:项目命令和全局命令同名
解决:
优先级:项目命令 > 全局命令
如果项目有 .claude/commands/review.md
全局有 ~/.claude/commands/review.md
会使用项目级的命令
9.4 中文文件名问题
问题:中文文件名可能导致问题
建议:
# ❌ 不推荐
.claude/commands/代码审查.md
# ✅ 推荐
.claude/commands/review.md
9.5 命令太长
问题:命令文件内容太多,Claude可能忽略部分
建议:
- 控制在200行以内
- 分步骤说明
- 使用列表而不是长段落
- 重点内容加粗
10. 总结
10.1 核心要点
| 要点 | 说明 |
|---|---|
| 位置 | .claude/commands/ 目录 |
| 格式 | Markdown文件 |
| 调用 | /命令名 |
| 变量 | $ARGUMENTS 获取参数 |
| 共享 | 提交到Git仓库 |
10.2 快速开始清单
- 创建
.claude/commands/目录 - 添加
/review命令 - 添加
/test命令 - 添加
/commit命令 - 提交到Git仓库
- 团队成员拉取使用
10.3 命令模板清单
| 命令 | 文件 | 用途 |
|---|---|---|
/review |
review.md | 代码审查 |
/test |
test.md | 测试生成 |
/refactor |
refactor.md | 代码重构 |
/docs |
docs.md | 文档生成 |
/commit |
commit.md | Git提交 |
/fix |
fix.md | Bug修复 |
/perf |
perf.md | 性能优化 |
/api |
api.md | API生成 |
/migrate |
migrate.md | 数据库迁移 |
/design |
design.md | 技术方案 |
10.4 下篇预告
📌 下一篇:我们将提供一个完整的Claude Code提示词模板库——20个高频场景的即拿即用模板,涵盖日常开发的方方面面。
📚 参考资料
- Anthropic官方文档 - Claude Code Custom Commands - 2026年5月
- Claude Code最佳实践 - 官方指南
💬 你在团队中使用Claude Code自定义命令了吗?有什么好的实践?欢迎分享!
📌 如果这篇文章对你有帮助,别忘了点赞收藏,关注我获取更多Claude Code实战技巧!
更多推荐


所有评论(0)