rizkirmdhnnn/dsh-tool-notify ↗★ 0
dsh-tool-notify
面向模型的提醒工具,支持ntfy、webhook与Telegram式通道 适合让模型主动推送通知的用户;需配置端点与通道
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:rizkirmdhnnn/dsh-tool-notify说明文档
阅读完整 README ↗Configuration
The bundle inserts a row with id notify. Override it in your profile's cordis.patch.yml (later layers win per row; a patch replaces the whole config):
- patch:
- id: notify
config:
endpoint: https://ntfy.sh
defaultTopic: dsh-alerts
timeoutMs: 10000
channel: ntfy
# tokenRef: NTFY_TOKEN
| Field | Type | Default | Description |
|---|---|---|---|
endpoint | string | https://ntfy.sh | Base URL of the ntfy server or the full webhook URL |
defaultTopic | string | dsh-alerts | Topic used when the model does not pass one (ntfy only) |
timeoutMs | number | 10000 | HTTP request timeout |
channel | 'ntfy' | 'webhook' | 'ntfy' | Channel type |
tokenRef | string | — | Credential reference (env-var style name) for a Bearer token |
Auth via credentials
Secrets never go in config. Set tokenRef to the name of a credential (e.g. NTFY_TOKEN), then configure that credential through DSH's normal credential provider (env var, .env, or the UI). The plugin resolves it once per call through ctx.credentials, so a rotated token reaches the next call without a restart.
Usage
The model sees a notify tool with parameters:
{
"message": "string (required)",
"title": "string (optional)",
"priority": "'min' | 'low' | 'default' | 'high' | 'max' (optional, ntfy)",
"topic": "string (optional, ntfy override)"
}
A successful call returns { ok: true, status, channel }; a non-2xx response returns { ok: false, status, channel } (not an error). Network failures and timeouts are reported as tool errors.
ntfy
POSTs to {endpoint}/{topic} with body { topic, message, title, priority }.
webhook
POSTs to {endpoint} directly with body { message, title } — no ntfy-specific fields.