DeepSeek Harness Hub
← 返回列表

桌面完成通知JohnWes7/ds-notify-plugin

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

主对话每轮完成时弹出 Windows 系统通知横幅

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/17 · 已提供中文文档
综合分
27.7
GitHub 分
27.7
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add JohnWes7/ds-notify-plugin
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

ds-notify-plugin

为 DeepSeek Harness (dsh) 提供 Windows 桌面 toast 通知。每当主对话完成一轮时,弹出原生 Windows toast(右下角通知横幅),这样在生成较长回复时你可以把目光移开。

DeepSeek Harness(dsh)主对话完成通知插件:主对话每轮完成后,用 Windows 系统
toast(右下角通知横幅)提醒你。

npm version
License: MIT

Features · 功能

- Windows only · 仅 Windows — 在其他平台上该插件不执行任何操作。
非 Windows 平台自动不生效。
- Main conversation only · 仅主对话 — 仅当根(主对话)agent 完成一轮时才弹出 toast;子代理和工作流 agent 不会触发。
只有主对话完成时通知;子代理、工作流 agent 完成不打扰。
- Conversation title in the toast · 通知带对话标题 — toast 会标明完成的是哪个对话(其自动生成或用户重命名的标题),让你一眼就知道是哪一个;尚无标题的对话保留原有固定文案。通知会写明是哪个对话完成(自动生成或手动
重命名的标题),一眼可知;尚无标题的对话保留原有固定文案。
- Debounced · 防抖合并 — 1.5 秒内的完成信号会合并为一条 toast。1.5 秒内的连续完成信号合并为一条通知。
- Zero dependencies · 零依赖 — 驱动内置的 powershell.exe + WinRT
ToastNotificationManager;无需安装任何东西。调用 Windows 自带的 PowerShell +
WinRT,不装任何第三方模块。
- No dsh files modified · 不修改 dsh 安装文件 — 升级 dsh 不会覆盖或破坏它。升级 dsh 不受影响。

Requirements · 前置条件

- Windows 10 / 11(使用内置的 powershell.exe)
- DeepSeek Harness(dsh)
- PATH 中有 pnpm(pnpm --version 必须可用)
- 仅 GitHub 安装方式 · 仅 GitHub 安装方式:PATH 中有 git(pnpm 会自动克隆仓库)

Install · 安装

该插件以 bundle 形式发布(dsh.bundle.patch 指向包内的
cordis.patch.yml)。dsh plugin 会自动将其追加到配置文件的
dsh.profile.bundles 中——接收方无需手动编辑组合配置,也无需手动下载或复制任何内容:一条命令即可获取并安装该包。无需手动下载或复制文件,一条命令即可安装。

安装后重启 dsh。之后每次启动时该插件都会自动加载,无需批准。安装后重启 dsh,之后每次启动自动加载。

From npm · 从 npm 安装(推荐)

dsh plugin --profile web add ds-notify-plugin

From GitHub · 从 GitHub 安装

dsh plugin --profile web add github:JohnWes7/ds-notify-plugin

该插件零依赖且无构建步骤,因此接收方的 pnpm-workspace.yaml 中无需放行任何内容。插件零依赖、无构建
脚本,接收方无需放行任何构建。

Local directory · 本地目录(开发 / 离线)

1. 将此目录放在一个稳定的位置。
2. 从其父目录运行:

cd D:\dsh\plugin
dsh plugin --profile web add link:./ds-notify-plugin

- link: 会创建一个符号链接,因此代码修改会立即生效
(开发时推荐);
- file:./ds-notify-plugin 会复制该目录。

要安装到其他 profile,把上面命令里的 web 换成目标 profile 名即可装到
其他 profile。

卸载 · Uninstall

dsh plugin --profile web remove ds-notify-plugin

之后重启 dsh。

工作原理 · How it works

1. 插件监听 agent/status 事件(会向上冒泡到根上下文)。
2. 在 idle 时——即一轮结束,涵盖正常完成、错误和中断——它会检查
agents.roots() 并忽略子代理。
3. 1.5 秒的防抖会合并突发信号,然后通过 sessionTitle 服务从会话日志中
读取对话标题(最新的 session/title 事件;若尚无标题,toast 回退到
固定文本)。
4. 它会启动 powershell.exe(隐藏窗口,stdio: 'ignore'),通过
ToastNotificationManager 显示 WinRT toast,并将标题经 XML 转义后
写入正文行。
4. toast 使用已注册的 "Windows PowerShell" AUMID,以便非打包进程能够
可靠地显示 toast。

常见问题 · FAQ

- 对话完成后没弹通知 · No toast after a turn completes
1. 检查"专注助手 / 勿扰模式",开着会吞掉 toast。
2. 检查 Windows 通知设置里 "Windows
PowerShell" 应用的通知是否被禁用。
3. 确认 profile 的 bundles 列表包含本插件且已重启 dsh。
- 通知来源显示为 Windows
PowerShell · The toast source shows "Windows PowerShell" — 这是有意为之(借用 PowerShell 的快捷方式身份让非打包进程的 toast
可靠显示),属正常现象。
- 通知里没有对话标题 · The toast has no conversation title — 全新对话在首轮结束时可能还没生成标题,此时保留原固定文案;若旧对话的通知
仍无标题,查看 %TEMP%\ds-notify-plugin.log,每次通知决策都会追加一行 JSON
(服务/会话是否存在、解析出的标题;文件上限 64 KiB,超出时自动丢弃最旧的一半)。

开发 · Development

架构设计理由、注意事项以及测试历史参见
docs/DEVELOPMENT.md。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群