DeepSeek Harness (DSH) adopts a plugin-based architecture, and developers often run tasks in the background. When tasks finish or are interrupted, the lack of immediate feedback can increase debugging costs. dsh-notifier-plugin aims to solve this problem by providing key event feedback to users through system-level notifications.

Plugin Introduction

This is a client-side plugin maintained by hotpot-labs. It provides desktop notification support, triggering notifications when a run completes, when the model asks a question (ask_user_question), or when waiting for approval (sandbox escalation / tool permissions).

The notification content reflects the run result (completed / errored / aborted / token limit reached / blocked / interrupted). At the transport layer, it supports switching at build time: by default, it uses the browser-native Notification(), and it can also be configured to use Tauri’s @tauri-apps/plugin-notification.

Core Capabilities

  • Desktop notification support: Compatible with macOS, Linux, and Windows.
  • Key event triggers: Supports instant notifications for run completion, model questions, and approval requests (sandbox escalation or tool permissions).
  • Single notification per run: For top-level run sessions, it filters sub-agent sessions and triggers only one notification per run.
  • Foreground silence: When the page or window is visible and focused, notifications are not sent, avoiding interruptions.
  • Web UI settings card: Provides a real-time configuration interface; no restart is required to adjust toggles.
  • Event stream reconnection: Supports automatic event stream reconnection.

Installation and Enabling

Install the plugin via npm (recommended):

dsh plugin --profile web add dsh-notifier-plugin

After installation, restart the web process to load the plugin:

dsh --profile web web

Verify that the plugin is mounted correctly:

dsh --profile web --dump-config | grep -n dsh-notifier

Configuration Methods

There are two configuration methods: Web UI settings take precedence over the config file.

  1. Open dsh web.
  2. Go to Settings -> Plugins -> Plugin configuration.
  3. Expand the notification card, adjust the toggles, and save.

Config File Configuration

Declare the configuration in cordis.patch.yml under the profiles directory:

- id: dsh-notifier
  name: dsh-notifier-plugin
  config:
    enabled: true        # 总开关
    title: DeepSeek Harness
    sound: true          # 允许系统通知音效;false 则静默
    onBlocked: true      # 阻塞通知的总开关
    onQuestion: true     # 提问通知(仅当 onBlocked 为 true 时生效)
    onApproval: true     # 批准通知(仅当 onBlocked 为 true 时生效)

Usage Notes

  1. Permission grant: Browsers require a user gesture to grant notification permission. It is recommended to click the Send test notification button on the settings card to trigger authorization.
  2. Foreground running silence: Notifications are triggered only when the dsh web page or Tauri window is open. Without a page, notifications cannot be received (not effective in Headless mode).
  3. macOS signing issue: macOS rejects notification permission for ad-hoc signed apps. Use a developer signature or relay through the host process (osascript).
  4. Tauri desktop configuration: On Windows / Linux, tauri-plugin-notification must also be installed and capabilities configured; macOS uses a special host relay mechanism.
  5. pnpm version limitation: If using pnpm ≥ 10, it may prevent git dependency build scripts from running. If a build is skipped after installation, allow the plugin’s build in the profile’s pnpm-workspace.yaml.

Summary

dsh-notifier-plugin provides basic desktop notification capabilities for DeepSeek Harness, suitable for developers who need to run tasks in the background and stay aware of status changes. With system notifications, you can track task progress without opening the interface.

  • Directory page: https://www.skillhub.cn/plugins/hotpot-labs/dsh-notifier-plugin
  • GitHub: https://github.com/hotpot-labs/dsh-notifier-plugin