Preface

DeepSeek Harness (command name dsh) runs agents in a local web interface. A round of coding or troubleshooting often takes a long time: prompts such as tool approval requests, model questions, or completion notifications all stay in the foreground tab. If you switch away from the browser, all requests will hang silently in the background, and you will only later realize that DSH is stuck waiting for confirmation.

DeepSeek officially designed Harness with the principle of “everything is a plugin”: models, tools, sessions, sandboxes, loops, and UI are all replaceable plugins without modifying the Harness source code. The community directory deepseek-harness-plugin.com hosts many third-party extensions. It is an independent website and has no official affiliation with DeepSeek / Fangzhou, and should not be regarded as an official app store.

dsh-web-ui-notify is a Web UI client plugin under the “Notifications & Integrations” category. It does not add any tools to the model. It only sends browser system notifications for approval requests, model questions, and round completion alerts when you leave the current tab. Clicking the notification will jump back to the corresponding session. This article is collated after cross-checking with the directory details page, the repository README / README.zh.md, package.json, CHANGELOG, and official DeepSeek Harness documentation.

What is this

dsh-web-ui-notify is maintained by bill9109, with the npm package name @bill9109/dsh-web-ui-notify and license BSD-3-Clause. The primary language is TypeScript, and the current repository version is 0.1.3 (2026-08-14). It was included in the community directory on 2026-08-03. As of the writing date (2026-08-17), the GitHub repository shows 17 stars, while the directory page still shows 12 stars; please refer to the repository page for the accurate star count.

It solves a specific problem: the Web UI is the only front-end through which DSH prompts you. When you are viewing other pages, you will not be notified of tool approvals, DSH questions, or completed rounds. This plugin turns these events into native system notifications, with the session name in the title, and clicking the notification will open that specific session.

package.json declares it as a DSH bundle (dsh.bundle + dsh.client), with the client platform being web. The repository README states that you can install it into the web profile via the standard dsh plugin command, without modifying DSH source code or writing custom patches. The repository has submitted the build artifacts in the lib/ directory, so no additional build is required after installation. There are no extra npm dependencies at runtime; the browser-side require calls for react, react/jsx-runtime, and ui-slots use the module system provided by the DSH frontend itself.

There are other round completion notification plugins in the same category on the directory, such as dsh-notification. dsh-web-ui-notify has a different focus: it also alerts for approvals and questions, notifies for background sessions, and clicking the notification will jump directly to the corresponding session instead of just bringing the window to the foreground. Do not mix up the installation commands of the two plugins.

Core Features

Notify when the current session requires your intervention

Tool approval requests and DSH questions will trigger notifications with context in the body: the approval notification will show the reason for the permission request, and the question notification will show the original question text. The title will include the session name, for example, “Refactor Database · Requires Approval”.

Notify for background sessions too

Notifications with context will also pop up when an inactive session requires approval or a question. You will also be alerted when a background session completes its entire round. Clicking the notification will open that specific session directly, instead of just returning to the session you were currently viewing.

Notify when the current session completes each round

A notification will be sent every time the current session ends a round. The body will show the opening of the final answer of that round (within 80 characters); if there is no final answer for a pure tool round, the round number will be displayed. Notifications will be sent for normal completion, interruption, and errors.

Only trigger when the tab is inactive, and notify each event only once

When the page is in the foreground, DSH already has built-in prompts, so the plugin will not send duplicate notifications. Each event will only be notified once: reconnection after a disconnection will not trigger duplicate alerts, and opening a session with historical records will not re-notify all old rounds. Notifications will not disappear automatically after a few seconds, and will stay until you handle them.

Settings follow the DSH interface language

The toggle is located at Settings → General → Desktop Notifications, and the Chinese/English text will follow the DSH interface language. The settings are stored in the profile’s Settings provider, so they will not be lost when upgrading the plugin.

There are four states for the setting entry:

State Meaning
Enabled Working normally
Unauthorized Click the button to request permission from the browser
Blocked by browser You previously denied permission, you need to go to the browser’s site settings to re-enable it; clicking the plugin button will not help
Browser not supported The current environment does not have the Notification API

Installation and Activation

The plugin runs with the permissions of the current dsh process, and may execute code during installation. Before installing, you should review the repository source code and the BSD-3-Clause license.

The installation command given on the community directory page is:

dsh plugin add github:bill9109/dsh-web-ui-notify

This is the original wording from the directory page. Since this plugin declares its client platform as web, the repository README requires installing it into the web profile:

dsh plugin --profile web add github:bill9109/dsh-web-ui-notify

The command will internally run pnpm add in the profile directory and append the package declaring dsh.bundle to dsh.profile.bundles. The directory page also notes that for reproducible installations, you can pin the commit hash:

dsh plugin add github:bill9109/dsh-web-ui-notify#<commit>

For development and debugging, you can first clone the repository and install it using the local path:

dsh plugin --profile web add /path/to/dsh-web-ui-notify

package.json requires Node.js ^20 or >=22. The CHANGELOG records that starting from version 0.1.2, it was adapted for the dsh 20260812 snapshot, and the package name was changed from @dsh-external to @bill9109. The README also explains that older versions of DSH before the profile system used pnpm --filter @deepseek-ai/dsh add with config.yaml; starting from the 20260806 snapshot, the profile method above is used. If your DSH is still on an older version, use the old README from the git history instead of following the commands here.

After installation, restart the Web UI in the way you normally start DSH Web UI, then hard-refresh your browser page for the plugin to appear. You will also need to grant browser notification permissions, otherwise the plugin will remain silent:
1. Open Settings → General → Desktop Notifications and click Enable Desktop Notifications
2. Select Allow when the browser pops up the permission request, and the status will change to “Enabled”
3. On macOS, you also need to allow your browser to send notifications in System Settings → Notifications

Upgrade command:

dsh plugin --profile web update github:bill9109/dsh-web-ui-notify

Uninstall command (note the package scope):

dsh plugin --profile web remove @bill9109/dsh-web-ui-notify

After uninstalling, you also need to restart the web UI and hard-refresh your browser. If you installed using a local path, run the add command again after updating the checked-out repository.

Typical Usage

  1. Confirm that the setting entry is “Enabled” and the browser’s notification permission for this DSH site is set to “Allow”.
  2. Switch to another tab, let the current session run a round, or intentionally trigger a tool approval request or DSH question. A system notification with the session name in the title should pop up.
  3. Click the notification, and your browser should return to the DSH page and open the specific session mentioned in the notification, instead of staying on the other session you were viewing.
  4. Open another background session, switch away, and wait for it to require approval or complete its entire run. Confirm that the background session will also trigger a notification, and clicking it will jump to that session.
  5. Return to the DSH tab and run a round while the tab is in the foreground: according to the README, no desktop notification should pop up this time, and the built-in prompts on the page will suffice.

If the setting does not appear after installation, the README recommends first confirming that you have restarted the Web UI and hard-refreshed the page, then using the following command to check if the bundle was added to the web profile:

dsh --profile web --dump-config | grep web-ui-notify

If no notifications appear, go through the troubleshooting list in the repository one by one: check if the switch is “Enabled”, if the site permission is “Allowed”, if macOS has allowed the browser to send notifications, and if you have switched to another tab. When the status shows “Blocked by browser”, you must go to the browser’s site settings to re-enable permission. If it shows “Browser not supported”, the current environment does not have the Notification API, so desktop notifications cannot work. If notifications suddenly stop after a restart, it is most likely that the browser reset the site permissions, and you will need to re-authorize them.

Applicable Scenarios and Notes

It is particularly suitable for these situations:
- You are already using dsh web and switch to documents, emails, or other repositories, but tool approvals and questions still get stuck in the original tab.
- You have multiple sessions open at the same time and need to know when a background session is waiting for you, and clicking the notification will jump directly to it.
- You want to be alerted not only when a round completes, but also when the model asks a question or a tool requests permission approval.

You should understand the boundaries before use, which are all stated in the repository README:
1. Only covers the Web UI. The dsh.client.platform is web, so do not expect it to send system notifications for the terminal TUI or headless profiles.
2. The tab must remain open, and you must leave the foreground. No duplicate notifications when the page is in the foreground; after the tab is closed, the browser will no longer send notifications on your behalf. It is not an operating system-level resident daemon process.
3. You must grant Notification permission. The browser will directly block notifications if permission is not granted; for sites you previously denied, you can only change the setting in the browser’s site settings, and the plugin button will not help.
4. macOS has an additional system-level switch. Even if the browser allows notifications, you will not see banners if the system settings block your browser.
5. There are no switches to filter by completion reason or keyword rules. Notifications will be sent every time the current session ends a round, including interruptions and errors. If you need to filter by completed/error status or use include/exclude rules to reduce noise, dsh-notification on the directory is an alternative, and do not mix up the installation commands of the two plugins.
6. Clicking the notification will open the corresponding session. This is the difference between this plugin and some notification plugins that only focus the window, but it requires that the Web UI is still running.

The security prompt on the directory page also applies: the plugin runs with the permissions of the current dsh process and may execute code during installation. This plugin claims to be a Web UI client bundle with zero runtime dependencies and no modifications to DSH source code, but you should still review the source code and license before installing. For reproducible installations, please pin the commit hash.

Summary

dsh-web-ui-notify moves tool approval requests, DSH questions, and round completion alerts from the Web foreground to the system notification bar, with the session name in the title, and clicking the notification will jump back to the corresponding session. It is installed via the standard web profile and does not modify Harness source code. It is suitable for users who are already using the DSH web interface and often switch away from the tab.

Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-web-ui-notify/

GitHub: https://github.com/bill9109/dsh-web-ui-notify