桌面弹窗通知插件 dsh-notify-toast:在 Windows 上常驻显示任务状态

前言

在 Windows 上使用 DSH(DeepSeek Harness)进行智能体开发时,任务完成、审批请求或 Agent 提问需要确认时,往往需要频繁切换窗口或查看日志。现有的 Windows 通知中心在 DSH 最小化或被其他窗口覆盖时不可见,容易遗漏关键信息。

桌面弹窗通知插件在屏幕右下角展示置顶卡片,卡片是一个由 WinForms 进程绘制的独立窗口,不会因为 DSH 被其他应用盖住而消失,也不会抢占输入焦点。

插件定位

dsh-notify-toast 是一个 DSH 插件,由维护者 fhghth 开发,用于在 Windows 上为任务完成、权限审批、Agent 提问和任务失败四种场景提供桌面弹窗通知。插件采用 MIT 许可,仅支持 Windows 10/11。

核心功能

  • 四类卡片:任务完成、权限审批、Agent 提问、任务失败。
  • 置顶但不抢焦点:使用 WS_EX_NOACTIVATE + WS_EX_TOOLWINDOW 样式,前台应用不会被打断输入。
  • 点击跳回会话:点击卡片会将 DSH 提到前台并切到对应对话。
  • 内置音效:随插件分发 5 个 WAV 音效,支持 Windows 自带音效库与自定义 .wav。
  • 全部可配置:尺寸、颜色、图标、音效、停留时长等均可配置,并提供预览功能。

系统要求

项 要求
操作系统 Windows 10 / 11
DSH 桌面版,>= 0.2.1-rc.3
Shell Windows PowerShell 5.1(powershell.exe)
运行时 .NET Framework 4.8(Windows 10/11 自带)

安装

从插件市场索引安装

在 设置 → 插件 → 插件市场 里添加索引地址,然后到「发现」页安装 桌面弹窗通知。

手动安装

plugin_manager install_bundle  target = <索引里给出的安装 spec>

或从源码目录:

plugin_manager install_bundle  target = D:\path\to\dsh-notify-toast

安装后刷新页面,客户端半边才会加载。

使用

  1. 设置 → 插件 → 桌面弹窗通知:所有配置都在这里。
  2. 用 预览完成卡 / 预览审批卡 / 预览提问卡 / 预览失败卡 检查外观,不用真的跑任务。
  3. 先保存再预览:预览读取的是已保存的配置,不是草稿。

触发条件

卡片 触发条件
✓ 完成 回合以 completed 结束(子代理会话不弹),按 settleMs 去抖
🔒 审批 审批服务记录 approval/asked
? 提问 Agent 调用 ask_user_question
! 失败 回合以 error / interrupted / blocked 结束(默认关闭)

主要配置项

配置 默认 含义
enabled true 卡片总开关
notifyOnComplete / notifyOnApproval / notifyOnQuestion / notifyOnError true / true / true / false 分类开关
soundEnabled true 音效总开关
soundComplete / soundApproval / soundQuestion / soundError 自带 WAV 支持 sounds/*.wav、media:<系统音效名>、system:*、none
width / height / scale 400 / 104 / 1.0 卡片尺寸,按 DPI 缩放
durationMs / maxCards / gap / margin 8000 / 4 / 8 / 16 停留时长与布局
position / screen bottom-right / primary 停靠位置与显示器
bgColor … accentQuestion 白底黑字 颜色(设置页提供色盘)
iconStyle vector vector / glyph / image
settleMs / minIntervalMs 1500 / 3000 完成去抖与同会话限流
clickToOpenSession true 点击跳回会话
idleExitMs 900000 通知进程空闲多久后退出
debug false 调试日志

工作原理

approval/asked · tools/pre-execute(ask_user_question) · turn/end
        │  Host 插件(index.js)
        │  stdin/stdout 上的 NDJSON
        ▼
notifier 进程(PowerShell + WinForms,单实例)
        │  点击 → SetForegroundWindow + stdout 事件
        ▼
Host → SSE /dsh-notify/events → 客户端半边 → ctx.uiWorkspace.openSession()

Host 按需拉起唯一一个通知进程,展示期间保持常驻,空闲 idleExitMs 后退出;新实例启动时会结束旧实例,因此插件重载不会留下孤儿进程。

隐私

  • 全部本地运行,插件不发起任何网络请求。
  • 只读取对话标题和会话 id,不读取消息内容。
  • 三个本地路由(/dsh-notify/events、/dsh-notify/config、/dsh-notify/preview*)只监听 DSH 的回环地址。

适用场景与注意

  • 适合在 Windows 上频繁运行 DSH、需要实时掌握任务状态的智能体开发者。
  • 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
  • 已知限制:虚拟桌面下卡片不会跟随切换;审批卡片与 DSH 审批框同在右下角可能遮挡按钮;升级需要卸载后重装。

结尾

桌面弹窗通知插件在 Windows 上提供了一套可靠的桌面通知方案,通过独立进程绘制窗口、去抖与限流机制,减少干扰的同时保证信息可见。插件处于早期开发阶段,配置项与行为可能变化,使用风险自负。

  • 目录页:https://www.skillhub.cn/plugins/fhghth/dsh-notify-toast
  • GitHub:https://github.com/fhghth/dsh-notify-toast
羽毛球分组比赛记分
小程序二维码

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

Xiaoye