rizkirmdhnnn/dsh-tool-notify ↗★ 0

dsh-tool-notify

DSH plugin: model-facing notify tool (ntfy / webhook / Telegram-style) 适合让模型主动推送通知的用户;需配置端点与通道

패키지
dsh-tool-notify
호환성
미검증
Harness peer 범위
^0.1.0-rc.6
Cordis peer 범위
^4.0.1
버전
0.1.0
라이선스
MIT
최근 업데이트
2026. 8. 14.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:rizkirmdhnnn/dsh-tool-notify

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
FieldTypeDefaultDescription
endpointstringhttps://ntfy.shBase URL of the ntfy server or the full webhook URL
defaultTopicstringdsh-alertsTopic used when the model does not pass one (ntfy only)
timeoutMsnumber10000HTTP request timeout
channel'ntfy' | 'webhook''ntfy'Channel type
tokenRefstring—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.