游乐游手机版
首页/AI热点日报/热点详情

Claude Code Hook任务完成自动发送飞书提醒(可复用微信钉钉桌面)

类型:热点整理2026-07-24
通过创建飞书机器人并配置Webhook,利用ClaudeCode的StopHook在任务完成后自动执行通知脚本,实现向飞书发送提醒。该方法可复用于微信、钉钉等场景,有效避免频繁切换窗口查看进度,提升工作效率。

告别频繁切换窗口的烦恼!用Claude Code Hook实现任务完成自动提醒,提升你的工作效率。

核心内容:

  • 创建飞书机器人并配置Webhook触发流程
  • 将Claude Code与飞书机器人助手连接实现自动提醒
  • 方法可复用到微信、钉钉等多种提醒场景

今天是Claude Code系统的第3期,我们来聊聊怎么用Claude Code Hook实现在任务完成后发送飞书提醒。当然,这里的“飞书提醒”也可以是微信提醒、钉钉提醒、桌面提醒,整个逻辑和流程基本是一致的。

为什么要做这个Claude Code Hook?

主要是我有个不好的习惯,在Vibe Coding时总想知道进度,所以时不时切换窗口查看Claude Code当前任务到底完成没。这其实很影响效率。而我现在很多任务都在飞书上完成,所以我就想着是不是可以做个Claude Code Hook,在它完成任务后给我发个飞书提醒。这样我就不用老切换窗口查看进度,也不用担心其他事情做着做着就忘了还有这个Vibe Coding进程。

以下是完整的分步指南,其中容易出现卡点的环节都进行了标注。

步骤一:在飞书创建一个机器人

点击飞书左侧搜索框,在出现的窗口中搜索“飞书机器人”,然后点击“飞书机器人助手”。

小提示:如果之前没有安装过“飞书机器人助手”,需要先安装并授权。

完成后就可以在飞书中打开“飞书机器人助手”,在页面中依次选择“我的应用 - 新建机器人应用”。接着配置应用名称、应用描述和应用图标。我在应用描述中填写的是“在Claude Code完成任务后给出消息提醒”,这个描述不用太讲究,主要方便自己后续查看。完成后点击“确定”就会跳转到这个机器人应用的管理窗口(默认是“流程设计”页面)。

点击“创建流程”后跳转到流程编辑画布中,初始默认三个节点(支持添加更多):触发器 → 操作 → 结束

触发器:Webhook触发

触发器就是一个能记住状态、按信号自动切换的“记忆开关”。比如自动感应门,当你靠近自动感应门(信号),触发器让电机启动,门自动打开;你走远后,门自动关上(保持状态)。在我们这个案例中,我们需要用到Webhook,对应飞书机器人助手中的“Webhook触发”。

知识拓展:Webhook又叫“网络钩子”,是应用给其他应用提供实时信息的一种方式。通过Webhook,系统可以在收到HTTP/HTTPS请求时,自动触发流程运行。飞书机器人助手提供Webhook触发能力,我们就可以通过Webhook将Claude Code与飞书机器人助手连接起来,进而实现从Claude Code自动接收数据。比如当Claude Code完成任务时,通过机器人发送飞书消息。

选择“Webhook触发”后,你就会得到一条Webhook地址。这个地址非常重要,有了它,Claude Code才知道完成任务后给哪个飞书机器人助手发送消息。

接着填写Webhook推送的JSON数据格式或示例数据,对应的key值可以被后续流程节点(如操作)消费。

注意:参数需要用大括号{}括起来,由message_type和键值对组成。message_type必须为文本类型,键是字符串,值可以是字符串、数字、布尔值、数组、对象或null。如下图所示,如果你想要获取Claude Code项目字段,可以在参数中填写示例数据 "project": "cc";如果你想要获取Claude Code任务完成时间字段,可以在参数中填写示例数据 "time":"21:15:37",其他更多字段依次类推。

操作:发送飞书消息

还是以自动感应门为例,当你靠近自动感应门,门自动打开就是一个操作。而在我们这个Claude Code Hook案例中,飞书机器人助手中的“发送飞书消息”就是一个操作。

接着需要配置飞书消息的“发送对象”、消息标题和消息内容,其中的消息内容可以从我们前面Webhook触发器节点配置的JSON文件的字段中获取。

完成配置后,你可以通过curl指令,向以上Webhook地址发送一个HTTP POST请求,进行功能测试。

  • macOS系统:在电脑上打开“终端”应用程序,并执行以下命令。
curl -X POST -H "Content-Type: application/json" \
    -d '{"msg_type":"text","content":{"project":"cc","time":"21:15:37"}}' \
    此处填写 Webhook 地址
  • Windows系统:在电脑上用快捷键 Win + R 打开运行对话框,输入 cmd 并按回车键。在命令窗口执行以下命令。
curl -X POST -H "Content-Type: application/json" \
    -d "{\"msg_type\":\"text\",\"content\":{\"text\":\"request example\"}}" \
    此处填写 Webhook 地址

终端返回 success 就代表成功。

重要提醒:前面所有环节完成后,记得点击“发布”,否则后续步骤在测试时会失败。

步骤二:配置 Claude Code Hook

在正式介绍配置流程前,先简单介绍下Claude Code的Hook功能。

它和前面介绍的Webhook能力上是类似的,只不过Claude Code的Hook是给AI编程加了个“自动开关”——你提前写好规则,它在代码编辑的关键节点自动触发,不用你每次提醒,该做的事一件不会落。比如你想让AI每次修改代码后自动格式化,或者在它完成任务后发送飞书提醒,Hook就能帮你把这些“要求”变成AI必须遵守的“铁律”,彻底告别“说了八百遍还是忘”的麻烦。

它本质上是用“代码规则”替代“AI自觉”,让你的Vibe Coding流程更稳定、更高效。不管是代码格式化、安全检查,还是自动化测试,只要你能想到“想在某个时候做某件事”,就能借助Hook实现。

Claude Code的Hook通过JSON文件配置,可以添加到以下任一位置:

  • 用户设置:~/.claude/settings.json - 适用于所有项目
  • 项目设置:.claude/settings.json - 与团队共享
  • 本地项目设置:.claude/settings.local.json - 个人使用,不提交到版本控制

在这个案例中,我们使用的是第三种。我们首先创建或编辑.claude/settings.local.json文件,添加以下配置:

{
    "hooks": {
      "Stop": [
        {
          "hooks": [
            {
              "type": "command",
              "command": "$CLAUDE_PROJECT_DIR/.claude/scripts/feishu-notify.sh"
            }
          ]
        }
      ]
    }
  }

这里使用的是Stop hook,因为它在Claude Code会话结束(任务完成后)触发。整段JSON的整体含义是:当Claude Code完成当前会话的任务(如代码生成、问题解答)时,自动执行项目根目录下的feishu-notify.sh脚本。

步骤三:创建飞书通知脚本

在项目目录创建一个脚本文件(如~/.claude/scripts/feishu-notify.sh),脚本中的Webhook链接,需要替换成我们在步骤一中得到的飞书Webhook链接。

#!/bin/bash

# 从stdin读取hook输入数据
input=$(cat)

# 记录原始输入用于调试
echo "Raw input: $input" >> /tmp/feishu-debug.log

# 提取基本信息
if command -v jq >/dev/null 2>&1; then
    cwd=$(echo "$input" | jq -r '.cwd // "Unknown"')
    session_id=$(echo "$input" | jq -r '.session_id // "Unknown"')
else

# 如果没有jq,使用简单的方法
    cwd="Unknown"
    session_id="Unknown"
fi
project_name=$(basename "$cwd")
completion_time=$(date '+%H:%M:%S')
completion_date=$(date '+%Y-%m-%d')

# 记录提取的信息
echo "Extracted: cwd=$cwd, project=$project_name" >> /tmp/feishu-debug.log

# 构建消息文本(避免在JSON中使用换行符)
text_content="Claude Code任务完成 项目名称: $project_name 完成时间: $completion_time 完成日期: $completion_date"

# 使用简单的JSON构建(避免复杂的转义)
curl -X POST '替换成你的实际 Webhook 链接' \
     -H 'Content-Type: application/json' \
     -d "{\"msg_type\":\"text\",\"content\":{\"project\":\"$project_name\",\"time\":\"$completion_time\",\"date\":\"$completion_date\"}}" \
     >> /tmp/feishu-debug.log 2>&1
echo "Script completed at $(date)" >> /tmp/feishu-debug.log

这个脚本的主要作用就是,读取Claude Code传来的JSON数据(包括项目名、任务完成时间、任务完成日期)并构造一条飞书通知消息,通过curl发送HTTP POST请求到飞书Webhook。

小提示:虽然脚本里已经对系统是否安装jq做了处理,但还是建议大家提前安装jq,方便命令行中的JSON处理。

这里的脚本内容大家不用自己去写,因为可以把问题抛给AI(建议Claude Code和Claude Docs AI,一问一个准)。比如这里你可以这么问:

我想要创建一个 Claude Code Hook,实现在 Claude Code 完成任务后发送飞书通知消息,返回的消息字段包括项目名称、任务完成时间、任务完成日期

脚本创建完成后,记得在终端运行以下指令,确保脚本有执行权限(这是大家比较容易落下的点)。

chmod +x ~/.claude/scripts/feishu-notify.sh

或者如果脚本在项目目录中:

chmod +x /Users/caicai/Documents/cursor开发文件-3/feishu-hook/.claude/scripts/feishu-notify.sh

步骤四:功能测试和优化

完成前面的配置后,启动Claude Code(如果之前开着,记得退出后重新进入),运行一个简单任务(比如“你现在使用的是哪个模型”),完成后检查前面配置的飞书账号是否收到通知。

收到通知就大功告成了!当然,大家还可以根据自己的实际情况对消息通知的内容进行调整,这些就留给大家自己去探索啦~

就像前面介绍的,这里的飞书提醒,也可以替换微信提醒、钉钉提醒、桌面提醒,整个核心逻辑和流程基本是一致的,比如:

  • 微信提醒:可以借助企业微信机器人,或者第三方推送工具如虾推啥。
  • 钉钉提醒:可以借助钉钉机器人。
  • 其他提醒:桌面、Discord、Telegram、Slack等提醒,也都是类似的流程。其中桌面、Discord、Telegram、Slack有现成的Hook可以直接用,在这里就可以快速安装的指令 >> https://www.aitmpl.com/hooks

常见问题

Q1:收不到飞书提醒怎么办?

请按以下顺序排查:

  • 确认飞书机器人助手已正确“发布”(步骤一最后一步)。
  • 确认脚本有执行权限(chmod +x)。
  • 检查脚本中的Webhook地址是否替换为你的实际地址。
  • 查看调试日志:打开终端,查看/tmp/feishu-debug.log文件,看是否有错误信息。
  • 测试curl命令:单独用curl命令向Webhook发送JSON请求,确认飞书端能收到。

Q2:Windows系统下脚本无法运行怎么办?

Windows下建议使用Git Bash或WSL(Windows Subsystem for Linux)来执行脚本。如果坚持使用CMD,需要将bash脚本改写为PowerShell脚本(.ps1),然后在settings.local.json中调用对应的.ps1文件。注意Windows路径中的反斜杠需要转义或使用正斜杠。

Q3:我想在任务进行中(比如每次文件保存后)也发送提醒,可以吗?

可以。Claude Code支持多种Hook事件,除了Stop(会话结束),还有Start(会话开始)、FileModify(文件修改)、ToolUse(工具调用)等。只需在settings.local.json中将"Stop"改为对应的事件名称即可。具体事件列表可查阅Claude Code官方文档。

Q4:能否同时发送多个平台的消息(比如飞书+微信+钉钉)?

可以。在脚本中多次调用不同的Webhook地址即可。也可以在脚本中使用&并行发送,或者分别写多个脚本文件,然后在Hook配置中添加多个触发命令(hooks数组里可以放多个对象)。

来源:https://www.53ai.com/news/LargeLanguageModel/2025092335016.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。