7.16 /hooks - 管理钩子配置
概述
/hooks 命令用于管理工具事件的钩子配置。钩子允许你在特定事件发生时自动执行自定义脚本或命令。
基本语法
bash
/hooks [subcommand]
子命令
| 子命令 | 描述 |
|---|
无参数| 列出所有已配置的钩子 add| 添加新的钩子 edit| 编辑现有钩子 remove| 删除钩子 enable| 启用钩子 disable| 禁用钩子
## 功能说明
### 列出钩子
bash
/hooks
# 显示所有已配置的钩子及其状态
### 添加钩子
bash
/hooks add
# 按照提示输入:
# - 钩子名称
# - 触发事件
# - 执行命令
# - 工作目录
### 删除钩子
bash
/hooks remove <hook-name>
# 删除指定的钩子
## 钩子事件Claude Code 支持以下钩子事件:
| 事件 | 描述 |
|---|
before-edit| 文件编辑前 after-edit| 文件编辑后 before-run| 命令执行前 after-run| 命令执行后 on-error| 错误发生时 on-success| 任务成功时
## 使用场景
### 1\. 代码格式化
bash
# 添加文件编辑后的格式化钩子
/hooks add
# 配置:
# - 事件: after-edit
# - 命令: prettier --write $FILE
# - 作用: 每次编辑文件后自动格式化
### 2\. 运行测试
bash
# 添加代码编辑后的测试钩子
/hooks add
# 配置:
# - 事件: after-edit
# - 命令: npm test
# - 作用: 每次编辑代码后运行测试
### 3\. 备份文件
bash
# 添加文件编辑前的备份钩子
/hooks add
# 配置:
# - 事件: before-edit
# - 命令: cp $FILE $FILE.backup
# - 作用: 编辑前自动备份文件
### 4\. 通知
bash
# 添加任务完成后的通知钩子
/hooks add
# 配置:
# - 事件: on-success
# - 命令: notify-send "Task completed"
# - 作用: 任务完成后发送通知
## 钩子配置示例
### 格式化钩子
yaml
name: format-code
event: after-edit
command: prettier --write $FILE
enabled: true
### 测试钩子
yaml
name: run-tests
event: after-edit
command: npm test
working-dir: ./tests
enabled: true
### 备份钩子
yaml
name: backup-file
event: before-edit
command: cp $FILE $FILE.backup
enabled: true
## 环境变量
钩子命令可以使用以下环境变量:
变量| 描述
---|---
`$FILE`| 被编辑的文件路径
`$COMMAND`| 执行的命令
`$STATUS`| 命令退出状态
`$WORKING_DIR`| 工作目录
## 注意事项
1. 钩子命令在工作目录中执行
2. 钩子执行失败不会阻止主流程
3. 可以禁用钩子而不删除
4. 钩子配置保存在项目或用户级别
## 与其他命令的配合使用
bash
# 配置钩子,然后测试
/hooks add
# 编辑文件
# 钩子自动执行
## 最佳实践- 合理使用 :只在必要时使用钩子,避免过度自动化
- 错误处理 :确保钩子命令有适当的错误处理
- 性能考虑 :避免在钩子中执行耗时操作
- 测试钩子 :添加钩子后,测试其行为是否符合预期
总结
/hooks 命令是 Claude Code 中用于自动化工作流的重要工具。通过使用此命令,你可以:
- 在特定事件发生时自动执行命令
- 自动化重复性任务
- 实现自定义工作流
- 提高工作效率
合理使用 /hooks 命令可以帮助你创建更高效的开发工作流。