DeepSeek Harness (DSH) developers often need to switch frequently between terminal windows and browser windows when handling multi-session or long-running tasks, in order to check an agent’s status or respond to permission requests. cc-dsh-notifier solves this by using the native Windows notification system: when the agent needs user intervention (such as requesting permission, asking a question, or waiting for input) and the current window is not focused, the system displays a Toast notification and supports clicking to jump directly back to the session window.
This plugin is maintained by baobaolaodie under the MIT license. It integrates via Claude Code’s Hook mechanism and the DSH plugin interface, shares a local notification pipeline, and requires no additional third-party npm dependencies.
Core Features¶
The plugin covers the full chain from event capture to user interaction:
- Interrupt event notification: Triggers notifications during permission requests, user questions, or waiting for input.
- Focus awareness: Automatically stays silent when the session window is active; notifications are triggered only after the focus has switched away from the window.
- Click to jump: Clicking the notification attempts to return focus to the session window. For browser tabs, it supports activation via Chrome DevTools Protocol (CDP); if that fails, it falls back to UI Automation (UIA).
- Multi-session management: Each DSH session (Web or TUI) is bound to an independent window handle, and notifications carry the session identity.
- Localization support: Notification text follows the Windows display language by default, or can be specified as
zh/enthrough configuration. - Unified installation: One set of commands supports both the Web and TUI profiles.
Installation and Prerequisites¶
Before installation, ensure your environment meets the following requirements:
- Operating system: Windows 10 or 11.
- Node.js: 18 or higher.
- Python 3: Requires
winrt-runtimeand related packages.
pip install winrt-runtime winrt-Windows.UI.Notifications winrt-Windows.Data.Xml.Dom
Download the latest tarball package (plugin package version 0.1.5, root package version 0.1.2), and run the following commands to install it:
dsh plugin --profile web add ./baobaolaodie-cc-dsh-notifier-0.1.5.tgz
dsh plugin --profile dsh-tui add ./baobaolaodie-cc-dsh-notifier-0.1.5.tgz
Version note: The plugin package version is 0.1.5, and the root package version is 0.1.2. They are independent release units.
Typical Usage¶
After installation, start the corresponding profile to enable it automatically.
- Start a session:
dsh web # 或使用 dsh --profile web
dsh-tui # 或使用 dsh --profile dsh-tui
-
Test notifications:
Switch focus to another window. When the agent triggers an interrupting event (such as asking whether to continue), a native Toast notification appears in the lower-right corner of the screen. -
Manual trigger:
Used to verify that the notification pipeline works correctly:
node scripts/test.mjs permission-request
Optional trigger types include: `permission-request`, `ask-user-question`, `stop`, `session-start`.
Architecture and Runtime Behavior¶
The plugin runs an event-driven local pipeline:
- Notification agent: A daemon running in the background (
daemon.mjs) responsible for maintaining session state, detecting window focus, deduplicating events, and triggering notifications on the Python side. - Python executor: Uses
winrtto call the Windows Toast API to render notifications and handle click events. - Automatic restart: The daemon exits after 60 seconds of idle time; code changes or new session starts automatically restart the process.
Use Cases and Notes¶
- Audience: Developers who use the DSH Web or TUI profile on Windows and want to reduce frequent window switching.
- Permissions: The plugin runs with the privileges of the current DSH process. It is recommended to review the source code and license (MIT) before installation.
This tool has been verified for compatibility with DSH 0.1.0-rc.6.
Related Links:
* Plugin directory
* GitHub repository