dsh-notify
DSH plugin: desktop toast + remote browser notifications when an agent finishes or errors
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 21, 2026
- Updated
- Sep 3, 2026
Introduction
dsh-notify
简体中文 | English
A DeepSeek Harness (DSH) plugin that raises Windows desktop toasts when a root-session agent finishes, errors, or asks the user a question — plus browser notifications on remote devices (tablets / phones viewing the DSH Web UI over LAN or VPN).
Features
- Toast on the currently viewed root-session agent running → idle ("task done")
- Toast on agent errors (deduped per turn:step, up to 64 entries remembered)
- Host-side toast when
ask_user_questionactually starts waiting for the user (deduped per tool call; no toast if startup fails immediately) - With DSH 0.1.2, browser notification whenever any foreground or background root session gains a
questionorplan-reviewinteraction that needs the user /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, errors, or waits for the user's answer
- Remote devices (browser): the page uses a Service Worker (
/dsh-notify/sw.js). Completion and error state follow the currently viewed session;questionandplan-reviewwaits are watched across every foreground/background root session. - Permission: the browser asks for notification permission on first use. If it was 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 and tested against DSH
0.1.2-rc.1 - The all-session pending-interaction watcher uses the DSH 0.1.2
uiSession.pendingInteractionsAPI
Testing
All tests are offline and use mocked services; no running DSH Web instance is required.
node test/notify-client-test.mjs
node test/notify-events-test.mjs
node test/notify-state-test.mjs
notify-client-test.mjs: 34 checks covering DSH 0.1.2 all-sessionquestion/plan-reviewbehavior, deduplication, current-session completion/errors, and cleanupnotify-events-test.mjs: 9 checks covering Hostask_user_questionwaiting detection, call deduplication, unrelated tools, and root-only filteringnotify-state-test.mjs: 17 checks covering GET/POST/dsh-notify/state, persistence, payload validation, same-origin handling, 405/413 responses, andsw.js
Support
If this plugin saves you time or a headache, a coffee is appreciated:
- PayPal: paypal.me/dawn388887
License
MIT © 2026 Dawn388887