ntfy Notifications Skill
把 ntfy.sh 开源 HTTP 通知服务封装为 AgentDock 原生 Skill,用于 Dock 通知推送。
能力
send:向 ntfy topic 发送推送通知。支持标题、优先级、标签、点击 URL、图标和 Markdown 正文。event:发送格式化的 Dock 运行事件通知,自动拼接 severity / device / service / time 等上下文。health:验证 ntfy server URL 与 topic 配置;live: true会真实发送一条健康检查通知。subscribe:轮询拉取 topic 最近的消息(JSON 格式),支持since和limit参数。
配置
默认连接 https://ntfy.sh。可设置 NTFY_SERVER_URL 环境变量或在调用中传 server_url 指向自建 ntfy server。
Topic 名称从 NTFY_TOPIC 环境变量或调用参数 topic 获取。
认证(可选)
- Token 认证:设置
NTFY_TOKEN环境变量,使用Authorization: Bearer <token>头。 - Basic Auth:设置
NTFY_USERNAME和NTFY_PASSWORD环境变量。 - 无认证时使用公开 ntfy.sh 服务(topic 公开可见)。
可通过 NTFY_ENV_FILE 或调用参数 env_file 指定 .env 文件。
安全约束
server_url仅允许http/https,禁止 URL 内嵌用户名和密码。- 认证凭据只从环境变量 /
.env读取,不接受 action input 传入。 - Token 和密码在输出中自动脱敏。
- 不依赖第三方 Python 包。
辅助脚本执行
Skill 本体是本说明文档。确需调用包内辅助脚本时,在 Skill 包根目录使用相对路径执行;运行宿主负责切换到包根目录并把所需变量注入当前子进程。
printf '%s' '{"skill_action":"<动作>"}' | python3 run.py
输入必须是 JSON 对象。写操作仍按本文档中的确认规则执行。
| 动作 | 用途 |
|---|---|
send |
Send a push notification to an ntfy topic. Supports title, priority, tags, click URL, icon, and Markdown-formatted body. |
event |
Send a formatted Dock event notification through ntfy. |
health |
Verify ntfy configuration and optionally perform a live connectivity check. |
subscribe |
Poll an ntfy topic for recent messages (JSON format). Returns the latest messages without establishing a long-lived connection. |