dsh-windows-notify:为 DeepSeek Harness 补上 Windows 原生通知

前言

用 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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜