dsh-notify
简体中文 | English
A DeepSeek Harness (DSH) plugin that raises Windows desktop toasts when a session agent finishes or errors — plus browser notifications on remote devices (tablets / phones viewing the DSH Web UI over LAN or VPN).
Features
- Toast on root-session agent running → idle ("task done")
- Toast on agent errors (deduped per turn:step, up to 64 entries remembered)
/notifycommand:/notifystatus,/notify on|off,/notify test- Settings tab "远程通知" (Remote Notifications) toggle, sharing one global switch with the
/notifycommand (persisted in~/.dsh/notify-state.json) - Only root sessions notify — subagents stay silent
Install
This is a pure-local plugin (no @deepseek-ai imports), so a link: dependency is safe:
# assuming the plugin lives at ~/.dsh/plugins/dsh-notify
dsh plugin --profile web add ~/.dsh/plugins/dsh-notify
Or insert a row in your Cordis composition patch:
- insert:
- id: notify
name: dsh-notify
inject: [webServer] # required: wait for the webServer service before registering routes
Restart dsh web after changing the composition.
Usage
- Desktop: native WinRT toast with the default notification sound when a task finishes or errors
- Remote devices (browser): the page registers a Service Worker (
/dsh-notify/sw.js) and uses browser notifications; the browser asks for notification permission on first use — if previously denied, re-enable it in the site settings - Toggle: Settings → 远程通知, or
/notify off(remote pages re-sync the switch when the tab becomes visible)
Compatibility
- Desktop toasts require Windows + WinRT
- Developed/tested against DSH rc.8
Testing
node test/notify-state-test.mjs
17 offline regression checks (mock ctx, no dsh web restart needed): GET/POST /dsh-notify/state semantics, persistence, payload validation, same-origin guard (cross-origin 403, missing-Origin 403), 405, 413 size cap, sw.js content.
Support
If this plugin saves you time or a headache, a coffee is appreciated:
- PayPal: paypal.me/dawn388887
License
MIT © 2026 Dawn388887
No comments yet. Be the first to write one.