前言¶
在 DeepSeek Harness(DSH)里跑长任务时,审批卡片、定时提醒和任务完成往往发生在当前标签页之外:窗口失焦、切到其他应用,或者整页关掉后,只靠页面内提示很容易漏掉。社区里另有独立通知类插件;dsh-notify-bridge 走另一条路——自带通知引擎,并把审批、日程、待办和 Token 用量桥接到 Discord Bot,便于离席时仍能处理与汇总。
下面按定位、能力、安装配置和注意点介绍该插件。事实以 GitHub 仓库 README 为准;维护者为 harienlook,SkillHub 分类为客户端。
这是什么¶
dsh-notify-bridge 是 DSH 的通知与 Discord 转发插件:在客户端侧提供桌面通知、提示音、标签页标题标记和审批快捷按钮;在宿主侧把审批、定时任务提醒、待办摘要、/goal 开始提示等转发到 Discord,并在已执行任务的提醒末尾附上本次任务的 Token 用量。
README 明确写:完全独立实现,不依赖 dsh-notify-me;两者可共存,互不影响。 许可证 MIT,当前包版本 0.1.0。运行要求:DSH Desktop 0.2.2-rc.1(桌面/Web 均可)、Node ≥ 20;使用 Discord 转发时需自行准备 Bot Token、频道 ID 与用户 ID。
独立通知引擎¶
设置 → 通知设置 → 通知提醒 由插件自带引擎驱动,无需再装其他通知插件。配置存在 localStorage[dshNotifyBridge.config],与 dsh-notify-me 的配置隔离。
触发源来自 DSH uiSession 的待处理交互(审批、提问、计划复核)以及 sessionStatus.completionUnread 完成标记;插件订阅会话列表快照做去重与标题解析。
提醒方式包括:右上角页内 toast(审批类带「同意 / 拒绝」,直接调用 DSH answer('allowed-once' | 'rejected'))、系统通知(Windows 通知中心)、WebAudio 双音提示。标签页标题用 ● 表示待处理、✓ 表示完成未读,读后恢复。
离席策略可按配置选择:background 仅在离开时提醒,smart 跳过当前会话,always 总是提醒。默认忽略子代理会话的完成提醒。通知语言支持 auto、简体中文与 English。
审批桥与 Discord 转发¶
审批桥:页面有实时客户端时走 DSH 原生审批卡片;页面关闭时发 Discord 卡片,点击后真实结算为 allowed-once / rejected;超时为 unavailable,中断为 cancelled。审批模式可设为 auto(在线原生、离线 Discord)或 always(总是 Discord)。
定时任务:转发 DSH 原生 schedule 的单条与批量提醒(提醒本身不附 Token,任务尚未执行)。
任务完成:turn/end 推送完成摘要并附本次任务 Token;定时任务执行完成后同样附 Token。
待办摘要:每天固定时间读取 dsh-memory-evolve 的待办文件,只发未完成项;空列表不发。
Goal:检测 goal/change 的 create,发送「任务开始执行」提示(不附 Token)。
Token 用量:每条已执行提醒末尾追加「本次任务 / 会话累计 / 本日」,数据来自 assistant/message.usage,并用 DSH tokenUsage 投影校正;未执行的定时任务、待办摘要与 goal 开始提示不附 Token。
除 Discord Bot 外,README 还列出多通道:Discord webhook、Bark、Gotify、飞书、ServerChan、WxPusher、自定义 webhook(HMAC 签名)。Bot 就绪后会在频道发一条按钮控制面板(状态 / Tokens / 任务 / 记忆包),默认不注册斜杠命令。
安装与启用¶
安装后必须把 dsh-notify-bridge 加入 dsh.profile.bundles,并完整重启 DSH Desktop(含托盘退出)。
方式一:从 GitHub 安装(推荐)¶
在 desktop profile 的 package.json 中增加依赖与 bundle:
{
"dependencies": {
"dsh-notify-bridge": "git+https://github.com/harienlook/dsh-notify-bridge.git"
},
"dsh": {
"profile": {
"bundles": ["...", "dsh-notify-bridge"]
}
}
}
在 profile 目录执行 pnpm install,再重启 DSH Desktop。
方式二:本地 link(开发用)¶
"dsh-notify-bridge": "link:<你的工作区>/dsh-notify-bridge"
方式三:Releases 的 tgz¶
到 Releases 下载 dsh-notify-bridge-0.1.0.tgz:
cd ~/.dsh/profiles/desktop
pnpm add ~/Downloads/dsh-notify-bridge-0.1.0.tgz
同样需把 bundle 写入 profile 并重启。
配置¶
重启后打开 DSH 设置 → 通知设置。通知提醒 Tab 修改后即时生效;Discord Tab 保存后需重启 DSH Desktop 才生效。配置写入 ~/.dsh/notify-bridge/config.json;Bot Token 写入 ~/.dsh/notify-bridge/discord.json,设置页不回显 Token。
通知提醒 Tab(节选)¶
| 字段 | 说明 |
|---|---|
| 启用提醒 | 总开关 |
| 提示音 / 音量 | WebAudio 双音 |
| 审批快捷按钮 | toast 上「同意 / 拒绝」 |
| 回复完成 | background / smart / always |
| 离开判定(分钟) | 无输入多久算离开 |
| 测试按钮 | 立即弹测试通知 |
Discord Tab(节选)¶
| 字段 | 说明 |
|---|---|
| Bot Token | 留空表示不修改已存 Token |
| 频道 ID | 通知、控制面板、审批卡片 |
| 你的用户 ID | 限制谁可点审批与查询 |
| 代理 | 仅 HTTP/HTTPS;示例 http://127.0.0.1:7897 |
| 审批模式 | auto / always |
| 转发开关 | 回复完成、审批、goal、定时任务、待办摘要 |
| 待办时间 | 24 小时制 HH:MM |
| Token 时区 | 本日统计与待办日期 |
环境变量 DSH_NOTIFY_BRIDGE_PROXY 可作代理兜底(显式配置优先)。插件不会自动读取系统代理或 HTTP_PROXY;socks5 不支持,非法代理会导致 Bot 不启动并在健康页报错。
Discord 准备(简要步骤)¶
- Discord Developer Portal 创建应用 → Bot → Reset Token。
- OAuth2 URL Generator:
scope=bot,permissions=52224(View Channels、Send Messages、Embed Links、Attach Files),邀请到服务器。 - 开启 Developer Mode 后复制频道 ID、你的用户 ID。
- 在 DSH 设置 → 通知设置 → Discord 粘贴 Token、频道 ID、用户 ID。
健康页与自测¶
在 loopback 上提供诊断与日志(端口为当前 DSH Web 端口):
http://127.0.0.1:<DSH Web 端口>/__dsh-notify-bridge/
http://127.0.0.1:<DSH Web 端口>/__dsh-notify-bridge/health
http://127.0.0.1:<DSH Web 端口>/__dsh-notify-bridge/logs?limit=50
健康 JSON 中的 clientDebug 可判断设置页客户端 bundle 是否执行;stage = registered 表示设置页已注册。Proxy 卡片会标明代理来源或错误,便于排查 Discord 连不上问题。
适用场景与注意¶
适合谁:需要在离席或关页时仍能收到审批与任务结果、并希望把摘要汇总到 Discord(或配置的其他 webhook 通道)的 DSH 用户;本地仍想要系统通知、提示音和标题角标,且不想依赖 dsh-notify-me 的单插件方案。
运行与安全:插件以当前 DSH 进程权限运行,会读写 ~/.dsh/notify-bridge/ 下配置与状态;安装前宜自行审阅 源码与 MIT 许可证。健康路由与设置 API 仅允许 loopback;Token 不进日志与健康页。
已知边界(来自 README):Discord 侧需能访问 discord.com,国内环境常需正确配置 HTTP 代理;/goal 开始提示依赖 DSH goal/change 事件,其他插件替换 goal 命令时可能收不到;「记忆包」会把 ~/.dsh/memories 打成 ZIP 发到当前频道,公开频道勿点;系统通知上的快捷审批在页内 toast,而非 OS 通知按钮本身。
DSH 生态主张「一切皆插件」;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-notify-bridge 把客户端提醒和 Discord(及可选 webhook)串成一条链路:就近处理审批,远端收摘要与 Token,并用健康页把 Bot、代理和客户端状态摊开。若要查看分类与简介,可打开 SkillHub 目录页;安装与细节以 GitHub 仓库 README 为准。