READMESource: master@a2e878a1
dsh-webhook-notifier
DSH event-notification plugin: send HTTP notifications to a webhook when specified events occur.
English · 中文
Can be used together with the Desktop Pet project — e.g. push a notification to your desktop pet when a turn completes.
Features
- 🔔 5 trigger scenarios (each independently toggleable in settings):
- AI turn completed
- Approval requested (approval)
- AI asks a question
- AI errored
- AI started running
- 🌐 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) |
{{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).
No comments yet. Be the first to write one.