Claude Code 分级推送通知插件,支持 11 个通知渠道
npx claudepluginhub mariozzj/cc-notify-hooksTiered push notifications for Claude Code — macOS, Bark, Telegram, Feishu, DingTalk, Slack, Discord, Pushover, ntfy, Gotify
Claude Code 的分级推送通知系统。支持 11 个通知渠道,可作为 Claude Code 插件 或独立脚本使用。
Claude Code 任务常常需要几秒到几十分钟不等。你不会一直盯着终端,但又需要在合适的时候回来操作。
cc-notify-hooks 将通知分为两级:
短通知(秒级) — 你可能只是切到了浏览器或聊天窗口。系统通知、手机推送这类即时触达的渠道会在几秒内提醒你"Claude 需要你"。如果你看到通知并回来操作了,后续推送自动取消——不会再打扰你。
长通知(分钟级) — 你可能离开了电脑、在开会、甚至不在手机旁。企业微信群、飞书群、Slack 频道这类团队/异步渠道会在几分钟后兜底通知。即使你错过了短通知,最终也能从工作沟通工具里看到任务状态。
核心机制:每次推送前检查用户是否已响应(pending 文件是否还在)。用户一旦回来操作,所有排队中的推送自动作废。短通知解决了问题,长通知就不会再发。
适合切屏、短暂离开的场景。
| 渠道 | 默认延迟 | 说明 |
|---|---|---|
| macOS | 3s | 零配置,系统原生通知 |
| Telegram | 5s | Bot 消息,手机即时推送 |
| Bark | 15s | iOS / macOS / Android 推送 |
| Pushover | 15s | 跨平台推送服务 |
| ntfy | 15s | 开源推送,支持自建 |
| Gotify | 15s | 自建推送服务 |
适合离开电脑、开会、或需要团队可见的场景。
| 渠道 | 默认延迟 | 说明 |
|---|---|---|
| 企业微信 | 5min | 群机器人 Webhook |
| 飞书 | 5min | 群机器人 Webhook |
| 钉钉 | 5min | 群机器人 Webhook |
| Slack | 5min | Incoming Webhook |
| Discord | 5min | Channel Webhook |
每个渠道的延迟可独立调整。只启用你需要的渠道,其余自动跳过。
Claude Code 事件
│
▼
notify.sh ── 清除旧 pending → 创建新 pending
│
│ ┌── 短通知 ──────────────────────────────────┐
├─ │ 3s → pending 还在? → macOS 系统通知 │
├─ │ 5s → pending 还在? → Telegram │
├─ │ 15s → pending 还在? → Bark / ntfy / ... │
│ └────────────────────────────────────────────┘
│ ┌── 长通知 ──────────────────────────────────┐
└─ │ 5m → pending 还在? → 企微 / 飞书 / Slack │
└────────────────────────────────────────────┘
用户回来操作(发消息 / 点权限按钮)
└─→ clear_pending.sh → 清除 pending → 后续推送全部取消
(短通知解决了,长通知就不发了)
brew install jq / apt install jq)在 Claude Code 中执行:
/plugin marketplace add MarioZZJ/cc-notify-hooks
/plugin install cc-notify-hooks@cc-notify-hooks
安装后运行 /reload-plugins 刷新,然后执行 /cc-notify-hooks:config 启动交互式配置向导(见下方配置章节)。
git clone https://github.com/MarioZZJ/cc-notify-hooks.git
claude --plugin-dir ./cc-notify-hooks
git clone https://github.com/MarioZZJ/cc-notify-hooks.git
cd cc-notify-hooks
bash install.sh
安装脚本会交互式引导你选择渠道、输入凭证,自动生成配置并合并 hooks。
安装后运行 /reload-plugins 刷新插件,即可开始使用。
bash test_notify.sh # 测试所有已启用渠道
bash test_notify.sh bark # 测试单个渠道
bash test_notify.sh list # 查看已启用渠道及延迟
bash test_notify.sh hook # 模拟完整推送流程
在 Claude Code 中运行:
/cc-notify-hooks:config
配置向导会引导你:
已有配置的渠道会标注当前状态,支持随时修改。
创建配置文件 ~/.claude/hooks/notify.json,可从模板复制后编辑:
# marketplace 安装:从项目仓库获取模板
curl -sL https://raw.githubusercontent.com/MarioZZJ/cc-notify-hooks/main/config/notify.example.json \
-o ~/.claude/hooks/notify.json
# 本地 clone:直接复制
cp config/notify.example.json ~/.claude/hooks/notify.json
然后编辑配置文件,将你需要的渠道设为 "enabled": true 并填入凭证:
{
"channels": {
"macos": { "enabled": true, "delay": 3, "events": ["notification"] },
"bark": { "enabled": true, "delay": 15, "key": "your-key", "server": "https://api.day.app" },
"telegram": { "enabled": true, "delay": 5, "bot_token": "123:ABC", "chat_id": "123456" }
},
"rate_limit": 10
}
完整配置模板见 config/notify.example.json。
| 字段 | 说明 |
|---|---|
enabled | 是否启用该渠道 |
delay | 推送延迟(秒),可自由调整 |
events | 可选,响应的事件类型,默认 ["notification", "stop"] |
| 其他字段 | 各渠道的凭证(key、webhook、token 等) |
https://api.day.app/xxxxxxxx,xxxxxxxx 即为 keyserver 字段bot_tokenhttps://api.telegram.org/bot<TOKEN>/getUpdates 获取 chat_iduser_keyapp_tokentopic 字段,自建服务器设置 serverapp_tokenserver 和 app_tokenwebhook 字段webhook 字段webhook 字段