彭涛

  • 首页
  • AI编程出海
  • 千里会
  • 博客
    • Github 精选项目
    • Python 资料领取
    • 个人IP
  • 关于我
聚焦 AI 编程与出海实战,分享实用方法与创业经验,还有很多副业玩法。

首页 » 未分类 » 玩转 Claude Code Hooks:让自动化渗透到每个环节

玩转 Claude Code Hooks:让自动化渗透到每个环节

2026年1月12日 198点热度 0人点赞 0条评论

Claude Code 的 Hooks 机制,可以重视一下,也是解放双手,提高效率的利器。研究下来发现,能做的事情比想象的多。

什么是 Hooks

Hooks 是在 Claude Code 执行特定操作的时候自动触发的脚本。你可以理解为"钩子"或者触发器,在某个事件发生的时候,自动挂载一段你定义的逻辑。

比如 Claude 每次写完文件,你可以挂一个 Hook 跑格式化;Claude 完成一轮对话,你可以挂一个 Hook 发通知告诉你。

这种的好处一个是方便,配置一次就能自动执行,二个是用好了可以省掉部分人工操作的麻烦。

Hook 类型

Claude Code 支持多种 Hook 类型,在不同的时机触发,比如:

PreToolUse:工具执行之前触发。可以用来验证参数、做权限检查、修改工具输入。

PostToolUse:工具执行成功之后触发。可以用来格式化代码、验证输出、做后置处理。

Stop:Claude 完成一轮响应时触发。可以用来发通知、跑测试、做收尾工作。

Notification:特定通知事件触发,比如等待用户输入时。

SubagentStop:子代理完成时触发。

SessionEnd:会话结束时触发。

这些 Hook 配置在 .claude/settings.json 文件中。

image-20260104215747757

感兴趣可以看看官网文档 https://code.claude.com/docs/en/terminal-config#iterm-2-system-notifications

场景一:任务完成时发送系统通知

这是我最早配置的 Hook。用 Claude Code 的时候经常会让它跑一些耗时的任务,比如重构一个大文件、开发一个核心功能。

这时候我会切到别的窗口做其他事,不可能一直盯着看它完成没有。

配置一个 Stop Hook,当它完成的时候自动发个系统通知,这样就不用盯着看他有没有处理完成。

先写一个通知脚本 ~/.claude/complete-notification.sh:

#!/bin/bash
osascript -e 'display notification "Claude 已完成任务" with title "Claude Code"'

然后在 ~/.claude/settings.json 中配置:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "/Users/你的用户名/.claude/complete-notification.sh"
          }
        ]
      }
    ]
  }
}

image-20260104225041474

场景二:等待输入时提醒

一般都会同时运行好几个 Claude,这种并行工作的模式下,很容易漏掉某个 Claude 在等你输入。

这时候可以用 Notification Hook。当 Claude 进入等待输入状态时,触发提醒。

img

先写一个脚本 ~/.claude/idle-notification.sh,让 Claude 写就行。

#!/bin/bash
# Claude Code 空闲通知脚本

osascript -e 'display notification "Claude Code 正在等待您的输入" with title "Claude Code" sound name "Glass"'

脚本有声音提示,就算不看屏幕也能注意到。

PS:需要开启运行 Claude Code 的应用(如终端、Warp)的通知权限,如果通知不显示,可以改用 弹窗方式绕过权限问题。

image-20260104221305413

还可以进一步优化,比如我想知道是哪个窗口/项目在等待我输入,脚本就可以改成

#!/bin/bash

#Claude Code 空闲通知脚本

DIR_NAME=$(basename "$PWD")
osascript -e "display dialog \"Claude Code 正在等待您的输入

项目: $DIR_NAME\" with title \"Claude Code\" buttons {\"好的\"} default button 1"

image-20260104222224052

img

场景三:代码自动格式化

这是 Boris 重点提到的场景。Claude 生成的代码大部分时候格式没问题,但偶尔会有缩进、空格之类的小毛病。如果你的项目有严格的格式检查,这些小问题会导致 CI 失败。

用 PostToolUse Hook 可以解决这个问题:每次 Claude 写入或编辑文件后,自动跑一次格式化。

先写一个格式化脚本 ~/.claude/format-code.sh,脚本具体内容就不贴了,AI都可以直接给出。

然后配置:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit|MultiEdit",
        "hooks": [
          {
            "type": "command",
            "command": "/Users/你的用户名/.claude/format-code.sh \"$CLAUDE_FILE\"",
            "timeout": 15000
          }
        ]
      }
    ]
  }
}

matcher 设置为 Write|Edit|MultiEdit,表示只在这三种文件操作工具执行后触发。$CLAUDE_FILE 是 Claude Code 提供的环境变量,代表被操作的文件路径。

这样 Claude 每次写完代码,格式化自动执行,你不用管,CI 也不会因为格式问题挂掉。

image-20260104223532464

场景四:完成后自动跑测试

如果想让 Claude 完成任务后自动验证,可以在 Stop Hook 里加上测试命令:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "cd /你的项目路径 && npm run test 2>&1 || true"
          },
          {
            "type": "command",
            "command": "/Users/你的用户名/.claude/complete-notification.sh"
          }
        ]
      }
    ]
  }
}

这样 Claude 完成后会先跑测试,然后发通知。如果测试失败,你看通知的时候就知道有问题需要处理。

不过这个方案有个问题:每次 Claude 响应都会跑测试,有时候你只是问个问题,没必要跑测试。所以我个人更倾向于用 Subagent 来做验证,可以控制什么时候触发。这个在后面的文章里会详细说。

配置的位置

Hook 配置可以放在两个地方:

用户级配置:~/.claude/settings.json,对所有项目生效。适合放通用的配置,比如通知脚本。

项目级配置:项目根目录下的 .claude/settings.json,只对当前项目生效。适合放项目特定的配置,比如特殊的格式化规则。

如果两个地方都有配置,项目级的会覆盖用户级的。

项目级配置可以提交到 Git,这样团队成员都能用。

小结

Hooks 核心就是配置脚本,然后触发自动执行。

推荐配置一下这几个,完成通知(不用盯着屏幕等)、等待输入提醒(并行工作不漏消息)、自动格式化(代码规范不用操心)。

💡 AI 工具的爆发,让普通人也能快速做出产品。

但如何做?如何变现?如何真正走向海外市场?
    👇 想了解更多 AI 编程 & 出海实战信息,扫码添加好友了解更多

AI出海实战路线图

🔗 更多教程请访问 ipengtao.com
标签: AI Claude Code
最后更新:2026年1月12日

彭涛

创业者 & Python 工程师 &「AI 出海」实践者。 关注:AI 编程出海 / 爬虫 & RPA / 增长与变现。 📮vx:257735(欢迎交流)

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

文章目录
  • 什么是 Hooks
  • Hook 类型
  • 场景一:任务完成时发送系统通知
  • 场景二:等待输入时提醒
  • 场景三:代码自动格式化
  • 场景四:完成后自动跑测试
  • 配置的位置
  • 小结
分类
  • AI工具
  • Github 精选项目
  • Python 第三方库
  • Python 资料领取
  • 个人IP
  • 出海实战
  • 实战案例
  • 工具推荐
  • 教程与指南
  • 编程工具
最近评论

COPYRIGHT © 2025 彭涛. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14006373号