dsh-desktop-notifier: Windows Desktop Notifications and Selection Dialogs

前言

在 DeepSeek Harness(DSH)里跑长任务时,窗口不在前台或收进系统托盘,往往要等你自己切回应用才知道一轮对话结束、某步出错,或模型在等 ask_user_question 的答复。Web UI 里的对话框和审批条仍然可用,但容易被别的窗口挡住。下面介绍的插件把这几类事件接到 Windows 桌面右下角的原生卡片上,点卡片即可查看、作答或审批,不必一直盯着 Harness 窗口。

这是什么

dsh-desktop-notifier 是 DSH 的 Host 插件(维护者 Mi-liu),分类为客户端。它在 Windows 桌面右下角 弹出通知卡片与选择卡片:完成通知、出错通知、ask_user_question 选择判断、工具审批请求。实现上 Host 侧用 Node 监听事件,弹窗由 scripts/popup.ps1(WPF,Windows PowerShell 5.1 + .NET Framework 4.x)渲染。非 Windows 平台 Host 端保持静默。

社区目录页:skillhub.cn 条目。源码与说明:GitHub 仓库。当前 package 版本为 1.6.0,许可证 MIT。

核心功能

完成通知

一轮对话结束时弹出「本轮工作完成」卡片,含本轮最后一段回复、工作区名、时间、用时。点卡片任意位置等同于「查看」:Harness 窗口前置并切回该对话;窗口在系统托盘时也会被唤出。右上角 ✕ 仅关闭卡片。

出错通知

某个 step 失败时弹出「本轮出错」卡片(红色强调)。点卡片或 ✕ 均可关闭。

选择判断弹窗

模型调用 ask_user_question 时,问题与选项以原生卡片展示(选项垂直排列,长文案自动换行)。点选项即作答;底部输入框可手动输入后发送或回车,作为自定义回答。关闭、超时或无法渲染时回落 DSH 自带 Web UI 对话框。

限制(README 已写明):一次只接管 1~4 个问题、每题 1~5 个选项且不支持多选;其余交给 Web UI。

审批请求卡片

DSH 需要授权工具调用时,弹出「允许一次 / 拒绝」卡片。默认仅在 Harness 不在前台时弹(前台仍用应用内审批);超时或关闭交回 Web UI。不提供「永远允许」。

外观与位置

卡片配色跟随 DSH 设计 token(theme: auto 等)。排布贴近 Windows 11 通知样式。卡片出现在 DSH 主窗口所在屏幕;找不到窗口时退到鼠标所在屏再退主屏。同一时刻最多叠 2 张通知卡,超出跳过不排队;问题卡片串行弹出。

提示音与设置页

内置多种系统音效,可填自定义 .wav 路径。GUI 设置 → 桌面通知 可改全部选项,改后对下一次弹窗生效;首次安装或插件新增客户端半侧后需完全退出 DSH 再打开,设置页才会出现(宿主启动时扫描 dsh.client 并缓存到进程结束)。

安装与启用

推荐在 DSH Desktop 插件 页 添加插件,填入 Git 地址或预编译包,安装后 启用,再 完全退出并重启 DSH。

Git 地址:

https://github.com/Mi-liu/dsh-desktop-notifier

或简写:

github:Mi-liu/dsh-desktop-notifier

预编译包(Release v1.6.0):

https://github.com/Mi-liu/dsh-desktop-notifier/releases/download/v1.6.0/dsh-desktop-notifier-1.6.0.tgz

命令行(等价于应用内安装;Desktop 用户注意 profile 可能与 CLI 默认不一致):

dsh plugin --profile <profile> add github:Mi-liu/dsh-desktop-notifier

勿仅按 npm 包名 dsh-desktop-notifier 安装:npm 上同名包为另一位作者的 Web 侧通知插件。

若已安装 dshmarket,可在 插件 → 发现 中搜索安装(条目来自 awesome-dsh-plugin)。

依赖:Node 侧 @deepseek-ai/schemastery(DSH 自带即可);弹窗仅需 Windows PowerShell 5.1,不需要 PowerShell 7。

典型用法与配置

设置页分组

分组 内容概要
通知范围 总开关、完成通知、出错通知、是否接管 ask_user_question
通知条件 始终通知 / 仅在 DSH 未聚焦时通知
审批请求 何时接管、approvalTimeoutMs
提醒方式 提示音类型、自定义 .wav、试听
外观与交互 卡片主题、点通知卡是否前置窗口
时间与内容 最短回合、自动消失、选择卡等待、正文截断、文案语言
测试 三种测试通知按钮

配置持久化在 profile 的 cordis.patch.yml(desktop-notifier 的 config),也可直接改文件。

常用配置键(节选)

键 默认 含义
enabled true 总开关
minTurnMs 5000 短于该毫秒不弹完成卡
notifyWhen always always / unfocused
answerQuestions true 桌面接管提问
answerApprovals unfocused unfocused / always / off
infoTimeoutMs 12000 通知卡自动消失
questionTimeoutMs 60000 选择卡超时后交 Web UI
theme auto 跟随 DSH / 强制浅深 / 跟随 Windows
sound default 按类型或具体音效名;soundFile 优先
focusOnOpen true 点完成通知时前置 Harness
locale zh 文案语言

单独预览弹窗(不经过 DSH)

powershell -NoProfile -File scripts/popup.ps1 -PayloadFile test/payload-info.json

排查「为什么没弹」

状态写在:

%TEMP%\dsh-desktop-notifier-state.json

客户端模块是否进图可看:

%TEMP%\dsh-desktop-notifier-clientgraph.json

own: false 且列表无本插件时,重启 Harness 让宿主重新扫描包声明。

适用场景与注意

适合在 Windows 10/11 上用 DSH Desktop 或 Harness、且经常 multitasking 的开发者:后台跑 agent 时用桌面角标获知完成/错误,在卡片上直接答选择题或点审批,再一键回到对应对话。

务必知晓:

  • 插件以当前 dsh 进程权限 运行;安装前请阅读源码与 MIT 许可证,确认可接受其行为(弹窗、读主题、写 %TEMP% 诊断文件等)。
  • 仅 Windows;多显示器混合 DPI 下位置可能有少量像素偏差。
  • 升级插件后,「点查看切回对话」依赖客户端半侧长轮询;最稳妥是重启 Harness 让页面重新加载(Host 侧弹窗可热重载)。
  • skillhub.cn 等社区目录为独立生态站点,与 DeepSeek / 幻方无官方从属关系;安装来源以 GitHub README 为准。

结尾

dsh-desktop-notifier 把 DSH 的回合结束、错误、提问与审批接到 Windows 原生右下角卡片,并可通过设置页细调通知条件、音效与主题。需要条目说明时打开 目录页,安装与配置细节以 GitHub README 为准。

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

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

Xiaoye