前言¶
用 DSH(DeepSeek Harness)跑长任务时,窗口切到别的应用或收进托盘,一轮结束或模型在等你确认工具调用,往往要靠自己轮询界面才知道。浏览器或别的客户端若有系统通知,桌面端缺少同类能力时,就容易漏看。下面介绍社区插件 dsh-desktop-notify(npm 包名 dsh-notify-focus):在 Windows 10/11 上对接 DSH 桌面端,任务完成或需要你回答时弹出系统通知,点通知回到对应会话。
这是什么¶
dsh-desktop-notify 是 DSH 的客户端类插件,维护者为 MikatoMisaka。它监听 DSH 桌面端的会话状态,在合适时机发 Windows Toast(可在操作中心留存),并通过 dsh-notify: 协议或窗口置顶逻辑把 DSH 拉回前台并切换到相关会话。
生态上,DSH 采用「一切皆插件」;插件目录在 SkillHub 等社区站点展示,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
资料中已说明的能力如下。
任务完成提醒:一轮任务结束时弹出 Windows 通知。
等待你回答时提醒:提问、计划审阅、工具调用确认等场景各有文案;工具确认通知会带上工具名。
点通知直达会话:点击通知会将 DSH 置于前台,并切换到该条通知对应的会话。
收进托盘也能找回:关闭窗口后 DSH 可隐藏在托盘;插件按 PID 枚举隐藏窗口,仍可恢复并置顶。
减少误打扰:正在查看该会话时不提醒;子智能体不单独提醒;同一键 1.5 秒内去重,10 秒内最多 6 条。
可配置触发时机:设置页三档选项,或通过 profile 中的 trigger 等字段设定默认值。
安装与启用¶
需要 Windows 10/11 与 DSH 桌面端。下文 <profile> 指 profile 目录(以 $env:DSH_HOME 与 $env:DSH_PROFILE 为准,不一定在默认路径);<包名> 指实际安装目录名(npm 安装时为 dsh-notify-focus)。
插件以当前 DSH 进程权限运行;安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。
从 npm 安装¶
1、把包加入 profile 依赖(或通过 DSH 插件管理器安装):
npm --prefix <profile> install dsh-notify-focus
2、在 <profile>\cordis.patch.yml 末尾追加(修改前建议备份):
- insert:
- id: desktop-notify
name: dsh-notify-focus
3、在包目录内做本地初始化(编译置顶程序并登记协议):
cd <profile>\node_modules\dsh-notify-focus
npm run setup
4、完全退出 DSH 桌面端(托盘右键退出,而非仅关窗口),再重新打开。
从源码链入 profile¶
若你已在固定目录维护源码,可按 README 编译后通过目录联接链入 profile;步骤与 npm 路径在 cordis.patch.yml 中的 name 字段不同(源码侧为 dsh-desktop-notify)。完整命令见 GitHub README。
卸载:删除 cordis.patch.yml 中对应 insert → 在包目录执行 npm run protocol:uninstall → cmd /c rmdir <profile>\node_modules\<包名> → 重启 DSH。
配置¶
设置界面¶
路径:设置 → 通用 → 任务完成提醒。三档按钮写入本机 localStorage,优先于 profile 默认值。
| 档位 | 含义 |
|---|---|
| 不在前台就提醒(默认) | 切走、最小化、收进托盘、锁屏均提醒;在前台但停在别的会话上也提醒 |
| 仅最小化时 | 仅最小化或收进托盘时提醒 |
| 总是提醒 | 包括正在查看该会话时 |
profile 中的 config¶
在 cordis.patch.yml 的 insert 条目下可写 config:
| 键 | 默认值 | 含义 |
|---|---|---|
aumid |
com.deepseek.dsh |
通知署名的 AppUserModelID;启动时会用 Get-StartApps 核对登记状态 |
fallbackAumid |
PowerShell 自身 ID | 主署名的备用身份;显式空串表示关闭兜底 |
sound |
true |
是否播放提示音 |
trigger |
unfocused |
unfocused / minimized / always;用户未在设置里选择时生效 |
protocol |
true |
是否登记 dsh-notify: 协议(点通知快路径) |
debug |
true |
是否写入日志 %LOCALAPPDATA%\dsh-desktop-notify\host.log |
aumid 配置错误不会抛错,可能导致 Toast 被静默丢弃;启动日志出现 aumid-unregistered 表示 ID 未登记,可运行包内 scripts\read-aumid.ps1 获取本机可用值。
典型用法¶
安装并完成 npm run setup、重启 DSH 后,无需额外 API 调用:后台跑 agent 任务,在 unfocused(或你所选档位)下,任务结束或出现待确认工具调用时会收到系统通知。点击通知应回到 DSH 并定位到该会话。
需要验证安装时,包内提供:
npm test
更贴近真实环境的自检:
npm run test:live
(在插件包目录下执行,见 package.json 的 scripts。)
适用场景与注意¶
适合:主要在 Windows 上使用 DSH 桌面端、长时间挂机或多会话并行、希望用系统通知代替反复看窗口的开发者。
注意:
- 仅支持 Windows 桌面端,与 Web 端注入无关(
dsh.client.platform为web,能力绑定 Windows Toast 与本地协议)。 - 通知依赖正确的 AppUserModelID;排查时查看
host.log与read-aumid.ps1。 - 插件与 DSH 同进程权限,安装前请审阅源码。
结尾¶
dsh-desktop-notify 把「任务结束」和「等你回答」两类事件接到 Windows 通知中心,并尽量保证从托盘或后台一键回到正确会话。目录与源码: