Preface

When running Agents with DeepSeek Harness (DSH), approvals, questions, and turn completions often occur in background sessions. When the window is not in the foreground, it is easy to miss moments requiring human intervention. Common practices include watching the interface or relying on terminal bells, but terminal notifications and the system notification center offer two distinct experiences, and the former may not allow you to “click to return to that session.”

Here we introduce the community plugin dsh-notify (maintained by bitterSmilezzz): it pops up native system notifications at nodes such as approvals, questions, turn completion, session termination, and errors. Clicking the notification focuses the DSH window and switches to the corresponding session. Notifications utilize the renderer process’s Web Notification API; in the desktop App, they are sent under the host identity, requiring no external binaries like terminal-notifier or osascript, nor does it rely on additional authorization flows.

What is this

dsh-notify is a client-side plugin for DSH, with the npm package name @bittersmilezzz/dsh-notify. For source code and documentation, see the GitHub repository. It subscribes to official session and error events within the DSH desktop or browser client and delivers banners using Web Notifications. It has a low permission level: it does not write to disk, spawn processes, or initiate external network requests. It also does not read session content, but only reads session titles and running status.

Requires DSH 0.2.1-rc.2 or higher (depends on entry points like ctx.uiSession.sessionStatus and ctx.uiWorkspace.openSession). Node.js must satisfy ^22.19.0 || >=24.0.0 (see engines in package.json).

Core Features

Six Event Types and Toggles

You can toggle each event individually:

Config Key Meaning
approval Approval required
question Answer required
turn Turn completed
sessionDone Session ended
error Agent error
subagent Subagent completed (default: off)

Approvals and questions are blocking interactions, so notifications are always delivered. For turn completions, session endings, etc., notifications are only triggered if the system detects “completed in background” or if the window is not in the foreground at runtime, avoiding disturbance when you are already viewing that session.

Click to Return to Session

Clicking a notification focuses the window and opens the corresponding session within the App (it does not open a new browser tab). Navigation prioritizes the official uiWorkspace.openSession; for DSH 0.1.x combinations, it falls back to sessions.open.

Aggregation by Session and Privacy

New notifications for the same session replace the previous card, while parallel sessions remain independent (see README “Known Risks” for behavior regarding tag in the Windows desktop version). You can disable “Show details in body,” so banners only display the session name. A Do Not Disturb period can be configured (supports spanning midnight); within this period, only turn completions, session endings, and subagents are muted. Approvals, questions, and errors are unaffected.

Sound Effects and Language

The plugin uses Web Audio to synthesize short sound effects for different events (with a 300ms throttle for the same type). When plugin sound effects are disabled, system notification sounds are also disabled. Notification text follows the DSH interface locale, supporting both Chinese and English.

Installation and Activation

Execute any of the following methods under the target profile (commands excerpted from the repository README):

# npm (recommended)
dsh plugin --profile <profile> add @bittersmilezzz/dsh-notify

# Or from GitHub
dsh plugin --profile <profile> add github:bitterSmilezzz/dsh-notify

# Or local path
dsh plugin --profile <profile> add <path-to-repo>

You must restart the DSH host after installing or upgrading the plugin. Toggles in the settings take effect immediately after being switched; no separate save is required.

After enabling, find this plugin in the Plugins panel in the sidebar and open the Configuration Form (settings namespace notify, i.e., the “Desktop Notifications” card). In a browser environment, first-time use requires a one-time user gesture authorization for Web Notification via the “Enable Notifications” button on the card. The desktop App side reads the README explaining that all non-media permissions are granted, setting Notification.permission to granted, with no additional authorization popups.

Typical Usage

  1. Install and restart the host as described in the previous section.
  2. Turn on the master switch in the Desktop Notifications card and check the approval, question, turn, etc., events as needed.
  3. Switch the DSH window to the background or work on other sessions, wait for the Agent to trigger an approval, question, or turn completion, and confirm that a prompt appears in the system notification bar.
  4. Click the notification and confirm that the window is focused and jumps to the corresponding session.

If the profile does not have dsh-client-ui-session installed, the plugin will only register the settings card and will not send notifications, nor will it report errors (see README “Known Risks”).

Scenarios and Cautions

Who it is for: DSH users who run multiple sessions in parallel for long periods and need to receive “approval needed / answer needed / run completed” reminders even when away from the window.

Please be aware before use:

  • The plugin runs with the permissions of the current DSH process; it is recommended to read the source code and MIT License before installation.
  • Notifications cannot be received if the page or window is completely closed; however, the desktop App can still receive them when minimized to the tray. When multiple clients (desktop + browser) are online simultaneously, each end will pop up a notification once; there is no cross-end deduplication.
  • On Windows, closing a toast may remove it from the notification center; if it is subsequently replaced by an informational notification from the same session, the approval card may be accidentally dismissed. The README has a detailed explanation.
  • If DeepSeek Harness sources are turned off in Windows “Settings → System → Notifications,” notifications from this plugin will be silent and will not pop up.

Community directory page: skillhub.cn/plugins/bitterSmilezzz/dsh-notify (Independent curation site, with no official affiliation with DeepSeek / High-Flyer). For bug reports, please use GitHub Issues.

Conclusion

dsh-notify connects several high-frequency “need a glance” events in DSH to the system notification center and uses official UI navigation to bring the click action back into the session. If you are already using DSH version 0.2.1-rc.2 or above, you can connect it using the installation command in the README and toggle it as needed in the plugin card.