dsh-notify:DSH 会话事件的原生桌面通知

前言

用 DeepSeek Harness(DSH)跑 Agent 时,审批、提问、轮次结束往往发生在后台会话里。窗口不在前台时,很容易错过需要人工介入的时机。常见做法是盯着界面、或依赖终端里的提示音,但终端通知与系统通知中心是两套体验,也不一定能「点一下回到那条会话」。

下面介绍社区插件 dsh-notify(维护者 bitterSmilezzz):在审批、提问、轮次完成、会话结束、出错等节点弹出系统原生通知,点击后聚焦 DSH 并切到对应会话。通知走渲染进程的 Web Notification API,桌面 App 里由宿主身份发出,不需要 terminal-notifier、osascript 等外部二进制,也不依赖额外授权流程。

这是什么

dsh-notify 是 DSH 的客户端类插件,npm 包名为 @bittersmilezzz/dsh-notify,源码与说明见 GitHub 仓库。它在 DSH 桌面或浏览器客户端内订阅官方会话与错误事件,用 Web Notification 投递横幅;权限等级为 low,不落盘、不 spawn、不发起外部网络请求,也不读取会话正文,只读会话标题与运行状态。

要求 DSH 0.2.1-rc.2 及以上(依赖 ctx.uiSession.sessionStatus 与 ctx.uiWorkspace.openSession 等入口)。Node.js 需满足 ^22.19.0 || >=24.0.0(见 package.json 的 engines)。

核心功能

六类事件与开关

可按事件单独开关:

配置键 含义
approval 需要审批
question 需要回答
turn 轮次完成
sessionDone 会话结束
error Agent 出错
subagent 子代理完成(默认关闭)

审批与提问属于阻塞性交互,通知始终送达;轮次完成、会话结束等会在运行时判断「后台跑完」或窗口不在前台时才提醒,正在看该会话时不打扰。

点击回到会话

点击通知会聚焦窗口,并在 App 内打开对应会话(不再新开浏览器标签)。导航优先使用官方 uiWorkspace.openSession;DSH 0.1.x 组合会回落到 sessions.open。

按会话聚合与隐私

同一会话的新通知会替换上一张卡片,并行会话各自独立(Windows 桌面版带 tag 的行为见 README「已知风险」)。可关闭「正文显示详情」,横幅只显示会话名。可配置免打扰时段(支持跨午夜),时段内仅静音轮次完成、会话结束、子代理;审批、提问与出错不受影响。

音效与语言

插件用 Web Audio 为不同事件合成短音效(同类 300ms 节流);关闭插件音效时,系统提示音一并关闭。通知文案跟随 DSH 界面 locale,支持中文与英文。

安装与启用

在目标 profile 下执行以下任一方式(命令摘自仓库 README):

# npm(推荐)
dsh plugin --profile <profile> add @bittersmilezzz/dsh-notify

# 或从 GitHub
dsh plugin --profile <profile> add github:bitterSmilezzz/dsh-notify

# 或本地路径
dsh plugin --profile <profile> add <path-to-repo>

安装或升级插件后需重启 DSH 宿主;设置里的开关拨动后即时生效,无需单独保存。

启用后,在侧边栏 Plugins 面板找到本插件,打开 配置表单(settings namespace notify,即「桌面通知」卡片)。浏览器环境首次使用需通过卡片上的「开启通知」完成 Web Notification 的一次用户手势授权;桌面 App 侧 README 说明对非 media 权限一律放行,Notification.permission 为 granted,无额外授权弹窗。

典型用法

  1. 按上一节安装并重启宿主。
  2. 在 桌面通知 卡片中打开总开关,按需勾选 approval、question、turn 等事件。
  3. 将 DSH 窗口切到后台或处理其他会话,等待 Agent 触发审批、提问或轮次结束,确认系统通知栏出现提示。
  4. 点击通知,确认窗口聚焦且跳转到对应会话。

若 profile 未装配 dsh-client-ui-session,插件只会注册设置卡、不会发通知,且不会报错(见 README「已知风险」)。

适用场景与注意

适合谁:长时间并行多会话、需要离开窗口仍能收到「要审批 / 要回答 / 跑完了」提醒的 DSH 用户。

使用前请知悉:

  • 插件以当前 DSH 进程的权限运行;安装前建议阅读 源码 与 MIT 许可证。
  • 页面或窗口完全退出后收不到通知;桌面 App 收进托盘仍可收。多个客户端(桌面 + 浏览器)同时在线时,各端会各弹一次,无跨端去重。
  • Windows 上关闭某条 toast 可能从通知中心移除该条;若随后被同会话的信息类通知顶掉,审批卡可能被误关,README 有详细说明。
  • 在 Windows「设置 → 系统 → 通知」中若关闭 DeepSeek Harness 来源,本插件通知会静默不弹。

社区目录页:skillhub.cn/plugins/bitterSmilezzz/dsh-notify(独立策展站点,与 DeepSeek / 幻方无官方从属关系)。问题反馈可走 GitHub Issues。

结尾

dsh-notify 把 DSH 里几类高频「需要你看一眼」的事件接到系统通知中心,并用官方 UI 导航把点击动作收回到会话内。若你已经在用 DSH 0.2.1-rc.2 以上版本,可按 README 的安装命令接入,在插件卡片里按需开关即可。

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

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

Xiaoye