DeepSeek Harness(DSH)在处理多会话或长时间运行任务时,开发者常需要在终端窗口和浏览器窗口间频繁切换,以确认 Agent 的状态或响应权限请求。cc-dsh-notifier 通过原生 Windows 通知系统解决了这个问题:当智能体需要用户介入(如请求权限、提问、等待输入)且当前窗口未聚焦时,系统会弹出 Toast 提醒,并支持点击直接跳转回会话窗口。
该插件由 baobaolaodie 维护,采用 MIT 许可证。它通过 Claude Code 的 Hook 机制和 DSH 插件接口接入,共享一套本地的通知管道,无需额外的第三方 npm 依赖。
核心功能¶
插件覆盖了从事件捕获到用户交互的全链路:
- 中断事件通知:在权限请求、用户提问或等待输入时触发通知。
- 聚焦感知:当会话窗口处于激活状态时自动静默;只有切换走窗口后才会触发通知。
- 点击跳转:点击通知可尝试将焦点带回会话窗口。对于浏览器标签页,支持通过 Chrome DevTools Protocol (CDP) 激活;若失败则回退到 UI Automation (UIA)。
- 多会话管理:每个 DSH 会话(Web 或 TUI)绑定独立的窗口句柄,通知携带会话身份。
- 本地化支持:通知文本默认跟随 Windows 显示语言,或通过配置指定
zh/en。 - 统一安装:一套命令同时支持 Web 和 TUI 两个 Profile。
安装与前置要求¶
安装前请确保环境满足以下条件:
- 操作系统:Windows 10 或 11。
- Node.js:18 或更高版本。
- Python 3:需安装
winrt-runtime及相关包。
pip install winrt-runtime winrt-Windows.UI.Notifications winrt-Windows.Data.Xml.Dom
下载最新版本的 tarball 包(插件包版本 0.1.5,根包版本 0.1.2),执行以下命令安装:
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
版本说明:插件包版本为 0.1.5,根包版本为 0.1.2,两者是独立的发布单元。
典型用法¶
安装完成后,启动对应的 Profile 即可自动启用。
- 启动会话:
dsh web # 或使用 dsh --profile web
dsh-tui # 或使用 dsh --profile dsh-tui
-
测试通知:
将焦点切换到其他窗口。当智能体触发中断事件(如询问是否继续)时,屏幕右下角会出现原生 Toast 通知。 -
手动触发:
用于验证通知管道是否正常工作:
node scripts/test.mjs permission-request
可选的触发类型包括:`permission-request`、`ask-user-question`、`stop`、`session-start`。
架构与运行机制¶
插件运行一个事件驱动的本地管道:
- 通知代理:运行在后台的守护进程(
daemon.mjs),负责维护会话状态、检测窗口焦点、去重以及触发 Python 侧的通知。 - Python 执行器:使用
winrt调用 Windows Toast API 渲染通知并处理点击事件。 - 自动重启:守护进程在空闲 60 秒后退出;代码变更或新会话启动会自动重启该进程。
适用场景与注意事项¶
- 适用对象:需要在 Windows 环境下使用 DSH Web 或 TUI Profile,且希望减少窗口切换频率的开发者。
- 权限说明:插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证(MIT)。
该工具已被验证兼容 DSH 0.1.0-rc.6。