Introduction¶
When running long tasks with DeepSeek Harness (DSH), people don’t stay glued to the DSH Web page. They switch to other windows to write code or read documentation, and only realize upon looking back that the task finished long ago or is stuck waiting for approval, leaving a long period of idle time in between. DSH Web’s own events are only displayed within the page, so if you don’t keep the tab open and watch it, it’s easy to miss them.
The dsh-windows-notifications plugin introduced below fills this gap: it keeps the DSH tab open, while you work in other apps, task results and events that need attention still arrive in the form of Windows desktop notifications, in-page cards, and optional sounds.
What is it¶
dsh-windows-notifications is a plugin for DeepSeek Harness Web, maintained by lsq-dsh-plugins. Its npm package name is @lsq64737/dsh-windows-notifications, the current version is 0.1.1, and the license is MIT.
Following the DSH philosophy of “everything is a plugin,” these web capabilities are accessed via a plugin rather than modifying Harness itself. It does a focused set of things: mapping DSH task events to desktop notifications or in-page cards, and handling the logic for determining which form to use.
Core Features¶
There are three presentation forms:
- Windows Desktop Notifications: Based on the browser Notification API. Clicking a notification focuses DSH and opens the relevant Session.
- DSH-style In-page Notification Cards.
- Optional Synthesized Sounds: Generated by Web Audio, without downloading audio files.
By default, the same event appears in only one of “Desktop Notification” or “In-page Card”, while sound is independent and capable of accompanying either. Defaults are determined by browser visibility and focus:
| DSH Status | Default Presentation |
|---|---|
| Tab visible and browser window in foreground | DSH in-page card |
| DSH displayed on another monitor, focus on another app | Windows notification |
| Other browser tabs in foreground or browser minimized | Windows notification |
| Windows notification unavailable or denied | Fallback to in-page card (when in-page notifications are enabled) |
The logic relies on browser visibility and focus, not the number of monitors. If “Only while DSH is inactive” is disabled, Windows notifications might pop up even when DSH is in the foreground; once a Windows notification is successfully delivered for an event, the in-page card will still be suppressed.
Events covered by notifications:
- Task completed normally.
- Task failed, aborted, blocked, interrupted, or reached output limit.
- Waiting for approval, planned review, or answer.
- Subagent completion and failure notifications (optional, off by default).
There are two notable reliability designs:
- The plugin reads persistent Harness
turn/endresults to determine completion, rather than inferring from transient runtime state changes. - A silent baseline is established on page load, refresh, and reconnect; old events are not replayed as new notifications.
Additionally, the plugin does not use third-party notification services; event handling stays within DSH Web, the browser Notification API, Web Audio, and Windows.
Installation & Enablement¶
The installation command is as follows, which installs the common package to the DSH Web profile:
dsh plugin --profile web add @lsq64737/dsh-windows-notifications
If DSH Web is already running, you need to restart it after installation. Re-running the same add command updates an existing installation.
Uninstall:
dsh plugin --profile web remove @lsq64737/dsh-windows-notifications
First Use & Settings¶
After the installation steps above, follow this sequence for first-time use:
- Open DSH Web, go to Settings → Notifications.
- Select Allow notifications.
- Accept the browser’s notification permission prompt.
- Run Test Windows notification, Test in-page notification, and Test sound in order to confirm all three forms work.
Note: Browsers require user gestures to request permissions, so the plugin won’t automatically pop up a permission prompt on page load. If permissions were previously denied, you need to restore them in the browser’s site permissions settings before re-testing.
Switches and defaults provided by Settings → Notifications:
| Setting | Default | Description |
|---|---|---|
| Enable notifications | On | Master switch for task notifications |
| Windows notifications | On | Use browser Notification API |
| Only while DSH is inactive | On | Only pop system notifications when DSH is inactive |
| In-page notifications | On | Show in-page cards when system notifications are not delivered |
| Notification sound | On | Play Web Audio synthesized sounds |
| Volume | 55% | Volume of the notification sound |
| Task completed | On | Notification for successful task completion |
| Failures and interruptions | On | Notification for abnormal termination |
| Waiting for your action | On | Notification for approval, planned review, and questions |
| Subagent notifications | Off | Includes completion and failure events for subagents |
There are independent test actions for Windows notifications, in-page cards, and sound. Running a test of the same type replaces an incomplete test rather than queuing it; real task notifications maintain arrival order.
Scenarios & Notes¶
Target Audience: Developers who use DSH Web via a browser on Windows and frequently switch to other apps while tasks are running. If you always stay within the DSH page, events will be presented as in-page cards by default.
You need to be clear about these boundaries before use:
- The DSH tab must remain open; closing the tab or the browser will stop all notification processing.
- Windows notifications require the browser and page source to expose the Notification API within a secure context.
- Chrome/Edge site permissions and Windows Do Not Disturb settings remain valid; the plugin cannot bypass them.
- Windows controls the border, position, and duration of system notifications; the plugin only provides the icon, title, message, and click action.
- Browsers may throttle or freeze background tabs that haven’t been used for a long time; even if the DSH connection looks active, notifications may be delayed.
- Notification text may contain the DSH Session title; depending on system notification settings, this content is visible to Windows and the lock screen.
- When troubleshooting, action messages in Harness logs or browser console use the
windows-notifications:prefix. This covers permissions, delivery, settings, and audio issues; credentials are not logged.
Security Note: The plugin runs with the permissions of the current dsh process. It is recommended to check the source code and license before installing. This project’s source code is public on GitHub, licensed under MIT; you can review it yourself before installing.
If you wish to participate in development, you need Node.js 24 or newer and a compatible DSH development workspace. The standard workflow is:
npm ci
npm run typecheck
npm test
npm run build
Conclusion¶
dsh-windows-notifications solves a small but specific problem: preventing developers working on Windows from missing task completion and waiting-for-action events while switching windows. Once the plugin is installed, one permission grant, and three tests are done, you can safely leave DSH running in the background.
- Community Directory Page: https://www.skillhub.cn/plugins/lsq-dsh-plugins/dsh-windows-notifications
- GitHub: https://github.com/lsq-dsh-plugins/dsh-windows-notifications
Note: skillhub.cn is an independent community plugin directory and has no official affiliation with DeepSeek / Hypothesis.