Task notification console that rings and notifies when tasks are completed.

Preface

Running long tasks in DeepSeek Harness (DSH) often leads to switching away to do other things, only to realize upon returning that it finished long ago. More commonly, an Agent is waiting for you to reply, review a plan, or approve something, but you momentarily forget which session is blocked. The plugin introduced below, “Task Notifier” (polunzh/dsh-task-notifier), solves this: it synthesizes a chime at the end of each session round, sends browser or system notifications, and provides a three-column dashboard in the sidebar to easily filter pending replies, running tasks, and completed unread tasks.

Positioning

  • Type: DSH Web Plugin, package name @polunzh/dsh-task-notifier, current version 1.2.0.
  • Maintainer: polunzh; 0 GitHub Stars; License: MIT.
  • Dependencies: engines.dsh requires >= 0.2.0-rc.2, Node >= 20.
  • Solves: Pushes “Task Completed” and “Waiting for You to Handle” events to where you can see them, rather than making you manually flip through the session list.

Core Features

Session End Sound

At the end of any session round, the browser synthesizes an upward chime (G5→C6), no audio assets need to be prepared. The panel provides a “Preview Sound” button to listen directly.

Dual-Channel Notifications

Notifications are sent via two channels, using a heartbeat mechanism to check for duplicates and prevent double sending:

  1. Page is open and browser notifications are authorized → Uses browser Notification, clicking jumps back to the corresponding session.
  2. Page is closed or notifications are not authorized → Host uses osascript to trigger system notifications on macOS.

Pending Reply Status

When the Agent asks you a question, waits for plan review, or waits for approval, the sidebar icon lights up with an amber pulsing dot, and the panel “Pending Reply” column is highlighted. Clicking opens directly to the session waiting for your decision.

Three-Column Dashboard Panel

Opening the task panel via the sidebar icon (with an unread badge) displays three columns at once:

  • Pending Reply: Sessions waiting for your input.
  • Running: Tasks currently executing.
  • Completed Unread: Tasks finished but not yet opened.

Top chips allow filtering a specific column individually, and the “Completed Earlier” at the bottom expands history. The panel supports searching by title, marking all as read, previewing the sound, and testing system notifications.

No Lost Unreads

State is written to $DSH_HOME/storages/dsh-task-notifier/state.json and persists after restart. Directory permissions 0700, file permissions 0600.

Bilingual Support

Panel and system notification text follows the host language (zh / en).

Installation & Activation

Four installation methods, choose based on your scenario.

Enter “Plugins → Experimental Plugins” in DSH, open “Custom Plugin Market”, then go to “Discover → Add Index Source”, paste:

https://dshopen.org/index.json

Then search for “Task Notifier / 任务通知台” to install. This market is categorized as “Workflow & Collaboration,” and the plugin has passed source-level verification. See dshopen plugin page.

Method 2: Self-hosted Index Installation (Can auto-detect updates)

Paste at “Discover → Add Index Source” as well:

https://dsh.127.dev/index.json

When a new version exists, the list will show it as updateable. Uninstalling is done in “Installed”. Index refreshes every 6 hours with npm. Source code at dsh-plugins-index.

Method 3: npm Installation

dsh plugin --profile desktop add @polunzh/dsh-task-notifier

Method 4: Local Directory Installation (Development/Debugging)

Use install_bundle from plugin_manager in DSH, fill target with the absolute path of this repository.

Configuration

All configuration items can be omitted, just write them in the profile’s cordis.patch.yml:

- insert:
    - id: polunzh-task-notifier
      name: '@polunzh/dsh-task-notifier'
      config:
        osNotify: auto            # auto | always | off
        sound: true               # Browser-side chime switch
        osSound: Glass            # macOS system chime name
        osTitle: DeepSeek Harness # System notification title
Field Default Description
osNotify auto auto=Page online leaves it to browser notifications, offline falls back to system notifications; always=Constantly send system notifications; off=No notifications
sound true Browser synthesized chime
osSound Glass macOS built-in chime name (Glass / Ping / Pop, etc.)
osTitle DeepSeek Harness System notification title

Typical Usage

Combining the panel and notifications, the full flow is:

  1. Start a long task in DSH, switch away to do other things.
  2. Hear the chime when the task round ends, and receive a browser notification (page open) or macOS system notification (page closed).
  3. Open the sidebar task panel, first check the “Pending Reply” column for blocked sessions, then use the top chip to switch to the “Completed Unread” column to view results.
  4. Click the notification or item in the panel to jump directly back to the corresponding session to continue.

To make system notifications more prominent, set osNotify to always and change the sound name with osSound; if you want to be completely undisturbed, set osNotify: off and sound: false.

Scenarios & Notes

Applicable Scenarios:

  • Run long tasks in DSH frequently and want to know completion immediately.
  • Sessions are blocked waiting for replies, reviews, or approvals, and need quick location.
  • Access via Web UI cross-platform and mainly receive system notifications on macOS.

Notes:

  • Plugin runs with the permissions of the current dsh process. Check source code and MIT license before enabling, especially when installing from third-party index sources.
  • System notifications currently only support macOS (osascript). Other platforms only send browser notifications.
  • Browser notifications require manual user authorization. The plugin will not request permission in the background.
  • Privacy: The plugin has no outbound requests, telemetry, or remote resources. Session titles are local-only. Does not read ~/.dsh/.credentials.yaml, .env, keychain, or SSH keys. No preinstall/postinstall/prepare scripts in package.json.
  • Since 1.1.1, the browser module ID has changed to the package name @polunzh/dsh-task-notifier, and the patch row ID has changed to polunzh-task-notifier. If you previously installed using link: or version 1.1.0 or earlier, please keep only one copy: Uninstall the old version in “Plugins → Installed” first, then install the new version.

Conclusion

Task Notifier does not change DSH’s task execution logic; it just pushes “Completed” and “Pending Reply” events—easy to miss—where you can see them. If you are often interrupted by long tasks and blocked sessions, it is worth installing to try.

Directory page: skillhub directory page; Open source repo: GitHub: polunzh/dsh-task-notifier.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye