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:

  1. Task completion: A desktop notification is triggered when the currently viewed root-session agent transitions from a running state to an idle state.
  2. 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.
  3. Waiting for user: A notification is triggered when the ask_user_question tool actually begins waiting for a user response. Deduplication is based on the tool call; if the startup fails immediately, no notification is sent.
  4. Remote interaction reminders: In any foreground or background root-session, any question or plan-review interaction that requires user attention will trigger a notification in the browser.
  5. Commands and controls:
    • Use /notify status to view the status.
    • Use /notify on|off to toggle remote notifications.
    • Use /notify test to run a test.
  6. Global switch: There is a global switch under the “Remote Notifications” option in the settings panel. It shares logic with the /notify command, and its state is persisted in ~/.dsh/notify-state.json.
  7. 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

  1. Environment dependencies: Desktop notifications depend on Windows and WinRT and are not available on other systems.
  2. 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 the uiSession.pendingInteractions API if unavailable.
  3. 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.