Skip to content

Cygra/claude-code-feishu-hooks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

claude-code-feishu-hooks

Claude Code 飞书通知 hooks。基于 Claude Code 的 hooks 机制,在任务完成、需要确认等关键节点自动向飞书发送通知卡片。

相比 skill 方式,hooks 由 Claude Code 系统直接触发,无需 AI 判断,稳定可靠

通知类型

触发时机 卡片颜色 说明
Claude 完成回答(Stop 🟢 绿色 任务完成,附带最后一条消息摘要
Plan 待审批(Notification permission_prompt) 🟠 橙色 ExitPlanMode 触发,卡片内附带完整 plan 内容
需要权限确认(Notification permission_prompt) 🟠 橙色 Claude 等待用户在终端确认操作
Claude 等待输入(Notification idle_prompt) ⚪ 灰色 Claude 已就绪,等待下一条指令
执行危险命令前(PreToolUse Bash) 🟠 橙色 检测到 rm -rf、force push 等危险操作

检测的危险命令模式:rm -rfgit push -fgit push --forcegit reset --hardDROP TABLEDELETE FROMtruncate table

安装

1. Clone 仓库到任意目录

git clone https://github.com/Cygra/claude-code-feishu-hooks.git ~/claude-code-feishu-hooks

2. 运行安装脚本

bash ~/claude-code-feishu-hooks/install.sh

install.sh 会自动检测脚本所在路径,将 hook.py绝对路径写入 ~/.claude/settings.json

安装后的 settings.json 示例:

{
  "hooks": {
    "Stop": [
      { "matcher": ".*", "hooks": [{ "type": "command", "command": "python3 /path/to/claude-code-feishu-hooks/hook.py" }] }
    ],
    "Notification": [
      { "matcher": ".*", "hooks": [{ "type": "command", "command": "python3 /path/to/claude-code-feishu-hooks/hook.py" }] }
    ],
    "PreToolUse": [
      { "matcher": "Bash", "hooks": [{ "type": "command", "command": "python3 /path/to/claude-code-feishu-hooks/hook.py" }] }
    ]
  }
}

安装是幂等的,重复执行不会产生重复条目。不会影响其他已有的 hooks。

install.sh 同时会将 /feishu-hooks-init 命令安装到 ~/.claude/commands/

3. 生成 feishu.json 配置文件

打开任意 Claude Code 会话,运行:

/feishu-hooks-init

Claude 会引导你填写飞书应用凭证,自动生成 ~/.claude/feishu.json,无需手动编辑 JSON。

也可以手动创建 ~/.claude/feishu.json,格式见下方说明

卸载

bash ~/claude-code-feishu-hooks/uninstall.sh

仅移除 claude-code-feishu-hooks 注册的条目,其他 hooks 保持不变。

feishu.json 格式

{
  "app_id": "cli_xxx",
  "app_secret": "your_secret",
  "user_id": "your_user_id",
  "user_id_type": "user_id"
}

字段说明:

  • app_id / app_secret:飞书自建应用的 App ID 和 Secret
  • user_id:接收通知的用户 ID
  • user_id_type:ID 类型,通常为 user_id(也支持 open_idunion_id

获取步骤:

  1. 前往飞书开放平台,创建一个自建应用
  2. 在「凭证与基础信息」里获取 app_idapp_secret
  3. 在「权限管理」里开通 im:message:send_as_bot(发送消息)权限,并发版
  4. 你的 user_id 可在飞书 App → 个人资料 → 复制用户 ID 获取

手动配置

如果不想用安装脚本,可以直接编辑 ~/.claude/settings.json,在 hooks 对象里加入上面的 JSON 片段,将路径替换为实际的 hook.py 绝对路径。

禁用某个事件

直接在 ~/.claude/settings.json 中删除对应的 hook 条目即可。例如,不想在任务完成时通知,删掉 Stop 下对应的 hook 对象。

About

Claude Code 飞书通知 hooks。基于 Claude Code 的 hooks 机制,在任务完成、需要确认等关键节点自动向飞书发送通知卡片。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors