HolyClaude任务完成通知设置:Apprise接入Discord/Telegram/Slack的100+渠道教程
【免费下载链接】HolyClaudeAI coding workstation: Claude Code + web UI + 8 AI CLIs + headless browser + 50+ tools项目地址: https://gitcode.com/gh_mirrors/ho/HolyClaude
HolyClaude 是一款基于 Docker 的 AI 编程工作站(Claude Code + Web UI + 8 个 AI CLI + 无头浏览器 + 50+ 工具)。它内置Apprise 任务完成通知机制:只需几个环境变量,Claude 跑完长任务或报错时,就能自动推送到 Discord、Telegram、Slack 等 100+ 渠道,让你离开电脑也能掌握进度 🔔
为什么需要 AI 编程任务完成通知?
用 Claude Code、Codex 等 AI CLI 跑一个重构任务,可能几分钟,也可能几十分钟。人一直盯着终端很痛苦——
- ✅ 任务完成(stop 事件):收到"HolyClaude — Task Complete"
- ⚠️ 任务失败(error 事件):收到带错误摘要的"HolyClaude — Task Failed"
触发源包括:Claude Code hooks、Codex / Gemini CLI 的 raw hooks,以及 CloudCLI Codex 聊天的完成/失败事件。所有事件走同一套 Apprise 配置,一次配置,处处生效。
💡 未配置时完全静默:没有
NOTIFY_*变量、没有标志文件,就零网络调用、零日志刷屏。
三步接入 Discord/Telegram/Slack 通知
第一步:在 Compose 里加 NOTIFY_* 环境变量
以官方 docker-compose.full.yaml 为例,在environment中添加对应渠道(只需选一个或多个):
environment: - NOTIFY_DISCORD=discord://webhook_id/webhook_token - NOTIFY_TELEGRAM=tgram://bot_token/chat_id常用渠道的 URL 格式速查表:
| 环境变量 | 渠道 | URL 格式 |
|---|---|---|
NOTIFY_DISCORD | Discord Webhook | discord://webhook_id/webhook_token |
NOTIFY_TELEGRAM | Telegram 机器人 | tgram://bot_token/chat_id |
NOTIFY_SLACK | Slack Webhook | slack://token_a/token_b/token_c |
NOTIFY_EMAIL | 邮件 (SMTP) | mailto://user:pass@gmail.com?to=you@gmail.com |
NOTIFY_GOTIFY | Gotify | gotify://hostname/token |
NOTIFY_PUSHOVER | Pushover | pover://user_key@app_token |
NOTIFY_URLS | 兜底(任意 Apprise URL) | 逗号分隔的多个 Apprise URL |
想接入其余 100+ 渠道?用NOTIFY_URLS直接填 Apprise 支持的 URL 即可,多个用逗号隔开。
第二步:创建 notify-on 标志文件
通知功能由容器内的标志文件~/.claude/notify-on总控。进入容器创建它:
docker compose exec holyclaude touch /home/claude/.claude/notify-on第三步:干跑测试,不发真消息
不实际发消息就能验证配置是否正确:
docker compose exec holyclaude /usr/local/bin/notify.py test --dry-run --debug--debug会逐个打印每个 URL 的解析结果(ok / failed),配置正确即可退出码 0。
关闭通知与版本迁移
临时/永久关闭:删掉标志文件即可,无需改环境变量:
docker compose exec holyclaude rm /home/claude/.claude/notify-on从 v1.0.0 Pushover 迁移:旧的PUSHOVER_APP_TOKEN+PUSHOVER_USER_KEY两个变量,现在合并为一个:
- NOTIFY_PUSHOVER=pover://user_key@app_tokenTelegram 格式注意:必须使用tgram://方案。旧文档里的短格式会被 Apprise 拒绝;虽然旧值(如tg://)会被自动归一化兼容,但新配置请一律用tgram://。
常见问题:Telegram 通知收不到?
这是最高频的问题(详见 docs/troubleshooting.md 的 "Telegram notifications do not arrive" 一节):
- 确认用的是
NOTIFY_TELEGRAM=tgram://bot_token/chat_id格式 - 运行
notify.py test --dry-run --debug验证 URL 被接受 - 去掉
--dry-run跑一次真实测试,仍失败则检查 bot token、chat ID 是否正确,以及容器网络能否出网
相关文件与源码路径
| 文件 | 说明 |
|---|---|
| scripts/notify.py | Apprise 通知主脚本(URL 收集、校验、发送) |
| scripts/patch-cloudcli-apprise-notifications.mjs | 为 CloudCLI 注入 Codex 会话完成/失败通知钩子 |
| docs/configuration.md | 全部NOTIFY_*变量与 URL 格式("Notifications (Apprise)" 章节) |
| docs/troubleshooting.md | Telegram 收不到通知等故障排查 |
| docker-compose.yaml / docker-compose.full.yaml | 带注释的NOTIFY_*环境变量示例 |
| tests/test_notify.py | notify.py 的测试用例 |
总结
HolyClaude 的 Apprise 通知设置可以概括为一句话:加一个NOTIFY_*变量 +touch一个标志文件,长任务跑完或报错时,Discord、Telegram、Slack、邮件……100+ 渠道任选,即配即用,随时可关。
【免费下载链接】HolyClaudeAI coding workstation: Claude Code + web UI + 8 AI CLIs + headless browser + 50+ tools项目地址: https://gitcode.com/gh_mirrors/ho/HolyClaude
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考