前言¶
用 DeepSeek Harness(dsh)跑长任务时,窗口往往要一直盯着,等模型写完、工具跑完才知道结果。Web GUI 在后台标签页里时,更难察觉一轮对话已经结束。dsh-win-toast-notify 在 Host 侧监听会话事件,在每一轮 turn/end 时通过 Windows 自带的 WinRT 通知 API 弹出原生 Toast,带上结束原因、会话标题、回复摘要和用时,便于你暂时移开视线继续做别的事。
这是什么¶
dsh-win-toast-notify 是社区维护的 DSH 插件(维护者 monika2333,GitHub:monika2333/dsh-win-toast-notify),归类为客户端相关能力:不改动 Client 界面,只在 Windows 10/11 上于 Host 进程内投递系统通知。它不写入事件流、不碰 fork/resume/replay,属于只读观察者。
核心功能¶
- 订阅 durable 的
session/event,在turn/end时触发 Toast。 - 通知正文大致为三行:第一行为结束原因与会话标题;第二行为该轮助手回复的纯文本预览;第三行为来源前缀(默认
DeepSeek Harness)与本轮耗时。 - 默认跳过子智能体会话,避免一次 fan-out 弹出多条通知。
- 通过
powershell.exe -EncodedCommand调用Windows.UI.Notifications,避免中文、引号、换行破坏命令行。 - 非 Windows 平台插件会加载但不执行任何操作。
README 中的 Toast 示例:
任务完成 · Fix the login redirect
Updated the middleware and added two regression tests; all 41 tests pass.
DeepSeek Harness · 用时 4 分 12 秒
环境与依赖¶
- Windows 10 或 11。
- 使用内置 WinRT 通知 API(经 Windows PowerShell),无需原生模块、编译或额外安装脚本。
- Harness 需能发出带
turn/end的session/eventfeed(文档写明需 dsh 0.2.x)。 - 系统须允许对应应用显示通知;专注助手 / 请勿打扰会与其它通知一样抑制 Toast。
安装与启用¶
在已安装 dsh 的环境中执行官方文档给出的命令:
dsh plugin add dsh-win-toast-notify
也可在 dsh-market 插件浏览器中安装。若当前构建不会热加载插件行,安装后需重启 Harness。
插件以 npm 包形式发布,当前资料中的版本为 0.1.0,许可证 MIT;运行环境要求 Node >=22(见仓库 package.json)。
哪些结束原因会通知¶
Host 监听 turn/end,默认行为如下:
turn/end reason |
默认是否通知 |
|---|---|
completed |
是 — 文案「任务完成」 |
error |
是 — 「任务出错」 |
blocked |
是 — 「任务受阻」 |
max-tokens |
是 — 「输出达到上限」 |
interrupted |
是 — 「任务被中断」 |
aborted(用户按 Stop) |
否 |
forked |
否 |
配置¶
在 profile patch 中编辑该插件行的 config,或在插件设置卡片中修改,然后按需重启:
- id: dsh-win-toast-notify
name: dsh-win-toast-notify
config:
enabled: true # master switch
reasons: [completed, error] # which end reasons notify
includeSubagents: false # also notify child sessions
previewChars: 160 # length of the reply preview
sound: true # play the default notification sound
titlePrefix: DeepSeek Harness # third line prefix
showSessionTitle: true # fall back to the working-directory name when off
appId: '' # override the toast's AppUserModelID (empty = auto)
powershell: '' # override the notifier executable
可按需只保留关心的 reasons,打开 includeSubagents 以包含子会话,或调整 previewChars、sound、titlePrefix 等。
工作原理摘要¶
- 只读观察:内存中仅保留回合开始时间与最后一段助手文本,不追加事件、不写文件。
- 仅 Host:无 Client 模块;Web GUI 在后台标签或已关闭时仍可收到 Toast。
- 应用标识:若存在桌面版 Start 菜单快捷方式,Toast 挂在
com.deepseek.dsh下,显示为 DeepSeek Harness;纯dsh web或 CLI 安装若未注册该 AUMID,系统可能静默丢弃,插件会回退到 Windows PowerShell 的 AUMID(通知中心里可能显示为 PowerShell)。 - 进程模型:通知子进程不脱离 Host,约一秒内退出,避免与 Job 对象一起被回收导致通知丢失。
预览内容为纯文本:Markdown 代码块、链接、强调与行内代码会被剥掉。
适用场景与注意¶
适合在 Windows 上长时间用 Harness 写代码、跑工具链,又需要离开主窗口的场景。插件与当前 dsh Host 同权限运行;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。DSH 生态以「一切皆插件」为思路,SkillHub 目录页 等为社区站点,与 DeepSeek / 幻方无官方从属关系。
局限:仅 Windows;回退 AUMID 时 Toast 归属 PowerShell;非 Windows 无效果。
结尾¶
dsh-win-toast-notify 把「一轮 Harness 任务结束」变成系统级 Toast,减少盯着终端或浏览器标签的必要。安装命令为 dsh plugin add dsh-win-toast-notify。详情与问题反馈见目录页 https://www.skillhub.cn/plugins/monika2333/dsh-win-toast-notify 与 https://github.com/monika2333/dsh-win-toast-notify 。