dsh-webhook-notifier
DSH 事件通知插件:AI 回合完成、权限申请、提问、出错等 7 种场景发生时,向 Webhook 发送自定义 HTTP 通知,支持 GET/POST、预设字段/自定义文本、type+type_cn、发送日志
- Stars
- 0
- Language
- JavaScript
- Created
- Sep 3, 2026
- Updated
- Sep 3, 2026
Introduction
dsh-webhook-notifier
DSH event-notification plugin: send HTTP notifications to a webhook when specified events occur.
Can be used together with the Desktop Pet project — e.g. push a notification to your desktop pet when a turn completes.
Features
- 🔔 7 trigger scenarios (each independently toggleable in settings):
- AI turn completed
- Approval requested (approval)
- AI asks a question
- AI errored
- AI started running
- Subagent finished
- Workflow finished
- 🌐 HTTP requests:
GET/POST, body asJSON/Form - 📦 Two payload modes:
- Preset fields: toggle fields and write templates (e.g.
{"session":"{{sessionName}}"}) - Custom text: always sent as the
msgparameter, free-form content
- Preset fields: toggle fields and write templates (e.g.
- 🏷️ Always sends
type+type_cn: the message kind in English and Chinese - 🔧 Custom headers: add arbitrary header key/value pairs
- 🔍 Test send: verify connectivity with one click
- 📜 Send log: each entry expandable to inspect full request content, response, and errors
- 💾 Persistent config: stored in
$DSH_HOME/settings.yaml, survives restarts
Install
dsh plugin --profile web add github:masknull/dsh-webhook-notifier
Restart dsh web after installing.
Usage
- Open Settings → Webhook Notifier
- Turn on the Webhook 通知 switch
- Configure Request: method, URL, payload mode, headers
- Tick the trigger scenarios (which events send notifications)
- Fill the payload in Preset Fields or Custom Text
- Click Test Send to verify, then Save
Placeholders
Templates support the following placeholders ({{ }} wrapped, distinct from JSON {}):
| Placeholder | Description |
|---|---|
{{type}} | Message type, always sent (e.g. turnComplete) |
{{type_cn}} | Message type in Chinese, always sent (e.g. 回合完成) |
{{sessionId}} | Session ID |
{{sessionName}} | Session title |
{{turn}} | Turn number |
{{time}} | Current time (UTC+8) |
{{trigger}} | Trigger scenario |
{{toolName}} | Tool name (approval requests) |
{{reason}} | Reason (approval requests) |
{{error}} | Error message (AI errored) |
{{question}} | Question text (AI asks) |
{{status}} | Status (agent running) |
{{stopReason}} | Stop reason (subagent/workflow end) |
{{workflowName}} | Workflow name |
{{subagentLabel}} | Subagent label |
{{userMessage}} | Latest user message |
{{assistantMessage}} | Latest AI reply |
{{createdAt}} | Session creation time |
Send Examples
POST + JSON (preset fields):
{"type":"turnComplete","type_cn":"回合完成","sessionId":"s1","sessionName":"测试会话"}
POST + JSON (custom text → msg):
{"msg":"任务【测试会话】回合完成","type":"turnComplete","type_cn":"回合完成"}
GET: https://example.com/hook?type=turnComplete&type_cn=回合完成&sessionId=s1
Companion Projects
- Desktop Pet: surface notifications on your desktop pet to monitor DSH activity in real time.
Uninstall
dsh plugin --profile web remove dsh-webhook-notifier
Restart dsh web. Config remains in settings.yaml (remove the fields manually to fully purge).