Introduction¶
When running Agents in DeepSeek Harness (DSH), you often encounter states requiring user intervention: request approval, waiting for an answer to a question, or waiting for a plan review. If the web interface is not focused at that moment, or if you step away temporarily, these states are easily missed, requiring constant switching back to the page to check.
Frost-Reed/blocker-notify addresses this scenario: it provides real-time web notifications when an Agent gets stuck during work and requires user intervention, allowing you to avoid staring at the screen waiting for an action.
What is it¶
Frost-Reed/blocker-notify is a plugin for DSH, maintained by Frost-Reed, licensed under MIT, with a package.json version of 0.3.0.
It mainly handles “actionable blockers”: when an Agent needs user intervention such as approval, asking a question, or plan review, it provides a web reminder; for sandbox rejections (FS_SANDBOX_DENIED), it only records to the Host log and does not disturb the user.
Core Features¶
Below are the verified main capabilities of the plugin.
Global Banner¶
When there is a blocked session, a global banner appears on the web interface listing the blocked sessions. Clicking an entry jumps to that session and removes that reminder.
Workspace Item Flashing¶
A yellow status dot will flash on the workspace session item to indicate that the session requires attention. The flashing stops automatically once the block is resolved.
Sound¶
A short Web Audio beep plays on the page when a new actionable blocker appears. The beep does not depend on an audio file; if the browser blocks autoplay or the current environment does not support it, it silently degrades.
OS-level Notifications¶
When a new actionable blocker appears, the plugin pops up an OS-level notification via the Notification API. Clicking the notification focuses the DSH page.
System notifications rely on the browser Notification API permissions. When permissions are not enabled or denied, the banner provides options to enable or fix it.
Host-side Behavior¶
Host-side behavior captures approval requests, tool results, and maintains in-process alert logs.
For sandbox rejections FS_SANDBOX_DENIED, the plugin only records to the Host log and does not trigger the banner, sound, or system notifications.
Installation and Enablement¶
The plugin supports dynamic plugin methods for quick enablement, as well as formal bundle installation for persistent effect.
Dynamic Enablement¶
The dynamic method is suitable for trying it out first. The steps are as follows:
- Get the source code:
git clone https://github.com/Frost-Reed/blocker-notify
- In a session, let the Agent read
dynamic/host.jsanddynamic/client.js, callcordis_defineandcordis_run, and approve the Client runtime request on the web interface.
Dynamic plugins are in-process memory state. DSH needs to be re-enabled after a restart.
Formal Installation¶
The formal installation commands are as follows:
dsh plugin --profile web add github:Frost-Reed/blocker-notify
If installing from local source code, you can use:
dsh plugin --profile web add file:<local_clone_path>
Restart after installation:
dsh web
After formal installation, if new dependencies or layers are added, dsh web needs to be restarted.
If dsh is not in PATH, you can replace dsh with pnpm dsh or npx @deepseek-ai/dsh in the command.
When installing from git, the prepare build script may run. If the current environment uses pnpm, you might need to authorize it all at once in allowBuilds; alternatively, you can use the npm package or install pre-built artifacts via pnpm pack tarball.
Typical Usage¶
After installation or dynamic enablement, you can self-test using the following scenarios.
Self-test Question¶
Let the Agent call ask_user_question once.
Expected result: Banner, sound, and system notification appear.
Self-test Approval¶
Set the approval strategy to ask, the sandbox to read-only, and let the Agent try to write with sandbox_permissions.
Expected result: Actionable approval blocker reminder appears.
Self-test Sandbox Denial¶
Let the Agent write to a denied file without privilege escalation parameters.
Expected result: Silent, does not trigger banner, sound, or system notifications.
Suitable Scenarios and Notes¶
This plugin is suitable for the following scenarios:
- Running Agents on the DSH web interface;
- Frequently encountering events requiring user intervention, such as approval, questions, or plan reviews;
- Wanting to receive reminders even if the page is not focused or is temporarily left;
- Wanting to distinguish “actionable events” from “completed sandbox rejections.”
Notes before use:
- The plugin runs with the current
dshprocess permissions. Check the source code, license, and dependencies before installing. - The plugin only reminds of actionable events like approval, questions, and plan reviews; sandbox rejections remain silent.
- The sound uses Web Audio. It silently degrades if the browser blocks autoplay or the environment is unsupported.
- OS-level notifications rely on Notification API permissions. If not enabled or denied, the banner provides options to enable or fix it.
- Dynamic plugins are in-process memory state; DSH needs to be re-enabled after a restart.
- After formal installation, new dependencies or layers require restarting
dsh web. - The
package.jsondeclares peerDependencies including@deepseek-ai/cordis,@deepseek-ai/dsh-client-runtime, andreact.
Links¶
Community directory page:
https://www.skillhub.cn/plugins/Frost-Reed/blocker-notify
GitHub repository:
https://github.com/Frost-Reed/blocker-notify