The DeepSeek Harness Web interface often requires users to keep the tab open when handling long-running tasks or workflows that require human intervention. When the page is in the background or the user switches applications, notifications for task completion or permission requests can easily be missed. This plugin fills that usability gap by leveraging the browser’s native notification system.

Plugin Overview

This plugin is maintained by pd90506 and is designed to add system-level notification support to the DeepSeek Harness Web GUI. It listens for session state changes and permission request events, and sends reminders to users through the browser notification center when these events occur.

Installation and Enablement

  1. Run the following command to install the plugin:
    dsh plugin --profile web add https://github.com/pd90506/dsh-web-notification/archive/refs/tags/v0.1.0.tar.gz
  1. Restart the Web server so that the plugin’s host-side and client-side modules take effect.

Core Features

  • Task completion notifications: A notification is triggered when the agent state of any session changes from running to idle.
  • Permission request notifications: A notification is triggered when Harness initiates an approval or permission request.
  • Notification mechanism: The plugin caches events in an in-memory queue, and the client polls the GET /__dsh-web-notification/poll endpoint to retrieve notifications. Multiple tabs can listen simultaneously; duplicate notifications for the same session overwrite each other instead of stacking.
  • Icon handling: The notification icon is the DSH page’s own /favicon.svg, which is converted to PNG within the page for display.

Usage

  1. Make sure the Web server has been restarted.
  2. Grant notification permission to the DSH page (for example, http://127.0.0.1:3080) in the browser.
  3. Allow the browser to display banners and sounds in the operating system settings (for example, macOS System Settings).

Technical and Security Notes

  • Resource consumption: The plugin is UI functionality only. It does not consume tokens, does not register model tools, and does not write to session logs.
  • Policy interference: The approval listener is strictly pass-through. It calls next() to continue the flow without interfering with Harness policy execution or approval cards.
  • Security boundary: The polling endpoint returns only the notification item itself, not message content or tool parameters.

Limitations

  • Runtime dependencies: The DSH page must be open in a tab and notification permission must have been granted. Once the page is closed, notifications cannot be received, and permissions denied by the browser cannot be overridden from within the page.
  • Latency: Notification latency can be up to 2 seconds (polling interval).
  • Offline handling: If an event occurs while the page is disconnected, it can be queued for up to 60 seconds.

Summary

This plugin provides near-real-time cross-tab notifications through polling and is suitable for scenarios that require frequent workflow switching or long-running Harness tasks. The installation package follows the MIT license.