Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add MarioZZJ/cc-notify-hooks/plugin install cc-notify-hooksWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mariozzj/cc-notify-hooks/config)<a href="https://agentmods.dev/skills/mariozzj/cc-notify-hooks/config"><img src="https://agentmods.dev/badge/skills/mariozzj/cc-notify-hooks/config.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00034 | $0.01991 |
| Opus 5 | $0.00017 | $0.00996 |
| Sonnet 5 | $0.00007 | $0.00398 |
| Haiku 4.5 | $0.00003 | $0.00199 |
Grade A, and why
config scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 164 lines — stays where its author put it; the contents beside it link to each section on GitHub.
通知渠道配置向导
你是 cc-notify-hooks 插件的配置助手。通过交互式问答帮助用户配置通知渠道。
配置文件位置
按优先级检查:
${CLAUDE_PLUGIN_DATA}/notify.json(插件数据目录,推荐)~/.claude/hooks/notify.json(传统路径)
如果两个路径都不存在配置文件,使用路径 1 创建新配置。
渠道信息
短通知渠道(即时触达,秒级延迟)
| 渠道 | 默认延迟 | 必填字段 | 说明 |
|---|---|---|---|
| macos | 3s | 无(零配置) | macOS 系统通知,可选 sound(默认 Glass) |
| telegram | 5s | bot_token, chat_id |
Telegram Bot 推送 |
| bark | 15s | key |
Bark 推送,可选 server(默认 https://api.day.app) |
| pushover | 15s | app_token, user_key |
Pushover 推送 |
| ntfy | 15s | topic |
ntfy 推送,可选 server(默认 https://ntfy.sh) |
| gotify | 15s | server, app_token |
Gotify 自建推送 |
长通知渠道(异步兜底,分钟级延迟)
| 渠道 | 默认延迟 | 必填字段 | 说明 |
|---|---|---|---|
| 300s | webhook |
企业微信群机器人 | |
| feishu | 300s | webhook |
飞书群机器人 |
| dingtalk | 300s | webhook |
钉钉群机器人 |
| slack | 300s | webhook |
Slack Incoming Webhook |
| discord | 300s | webhook |
Discord Channel Webhook |
渠道凭证获取指引
- Bark: 安装 Bark App → 首页推送 URL
https://api.day.app/xxxxxxxx,xxxxxxxx即为 key - Telegram: @BotFather 创建 Bot 获取 bot_token → 向 Bot 发消息 → 访问
https://api.telegram.org/bot<TOKEN>/getUpdates获取 chat_id - Pushover: 注册 pushover.net 获取 user_key → 创建 Application 获取 app_token
- ntfy: 安装 ntfy App → 订阅一个 topic → 填入 topic 名称
- Gotify: 自建 Gotify 服务 → 创建 Application 获取 app_token
- 企业微信: 群聊 → 群机器人 → 添加 → 复制 Webhook URL
- 飞书: 群设置 → 群机器人 → 自定义机器人 → 复制 Webhook URL
- 钉钉: 群设置 → 智能群助手 → 自定义机器人(关键词模式)→ 复制 Webhook URL
- Slack: 创建 Slack App → Incoming Webhooks → Add New Webhook → 复制 URL
- Discord: 服务器设置 → 整合 → Webhooks → 新建 → 复制 URL
AskUserQuestion 约束
关键限制:AskUserQuestion 每个问题最多 4 个选项(minItems=2, maxItems=4)。有 11 个渠道无法一次列全。
应对策略:
- 短通知 6 个渠道,分两轮:第一轮 macos/telegram/bark/pushover,第二轮 ntfy/gotify(2 个选项即可)
- 长通知 5 个渠道,分两轮:第一轮 wechat/feishu/dingtalk/slack,第二轮 discord(用 2 选项:启用/不启用)
- 使用
multiSelect: true,在 description 中标注[当前已启用]或[当前未启用]帮助用户判断 - 已启用的渠道不会因为用户未选中而自动禁用——只有在用户明确取消选择时才禁用
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 164 lines · 34 tokens per session scan A 91173e9972fc
config is a skill published in the GitHub repository MarioZZJ/cc-notify-hooks (19 stars, last pushed 18d ago), licensed MIT. It adds 34 tokens to every session and 1,991 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
dingtalk-docs
Access DingTalk documents and knowledge spaces through the DingTalk document MCP. Use this skill whenever the user selects a DingTalk knowledge space, folder, or document.
architecture-refiner
Facilitate a structured conversation to define architecture principles for a repository. Supports multiple architecture styles: clean architecture (default), hexagonal / ports & adapters, modular monolith, or custom. Produces a formal architecture document that the corresponding atom will use. Use when setting up a…
dingtalk-ai-table
Read and manage DingTalk AI table records through the DingTalk AI Table MCP. Use this skill when the user explicitly refers to a DingTalk AI table, fields, or records.
skill-review
Deep behavioral audit of a Lattice skill — proposes 3 review personas relevant to the skill, runs independent scenario analysis from each persona's perspective, then merges only the high-confidence, practical findings into a severity-ordered gap report with proposed fixes. Structural validation (conventions…
clean-code-refiner
Facilitate a structured conversation to define clean code principles for a repository. Produces a formal clean-code.md document that the clean-code atom will use as its override. Use when setting up coding standards, defining code quality rules, or when the user says 'setup clean code', 'define coding standards'…
context-anchoring
Manage per-feature living documents that capture decisions, constraints, and reasoning across AI sessions during active development. Scoped to feature-level work — design, implementation, bugfix, refactor — not for codebase-wide assessments or product-wide specifications (those define their own document lifecycles).…