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