dsh-plugin-system-notify:让 Harness 以本体身份弹出系统桌面通知

前言

在 DeepSeek Harness(DSH)里跑长任务时,窗口切到后台或最小化后,往往只能靠偶尔切回界面才知道 Agent 是否结束。浏览器里用 alert 或页面内提示,既打断操作,横幅归属也是网页或浏览器,而不是 DSH 本身。

社区插件 dsh-plugin-system-notify(维护者 DRheEheAMGary,分类:客户端)把「发系统级桌面通知」做成 Agent 可调用的工具:Harness 在服务端注册 system_notify,有 DSH 页面在线时由客户端用 Web Notification API 弹出通知;在 macOS、Windows 上实测时,通知身份来自 DSH 而非随机标签页。本文按 README 与 package 信息说明其定位、架构、安装与用法。

这是什么

dsh-plugin-system-notify 是面向 DeepSeek Harness 的 bundle 插件,版本 0.1.0,MIT 许可证,要求 Node >= 20。一句话:让 AI 调用工具向用户发送原生桌面通知(macOS 通知中心、Windows Toast、Linux 桌面提醒),且由 Harness 侧发起投递链路,尽量让横幅带上 DSH 身份。

插件不在仓库里写各平台专用代码,而是走标准 Web Notification API,由各平台运行时翻译成本地通知。

架构:Host 与 Client 的长轮询协作

README 将实现拆成两半,通过一条长轮询路由配合:

  1. Host(index.js):注册工具,把通知请求放进收件箱,并暴露 GET /api/system-notify/inbox。
  2. Client(client.js):常驻一个长轮询请求;Host 一有通知立即返回,页面侧用 new Notification() 弹出。

采用长轮询而不是固定间隔轮询:有通知时延迟很低,空闲时几乎不产生额外请求。

客户端会区分 desktop(桌面窗口)与 browser(浏览器标签):桌面窗口优先,因为只有桌面窗口能给出 DSH 身份。若某客户端拿不到通知权限,则不会参与 drain,避免通知被领走却无法显示。

示意:

AI 调用 system_notify  →  🔔 DeepSeek Harness
                          任务完成了

核心功能:system_notify 工具

Agent 可调用的工具名为 system_notify,单向投递:不切换前台、不等待用户点击回应。

参数 必填 说明
title 是 标题,约 60 字符
body 是 正文,一句话,约 120 字符
silent 否 静音,默认 false

成功时返回示例:

{ "ok": true, "id": 1, "delivery": "delivered", "surface": "desktop" }
  • delivery:delivered 表示已有窗口接手;queued 表示暂时没有可用窗口,连接后会补发。
  • surface:例如 desktop,表示由桌面窗口 surface 弹出。

安装与启用

安装方式以 README 为准,不要用未在文档中出现的 dsh plugin add 类命令自行拼接。

本地 bundle 安装:

plugin_manager install_bundle /path/to/dsh-plugin-system-notify

或在 profile 的 package.json 中声明依赖并加入 bundles:

"dependencies": { "dsh-plugin-system-notify": "github:DRheEheAMGary/dsh-plugin-system-notify" },
"dsh": { "profile": { "bundles": ["dsh-plugin-system-notify"] } }

package.json 中 dsh.client 为 web 平台、immediately: true,并通过 cordis.patch.yml 做 bundle patch。启用后需保证至少有一个 DSH 页面在线,否则通知会进入队列(README 写明最多约 2 分钟等待窗口连上)。

典型用法

在对话或工作流中,让 Agent 在任务完成、需要人工确认或后台作业结束时调用 system_notify,例如标题写「DeepSeek Harness」,正文写一句状态说明。调用方只需按上表传入 title、body,必要时设 silent: true 避免声音。

你无需在前端手写通知代码:Client 插件会在有权限的 DSH 页面上自动 drain 收件箱并弹出系统横幅。

平台与限制

平台 状态
macOS 实测,归属 com.deepseek.dsh
Windows 实测(Toast)
Linux 未实测

使用上需注意:

  • 需要至少一个 DSH 页面开着;全部关闭时通知排队,等窗口重新连接。
  • 仅在浏览器标签中打开 Web GUI 时,通知归属是该浏览器,而不是 DSH 桌面身份。
  • 系统勿扰模式、专注助手等会拦截通知。

插件以当前 DSH 进程及已加载 bundle 的权限运行;安装前请阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境与安全策略。DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-plugin-system-notify 把「后台也能看到 Harness 说完话了」收敛成一个标准工具:长轮询收件箱、桌面窗口优先、单向系统通知。若你经常在 DSH 里跑长任务并希望横幅显示为 Harness 本身,可按上文安装 bundle 并为桌面客户端授予通知权限。

  • 目录页:https://www.skillhub.cn/plugins/DRheEheAMGary/dsh-plugin-system-notify
  • GitHub:https://github.com/DRheEheAMGary/dsh-plugin-system-notify
羽毛球分组比赛记分
小程序二维码

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

Xiaoye