When running agents in DeepSeek Harness (DSH), developers need to be notified promptly of task state changes. Relying only on browser refreshes or terminal logs can easily miss information, especially when user intervention is required. The dsh-notify plugin complements this monitoring capability through native desktop notifications and remote browser push notifications.
What It Is¶
This is a DSH plugin maintained by Dawn388887. It provides desktop Toast notifications and remote browser notifications to respond to the completed, errored, or awaiting-user-input states of root-session agents.
Core Features¶
The plugin mainly handles the following types of events:
- Task completion: A desktop notification is triggered when the currently viewed root-session agent transitions from a running state to an idle state.
- Error feedback: A notification is triggered when an agent encounters an error. The system deduplicates entries per turn/step and records up to 64 error messages.
- Waiting for user: A notification is triggered when the
ask_user_questiontool actually begins waiting for a user response. Deduplication is based on the tool call; if the startup fails immediately, no notification is sent. - Remote interaction reminders: In any foreground or background root-session, any
questionorplan-reviewinteraction that requires user attention will trigger a notification in the browser. - Commands and controls:
- Use
/notify statusto view the status. - Use
/notify on|offto toggle remote notifications. - Use
/notify testto run a test.
- Use
- Global switch: There is a global switch under the “Remote Notifications” option in the settings panel. It shares logic with the
/notifycommand, and its state is persisted in~/.dsh/notify-state.json. - Session filtering: Only root sessions trigger notifications; sub-agents remain silent.
Installation and Enablement¶
The plugin is a pure local plugin injected through a Cordis patch.
# 假设插件位于 ~/.dsh/plugins/dsh-notify
dsh plugin --profile web add ~/.dsh/plugins/dsh-notify
Alternatively, insert the following into a Cordis composition patch:
- insert:
- id: notify
name: dsh-notify
inject: [webServer]
After modifying the composition or updating the plugin, restart dsh web and refresh the browser page.
Typical Usage¶
Desktop:
Requires a Windows + WinRT environment. When a task completes, errors, or waits for a user response, a native WinRT Toast is displayed and the default notification sound is played.
Remote devices:
The browser page uses a Service Worker (/dsh-notify/sw.js). Completion and error states follow the currently viewed session; question and plan-review waiting states monitor all root sessions.
Permissions and toggle:
The browser requests notification permission on first use. If permission was previously denied, it must be manually enabled in the site settings. The control toggle can be managed through the “Remote Notifications” option on the settings page or directly using the /notify off command. The remote page automatically syncs the toggle state when the tab becomes visible again.
Notes¶
- Environment dependencies: Desktop notifications depend on Windows and WinRT and are not available on other systems.
- Version compatibility: v1.2.1 fixed a startup error under DSH 0.1.7-rc.1. All session listening logic preferentially reads
uiSession.sessionStatus(DSH 0.1.7), falling back to theuiSession.pendingInteractionsAPI if unavailable. - Testing approach: All tests are offline simulations, allowing logic verification without running an actual DSH Web instance.
Summary¶
dsh-notify addresses the issue of delayed status monitoring in DSH development. By providing unified desktop and remote notification mechanisms, it helps developers respond more efficiently to agent runtime states.