dsh-tada: Native Desktop Notifications for DeepSeek Harness

前言

在 DeepSeek Harness(DSH)里跑 Agent 时,一轮对话结束、报错、需要审批或向你提问,往往发生在后台 Session 里。人若正在看别的会话或切到其他应用,很容易错过。常见做法是反复切回 DSH 看状态,或依赖模型「主动提醒」——后者并不可靠。下面介绍社区插件 dsh-tada:它监听 DSH 事件,用系统通知和应用内 toast 提醒你,且不改动 DSH 本体。

这是什么

dsh-tada 由维护者 junqi-lu 发布,分类为客户端插件。它以常规 DSH 插件形式安装,为 DeepSeek Harness 提供原生桌面通知:在 Agent 完成一轮、失败、需要审批或提问时发出提醒。通知由 DSH 自身触发,不依赖模型决定是否 ping 你;插件不 patch DSH,无运行时依赖,可在 Desktop 应用和 dsh web 中使用。

通知如何分流

插件根据你当前所在位置,选择尽量不打扰的方式:

所在位置 表现
正在看刚结束的那条对话 不额外弹窗(内容已在屏幕上)
在 DSH 内,但在看别的 Session 应用内 toast
在其他应用 系统通知

系统通知中心显示的是 DSH 的名称与图标;点击通知会打开对应 Session。每条提醒都对应插件订阅的 DSH 事件,而不是模型自行决定的通知。

核心功能

可订阅的事件

默认开启:一轮完成、错误、需要审批、被提问。默认关闭:Subagent、workflow 或 goal 完成。可在 Settings → Notifications 里用总开关和分事件开关调整。

模板与文案

标题和正文可编辑,并带实时预览。默认标题为 {{event}},正文为 {{session}}。可用占位符包括:

占位符 含义
{{app}} 应用名(默认 DSH)
{{event}} 本地化事件标签,如 Turn complete
{{session}} Session 标题
{{workspace}} Workspace 标题
{{detail}} 回复预览、错误信息、问题或工具原因

未知占位符会原样显示,便于发现拼写错误。

应用内 toast 与高级选项

Toast 可在 1–30 秒后自动消失,或保持到点击 Open / Dismiss。Advanced 中可配置投递渠道、应用名、通知语言、静默时段、最小间隔与正文长度。

静默时段格式为 HH:MM-HH:MM,可跨午夜;静默期间会抑制自动的「一轮结束」类提醒,审批、提问以及 subagent/workflow/goal 类提醒仍会送达。最小间隔默认 1500 ms,用于限制同一 Session 内 turn-end 提醒频率。通知文案默认跟随应用语言,也可强制英文或中文。

安装与启用

DeepSeek Harness 生态强调「一切皆插件」;社区目录站点(如 SkillHub)与 DeepSeek / 幻方无官方从属关系,安装前请自行查看源码与 MIT 许可证。插件以当前 dsh 进程权限运行,安装即信任其 Host/Client 逻辑。

Desktop 与 Web 配置档

先做 profile 选择,再执行 add:

dsh plugin --profile desktop add dsh-tada   # Desktop app
dsh plugin --profile web add dsh-tada       # dsh web profile

固定版本示例:dsh-tada@0.2.0。Web GUI 也可在 Settings → Plugins → Add plugin 中输入 dsh-tada。

本地目录与离线

从 checkout 安装(仓库已提交构建好的 Client bundle,无需 install/build):

dsh plugin --profile desktop add /path/to/dsh-tada

无 npm 网络的机器可先 pack 再拷贝 tarball:

npm pack
dsh plugin --profile desktop add ./dsh-tada-0.2.0.tgz

典型用法

  1. 按上文命令为 desktop 或 web profile 安装插件。
  2. 打开 Settings → Notifications,按需改模板、toast、事件开关与 Advanced 项,点击 Save 后立即生效,无需重载或重启 DSH。
  3. 在后台跑 Agent,切换到其他应用或别的 Session,等待一轮完成或需要审批时,应收到系统通知或 in-app toast;点击系统通知应跳转到对应 Session。

排查时可访问仅 loopback 的状态端点(不含密钥):

curl -s "$DSH_WEB_URL/dsh-tada/status"

若升级后提醒消失:重载 DSH 页面以便 Client 半重新注册;Host 侧更新后需重启 DSH。Desktop 一般会自动授予通知权限;dsh web 需在浏览器中允许页面通知。

适用场景与注意

适合长时间在 DSH 中并行多个 Session、或经常切到其他工具写代码/查文档的开发者。不适合期望「只有模型认为重要才通知」的场景——本插件 deliberately 只跟 DSH 事件走。

开发侧:Host 在 lib/(纯 ESM),Client 由 src/client/ 构建到已提交的 client/client.js;npm test 会先重建 Client 再跑测试套件。Node 要求 >=20。

结尾

dsh-tada 用 DSH 原生通知通道,在「你不在当前 Session」时补上 turn 完成、错误、审批与提问提醒,并可在设置里细调文案与静默策略。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye