Claude Codex 飞书通知集成
Claude Codex 飞书通知集成
启动命令
codex --dangerously-bypass-approvals-and-sandbox -c 'notify=["bash","/Users/zhiwei/.warp-feishu-hook.sh"]' claude
说明:
- notify 会在事件发生时调用 /Users/zhiwei/.warp-feishu-hook.sh
- 当前配置用于把关键状态推送到飞书机器人
回调脚本位置
/Users/zhiwei/.warp-feishu-hook.sh
/Users/zhiwei/.warp-feishu-hook.log
脚本逻辑
脚本会识别以下事件类型并通知飞书:
- PermissionRequest:需要人工审批时通知
- Stop(turn complete):任务完成或需要人工参与时通知
- 其他事件:忽略
飞书消息包含:
- 状态(✅ 任务完成 / ⚠️ 需要人工参与)
- 来源(Codex / Claude)
- 主机名、当前目录、时间
- assistant 最后一条摘要
核心工作流程
- Codex/Claude 触发 hook → 传递事件 JSON 给脚本
- 脚本记录原始输入到日志(便于排错)
- 通过关键字匹配识别事件类型
- 提取 assistant 最后一条消息(优先从 JSON,否则从会话日志)
- 判断是否需要人工参与
- 组装通知正文
- 生成飞书签名(HMAC-SHA256 + base64)
- 后台发送 HTTP POST 到飞书 webhook
- 记录发送结果
依赖项
bash, python3, openssl, base64
快速验证
检查脚本权限
ls -l /Users/zhiwei/.warp-feishu-hook.sh
chmod +x /Users/zhiwei/.warp-feishu-hook.sh # 如需要
查看日志
tail -n 100 /Users/zhiwei/.warp-feishu-hook.log
手工测试(模拟 Stop 事件)
echo '{"hook_event_name":"turn-complete","last-assistant-message":"测试通知"}' | /Users/zhiwei/.warp-feishu-hook.sh
常见问题排查
| 问题 | 排查步骤 |
|---|---|
| 飞书没收到 | 检查日志中 feishu: sent/failed;验证 webhook 地址和签名密钥;检查网络连接 |
| 日志有事件但无通知 | 检查事件类型是否在脚本识别范围内;查看日志中 event: 字段 |
| 命令找不到 | 确认 python3、openssl 已安装并在 PATH 内 |
安全建议
- ⚠️ 把 webhook 和签名密钥移到环境变量,避免明文写在脚本中
- ⚠️ 不要把包含密钥的脚本提交到 Git 仓库
最后更新:2026-02-16
License:
CC BY 4.0