Skip to content

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
    # 编辑文件
    # 钩子自动执行

## 最佳实践
  1. 合理使用 :只在必要时使用钩子,避免过度自动化
  2. 错误处理 :确保钩子命令有适当的错误处理
  3. 性能考虑 :避免在钩子中执行耗时操作
  4. 测试钩子 :添加钩子后,测试其行为是否符合预期

总结

/hooks 命令是 Claude Code 中用于自动化工作流的重要工具。通过使用此命令,你可以:

  • 在特定事件发生时自动执行命令
  • 自动化重复性任务
  • 实现自定义工作流
  • 提高工作效率

合理使用 /hooks 命令可以帮助你创建更高效的开发工作流。

基于 MIT 许可发布 | 永久导航