Claude 通知
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_88546431/claude-notify-user-88546431。
技能介绍
要解决的问题
跑 claude 处理大改动时,模型可能在工具调用链上停留几分钟。人离开屏幕,既不知道它是否卡在等待确认,也不知道重构是否已经跑完。反复重跑只会浪费已经花掉的算力。Claude Notify 的做法是复用 Claude Code 自带的 hooks:在会话的关键节点把状态外发到你常开的通道上,人不必守着终端。
工作原理
技能注册三个事件,分工明确:
Notification:需要用户注意时立即触发,标题为 "Claude Code — 等待确认",并播放 Ping 音效。PreToolUse:静默记录本轮工具调用的开始时间与次数,为长任务判断提供时间基线。Stop:生成结束时决定是否补发通知,与Notification在 5 秒窗口内互斥去重,避免同一轮操作弹两条。
通知决策按固定顺序执行:先看 5 秒内是否刚发过 Notification;再看是否用 EnableOnce 打开了一次性标记;最后比较工具运行时长是否达到阈值,默认 100 秒,可用 SetThreshold 调整(下限 60 秒)。
通道层是薄封装,不自己造协议:macOS 走 terminal-notifier,缺失时降级 osascript,配合 afplay 播音效,横幅点击可跳回终端;钉钉与企微发 Markdown 消息;飞书发卡片消息并支持可选的 HMAC-SHA256 签名。Webhook token 只写入本机的 ~/.claude/notify/config.json。
运维靠 notify-router.sh:Status 看通道与阈值,Doctor 自检 Skill、hooks、配置与各通道环境,TestMacOS / TestDingTalk / TestFeishu / TestWeCom 逐通道试通,Disable 软关闭全部通道,UninstallHooks 从 settings.json 摘除 hooks。安装脚本会备份旧配置、合并 hooks 而非覆盖,升级时保留已有 webhook URL。
边界与注意点
桌面通知与音频只在 macOS 生效,其他环境自动跳过,只剩 Webhook。通知脚本必须以 exit 0 结束,任何通道故障都不能阻塞主流程,因此存在通知静默失败的可能,上线前用 Doctor 和对应的 TestXxx 验证一次更稳妥。Stop 的防刷屏逻辑意味着短任务结束时不会打扰你,需要即时反馈就得依赖 Notification 事件本身。修改 ~/.claude/settings.json 前确认已有备份,token 不要提交进仓库。运行环境要求 Node.js 18+。
使用场景
- 让 Claude Code 重构大型代码库时离开工位,需通过飞书卡片消息得知重构完成并返回核对结果。
- 使用 Claude Code 批量处理数据时,需通过钉钉 Markdown 消息在等待操作确认的第一时间收到提醒。
- 在 macOS 终端运行耗时较长的脚本生成时,需通过桌面横幅和 Ping 音效在任务达到100秒阈值后收到通知。
- 配置多台开发机时,需使用 notify-router.sh Doctor 自检环境,并通过 TestFeishu 验证 Webhook 连通性。
适合人员
- 独立开发者,常在多任务并行时让 Claude Code 处理耗时重构,需要飞书卡片通知以防遗漏长任务结果。
- 后端工程师,习惯用命令行工具跑批处理脚本,需要在等待确认时通过钉钉消息提醒以防阻塞流程。
- macOS 重度用户,希望在离开终端去开会时,通过桌面横幅和点击跳转功能快速回到正在运行的 Claude Code 会话。
- 团队技术负责人,负责统一配置开发机的 Claude Code 环境,需要通过 Doctor 命令排查和测试各通道连通性。