前言¶
用 DSH 桌面端跑长会话时,窗口往往被别的应用盖住:一轮结束、报错、需要审批或回答问题,如果没有任何系统级提醒,只能反复切回 DSH 看状态。浏览器通知在 Windows 上体验有限,系统自带的 Toast 提示音种类也少,很难按「完成 / 出错 / 在等你 / 还在等」区分。
下面介绍社区插件 dsh-notify-desktop(维护者 paleech0):在 Windows 上与 DSH desktop 配置配合,在合适时机弹出原生 Toast,并按场景播放可选提示音;点击通知会把 DSH 窗口提到前台。插件归类为客户端,在 SkillHub 目录 可查到条目;源码与说明见 GitHub(npm 包名 dsh-notify-desktop,当前资料中版本 0.1.1,许可证 MIT)。
这是什么¶
dsh-notify-desktop 面向 DSH 桌面应用(profile desktop),不修改 Harness 核心:一侧在宿主注册会话投影与本地路由,一侧在渲染进程根据会话状态决定是否通知。会话完成、失败、中止、阻塞、触达 max-tokens,或出现审批、提问、计划审阅、长时间等待等情况时,在窗口没有焦点时触发一次 Toast(约 3 秒去重);窗口在前台时不弹。点击 Toast 通过 dsh://open 聚焦 DSH,不会自动跳到具体会话。
运行环境要求(README):Windows、DSH desktop、runtime 0.2.x;声明兼容范围为 >=0.2.0-rc.2 <0.3.0-0。可选:系统 PATH 上的 ffmpeg,仅用于把非 .wav 的自定义音频转码。
核心功能¶
通知时机¶
资料中列出的能力包括:
- 轮次结束:completed、error、aborted、blocked、max-tokens 等,可在设置里按原因单独开关。
- 需要你介入:审批请求、提问、计划审阅等;工具调用里的提问走会话投影,服务级提问(如计划审阅)由宿主监听
user-questions/request再交给客户端,避免漏通知或重复 Toast。 - 等待提醒:长时间等待可配置「多少分钟后」单次轻推,并带测试按钮。
安静与去重¶
DSH 窗口有焦点时不弹出通知;同一事件约 3 秒内只通知一次。关闭总开关「Enable notifications」后,其余项均不生效。
分场景提示音¶
四类分组:finished、error、waiting on you、still waiting。每组可在设置里单独选音源并预览:
- Windows sounds — 约二十项(Toast 相关事件与媒体库条目,如 chimes、ding、Windows Error 等)。
- Author sounds — 插件
sounds/目录下自带的四个.wav;往该目录丢文件即可出现在列表里。 - Custom sounds — 通过「Add sound…」导入;文件会复制到
%LOCALAPPDATA%\dsh-notify\custom。
文件音最长播放 8 秒;关闭声音总开关或窗口重新获得焦点时,正在播放的音会立即停止。非 .wav 格式会经 ffmpeg 转码并进入转码缓存(设置页可查看占用并清空);无 ffmpeg 时仍可使用 wav 与上述两类库,诊断中会显示 media.ffmpeg: null。
支持导入格式(README):.wav、.mp3、.m4a、.aac、.wma、.flac、.ogg、.opus。
设置入口¶
安装并重启桌面端后,在 Settings → Notifications 打开(窗口聚焦时 Ctrl+,)。偏好写在渲染进程 localStorage,改完即生效。主开关、声音总开关、各组选音、自定义音管理、转码缓存、各结束原因开关、各交互类型开关、等待提醒分钟数等,均集中在同一设置区(README 设置表)。
安装与启用¶
插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证,确认符合你的环境策略。
从 npm 安装¶
将 <DSH desktop install> 换成本机 DSH 桌面版的安装目录,在 PowerShell 中执行:
& "<DSH desktop install>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add dsh-notify-desktop
执行后重启 DSH 桌面应用,再打开 Settings → Notifications 按需配置。
本地目录链接(可选)¶
若使用本地检出目录而非 npm 包,README 要求将仓库放在持久路径后,用桌面端 CLI 注册(路径换成你的目录):
& "<DSH desktop install>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "link:<path-to-this-repo>"
同样需重启应用并进入通知设置。正文任务要求不写 git clone 步骤;完整说明见 GitHub README。
版本不匹配时¶
加载器会按 peerDependencies 检查 DSH 版本,不满足则跳过插件。若需在非声明范围内强行允许,README 给出示例(需自行承担风险):
dsh.cmd plugin --profile desktop allow-version dsh-notify-desktop@0.1.1 --dsh-version <your-version> --accept-risk
典型用法与排障¶
日常使用¶
- 按上一节安装并重启。
- 打开 Settings → Notifications,开启 Enable notifications,按需打开各「When to notify」与 Waiting on you 项。
- 为四个声音分组分别选择音源并点预览;需要自定义音时使用 Add sound…。
- 将 DSH 放到后台,触发一次会话结束或提问,应看到 Toast;点击后主窗口置前。
诊断¶
Windows Toast 不一定出现在操作中心,README 建议用本地调试路由查看投影状态、最近约 40 条客户端决策记录以及 ffmpeg / 播放器状态:
Invoke-WebRequest http://127.0.0.1:19387/dsh-notify/debug
适用场景与注意¶
| 项目 | 说明 |
|---|---|
| 适合 | 在 Windows 上用 DSH desktop 长时间跑智能体会话、需要离开窗口时仍能收到系统提醒的开发者 |
| 平台 | 仅 Windows desktop profile;web profile 无 Toast 通道,资料标明未测试 |
| 运行时 | DSH 0.2 线(含 rc);README 记载在 0.2.1-rc.2 等版本上做过兼容验证 |
| 生态 | DSH 强调「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系,本文不构成官方背书 |
插件宿主侧暴露若干同源路由(如 POST /dsh-notify/toast、POST /dsh-notify/focus 等),供客户端半部完成 Toast、聚焦与静音;细节见 README「How it works」,一般用户只需设置页即可。
结尾¶
dsh-notify-desktop 把 DSH 桌面端里「该叫你回来」的时刻接到 Windows 原生通知与可配置提示音上,并在你已在窗口前时保持安静。需要条目信息与分类时可打开 SkillHub 插件页;安装命令、声音行为、兼容范围与排障以 GitHub 仓库 README(含 中文文档 README.zh.md)为准。