Overview¶
DeepSeek Harness (DSH) is a pluggable agent development tool. During development, you often need to approve actions manually, answer model questions, or wait for background tasks to finish. If the window is in the background, these states can easily be missed. dsh-notify is a DSH Web GUI notification plugin for reminders when intervention is required or when a task ends. It has no third-party dependencies, and all logic runs in the browser.
Installation and Enabling¶
Add the plugin using the official install command:
dsh plugin --profile web add github:printz1/dsh-notify
After installation, restart the DSH backend and refresh the browser page (the client bundle is fetched only when the page loads).
Interface and Entry Points¶
- Bell button: Located in the top-right corner of the conversation header. Clicking it can request system notification permission or manually turn on the master switch.
- Settings panel: Detailed configuration is available in
Settings → Notifications. The settings panel is registered withsettings.sectionand appears at the bottom of the settings list.
Notification Features and Configuration¶
The plugin provides three notification channels: system notifications, in-page bubbles, and sound pings.
Trigger Scenarios¶
Reminders are supported for the following scenarios; default states are shown in the table below:
| Scenario | Description | Default |
|---|---|---|
| Approval needed | Model question or plan review | On |
| Model is waiting for your answer | Model question or plan review | On |
| A round of instructions ended | Task changed from running to idle | On |
| Background task ended | Task completed, interrupted, or failed | On |
| Conversation error | Task error | On |
| Subconversation ended | Subtask finished | Off |
Filtering and Do Not Disturb¶
- Foreground muting: By default, no reminder is shown when the page is in the foreground and focused.
- Do Not Disturb period: Configure a time range (for example,
23:00-08:00); no reminders are sent during this period. - Minimum duration: Remind only for tasks that have been running for more than a specified number of seconds.
- Reminder throttling: Applies to “round end” and “background task”; approvals, questions, and errors are never throttled.
- Mute a specific conversation: Add the current conversation to the muted list; once muted, no reminders are sent for that conversation (including approvals).
Configuration Storage¶
Configuration is stored in localStorage under the dsh-notify:config key. Legacy configuration keys are migrated automatically on first load.
Technical Implementation and Self-Testing¶
- Architecture: The host-side component is an empty cordis plugin; all logic is in
lib/client.js. - Development and debugging: Soft-link installation is supported using
dsh plugin --profile web add link:/path/to/dsh-notify; after modifying files, changes take effect immediately (a backend restart and page refresh are required). - Self-check scripts:
node tools/verify-install.mjs: Verifies that the host correctly recognizes this client package.node tools/selftest.mjs: Verifies that notification behavior is normal (includes 122 assertions).
Uninstallation¶
dsh plugin --profile web remove dsh-notify
After uninstalling, restart the backend.