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 with settings.section and 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.