How this skill is triggered — by the user, by Claude, or both
Slash command
/cc-notify-hooks:configThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
你是 cc-notify-hooks 插件的配置助手。通过交互式问答帮助用户配置通知渠道。
你是 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 |
https://api.day.app/xxxxxxxx,xxxxxxxx 即为 keyhttps://api.telegram.org/bot<TOKEN>/getUpdates 获取 chat_id关键限制:AskUserQuestion 每个问题最多 4 个选项(minItems=2, maxItems=4)。有 11 个渠道无法一次列全。
应对策略:
multiSelect: true,在 description 中标注 [当前已启用] 或 [当前未启用] 帮助用户判断用 Bash 读取配置文件(先检查 ${CLAUDE_PLUGIN_DATA}/notify.json,再检查 ~/.claude/hooks/notify.json)。如果不存在,记住稍后需要创建新配置。解析每个渠道的 enabled 状态和凭证是否为占位值。
向用户展示当前所有渠道的状态概览表格:
短通知渠道(即时触达)
macos ✅ 已启用 延迟 3s
telegram ❌ 未配置
bark ❌ 未配置
pushover ❌ 未配置
ntfy ❌ 未配置
gotify ❌ 未配置
长通知渠道(异步兜底)
wechat ✅ 已启用 延迟 300s
feishu ❌ 未配置
dingtalk ❌ 未配置
slack ❌ 未配置
discord ❌ 未配置
第一轮(4 个渠道):用 AskUserQuestion(multiSelect=true)让用户选择要启用的短通知渠道。
选项:macos、telegram、bark、pushover。每个选项的 description 中标注当前状态,如:
第二轮(2 个渠道):ntfy、gotify,同样 multiSelect=true,description 标注状态。
将两轮的选择结果合并。对比现有配置:
同样分轮:
第一轮:wechat、feishu、dingtalk、slack(multiSelect=true) 第二轮:discord(2 选项:启用/不启用)
合并结果,同第三步逻辑。
对所有新启用的或凭证仍为占位值的渠道,逐个引导配置:
每个渠道配置完成后,立即写入配置文件(避免丢失)。
然后用 AskUserQuestion 询问下一步:
如果用户选择"修改已配置的渠道",显示该渠道当前配置值(凭证脱敏),让用户逐字段修改(留空保持不变)。修改完成后回到此步骤继续循环。
如果用户选择"完成配置",进入下一步。
将最终配置写入配置文件。
写入规则:
~/.claude/hooks/notify.json,继续写入该路径${CLAUDE_PLUGIN_DATA}/notify.json(先用 Bash mkdir -p 确保目录存在)rate_limit 字段写入后用 AskUserQuestion 询问是否测试:
测试用 Bash 运行:
bash ${CLAUDE_PLUGIN_ROOT}/test_notify.sh <channel_name>
$ARGUMENTS 包含渠道名(如 /cc-notify-hooks:config bark),跳过渠道选择步骤,直接进入该渠道的凭证配置Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub mariozzj/cc-notify-hooks --plugin cc-notify-hooks