前言¶
用 DeepSeek Harness(DSH)跑长任务时,窗口往往不在前台:对话卡在「要你批权限」、AI 在等你答计划确认、或一轮跑完/报错,你只能靠偶尔切回去看状态。DSH 本身会弹界面内交互,但 Windows 桌面上没有系统级提醒,也不方便「点一下就把 DSH 拽到前面」。dsh-windows-notify 是社区插件(维护者 airenburen),在 Windows 10/11 上走 Toast 通知,并在权限类场景支持通知上的「允许 / 拒绝」直接结算,无需立刻回到 DSH 主界面。
这是什么¶
dsh-windows-notify 面向 DSH 的 Windows 部署:监听 Harness 里「需要你操作」的状态,弹出原生 Toast(操作中心可查、可配置显示时限自动消失);点击通知或通知上的「打开 DSH」可唤起主窗口(最小化还原、后台置前)。除自动状态通知外,还提供模型工具 notify_user、HTTP 接口及 ctx.windowsNotify 服务,供脚本或 AI 主动发通知。插件以 MIT 许可证发布,当前 package 版本为 0.1.0,要求 Node >=18。
核心功能¶
自动触发的四类状态¶
插件按 DSH 事件映射通知,默认开关如下(可在设置里改):
| 状态 | DSH 事件 | 默认 |
|---|---|---|
| 需要授权(沙箱升级 / 工具需要批准) | approval/request |
开(可带允许 / 拒绝按钮) |
| AI 向你提问(含计划确认) | user-questions/request |
开 |
| 一轮回复结束 | agent/turn-stopping |
关(notifyTurnEnd 打开) |
| 会话出错 | agent/error |
开 |
权限待批时,通知文案类似「pwsh 想执行一条命令,需要你确认权限」;开启 decisionButtons 时,Toast 上可直接点「允许 / 拒绝」完成本次审批。AI 提问类通知会带选项预览。同类通知按 tag 互相替换,并带去重(同 tag 4 秒内不重复)与限流(默认每分钟 20 条),减轻刷屏。
点击通知回到 DSH¶
focusOnClick 默认为 true:点通知正文或「打开 DSH」动作,会唤起 DSH 主窗口。
显式发通知¶
- Agent 工具:配置
agentTool为true时注册notify_user(改后需重载插件)。 - HTTP:
httpApi为true时开放/plugins/dsh-windows-notify/*路由(含发送等;路由仅接受本机回环,详见 README)。 - 服务:宿主侧可通过
ctx.windowsNotify发通知。
前台不打搅(whenFocused)¶
DSH 在前台时,仅作用于上述四类自动状态通知:silent(默认)只进操作中心、不弹横幅不响铃;skip 完全不发;notify 照常弹。notify_user / HTTP 显式通知不受此限。
安装与启用¶
从 GitHub(推荐)¶
浏览器或带 profile 的 CLI 部署:
dsh plugin --profile <profile> add https://github.com/airenburen/dsh-windows-notify
桌面端(Electron)若 CLI 被硬拒,可在侧栏「插件」→ 安装,填入同一 Git 地址。
装完后重启 DSH 宿主(客户端半边为已构建 bundle,宿主会缓存模块)。配置入口:设置 → 左侧导航「通知」(order 55);若安装了 DSH-better-sidebar,也可在「设置 → 侧边栏卡片 → 通知 → 齿轮」打开同一面板;未装 better-sidebar 时,可退回到侧栏「插件」→ 已安装 → dsh-windows-notify →「配置」。
本地目录(开发)¶
在插件源码目录执行:
cd <本目录>
node tools/install-desktop.mjs
脚本会以 link: 方式装入 desktop profile 并跑冒烟测试;开发时注意 README 中关于 node_modules 目录联接与 pnpm minimumReleaseAge 的说明。
典型配置项¶
设置面板字段均为 .volatile(),改完立即生效。常用项摘录:
| 字段 | 默认 | 说明 |
|---|---|---|
enabled |
true |
状态通知总开关 |
notifyApproval / notifyQuestion / notifyTurnEnd / notifyError |
见上表 | 四类事件开关 |
displaySeconds |
10 |
显示时间限制;0 表示不限制 |
decisionButtons |
true |
权限通知是否带允许 / 拒绝 |
decisionButtonsFor |
safe-only |
高危 danger-full-access 默认不发按钮,只提示去界面确认 |
whenFocused |
silent |
DSH 在前台时的自动通知策略 |
sessionFilter |
[] |
按会话标题或 cwd 末段过滤状态通知 |
language |
zh |
zh / en |
权限按钮通过自定义协议 dsh-notify: 回传宿主决策,与点通知回到 DSH 的 dsh://open 分离;仅在协议注册成功时渲染按钮,避免系统弹出「选择打开方式」。
适用场景与注意¶
适合谁:在 Windows 上长期使用 DSH 桌面端或带 profile 的 Web 部署,且希望离开窗口时仍能收到「要批权限 / 要回答问题 / 出错」等提醒,并可选在通知里直接批权限。
平台:依赖 Windows Toast;非 Windows 环境不适用。
安全与信任:插件以当前 DSH 进程权限运行,会注册本机 HTTP 路由与 dsh-notify: 协议处理;安装前请自行查阅 GitHub 仓库 源码与 MIT 许可证。决策 token 为一次性、回传仅限本机回环;即使泄漏,最坏也只是代你完成一条已在等待的审批,仍受 DSH 授权策略约束。
DSH 生态主张「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系,本文档描述的是第三方插件能力,以仓库 README 为准。
结尾¶
dsh-windows-notify 把 DSH 里「卡在你这边」的状态接到 Windows 通知中心,并在安全审批场景支持通知内一键允许或拒绝,减少切窗口的成本。查阅条目与安装说明见 SkillHub 插件页,完整配置与 HTTP、聚焦上报等细节见 GitHub README。