dsh-notify

DSH PLUGIN通知与集成

仓库 bitterSmilezzz/dsh-notify

通知与集成 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件
安装这个插件

桌面通知插件 for DeepSeek Harness (DSH):审批 / 提问 / 轮次完成 / 会话结束 / 出错时弹系统原生通知,点击直达对应会话。Web Notification 通道,免外部二进制、免授权。DSH plugin: native desktop notifications with click-to-session.

一句话选型结论

按资料字段整理

dsh-notify 是通知与集成类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类通知与集成 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 3 复刻 0 · 未关闭 issue 0
最近更新 2026-10-20 创建于 2026-08-27
README 9.5 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:bitterSmilezzz/dsh-notify
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

通知与集成
字段来自项目仓库与公开索引,中文说明由本站标注

上游标签

deepseek-harnessdesktop-notificationdshdsh-pluginnotificationnotify

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在通知与集成场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-notify当前 未做沙盒验证 未标注 3 未标注 有
treg L3 · 安装规范通过 低风险 4,976 未标注 无
dsh-purge 未做沙盒验证 未标注 3,412 未标注 有
dsh-im L5 · 运行验证通过 低风险 1,837 0.1.7-rc.2 等 10 个 有
dsh-dafeiyu L5 · 运行验证通过 低风险 425 0.1.7-rc.2 等 10 个 有
dsh-trading L3 · 安装规范通过 低风险 235 未标注 无

仓库档案

通知与集成
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方bitterSmilezzz仓库 dsh-notify · 默认分支 main
分类通知与集成notify
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证未标注商用或二次分发前请确认条款原文
星标 / 复刻 / issue3 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-27 · 2026-10-20最后推送 2026-10-20
本站收录2026-10-30首次进入本站目录的时间

README 全文

9.5 KB
作者原文,中文版优先;只做安全转义,不改内容

桌面通知(Desktop Notifications)· dsh-notify

DeepSeek Harness (DSH) 的桌面通知插件:需要审批 / 需要你回答 / 轮次完成 / 会话结束 / Agent 出错时弹系统原生通知,点击通知直接回到对应会话。



  • 仓库:github.com/bitterSmilezzz/dsh-notify
  • npm:@bittersmilezzz/dsh-notify
  • 问题反馈:Issues
  • 更新日志:CHANGELOG.md
  • 伞仓库(契约与校验):bitterSmilezzz/dsh-plugins

通知由渲染进程的 Web Notification API 发出——在桌面 App 里那就是系统原生通知,发送方身份是 App 本身,不需要 terminal-notifier / osascript / PowerShell 之类的外部程序,也不需要额外授权或签名。

功能

  • 六类事件分别开关:审批(approval)/ 提问(question)/ 轮次完成(turn)/ 会话结束(sessionDone)/ 出错(error)/ 子代理完成(subagent,默认关)
  • 点击回到会话:通知点击 → 聚焦窗口 + 在 App 内切到该会话(不再打开浏览器标签页)。
    导航走官方 uiWorkspace.openSession;DSH 0.1.x 的组合回落到 sessions.open
  • 按会话聚合:同一会话的新通知替换上一张卡,并行会话各自独立卡(Windows 除外,见「已知风险」)
  • 只在看不见时打扰:运行时已判定「后台会话跑完」或窗口不在前台时才提醒;正看着那个会话时不打扰。审批与提问是阻塞性的,始终送达
  • 免打扰时段:可设起止时间(支持跨午夜);时段内只静音轮次完成 / 会话结束 / 子代理,审批、提问与出错不受影响
  • 隐私开关:关掉「正文显示详情」后,横幅只显示会话名,不把工作内容带到通知中心
  • 按事件分类的音效:音色由插件用 Web Audio 合成——Web Notification 无法指定音色,
    系统声只能开关、不能选。审批/提问上行双音、出错下行小三度、轮次完成单音轻响、
    会话结束双音下行;同类 300ms 节流,全部 ≤0.6s 且低增益。
    关闭时不出声,系统提示音也一并关掉(不会「关了还响」)
  • 通知文案跟随界面语言:读官方 locale 设置,中文/英文双语

安装

# npm(推荐):包名 @bittersmilezzz/dsh-notify
dsh plugin --profile  add @bittersmilezzz/dsh-notify
# 或从 GitHub
dsh plugin --profile  add github:bitterSmilezzz/dsh-notify
# 或本地路径
dsh plugin --profile  add

启用后开关在桌面通知卡片(settings namespace notify)。卡片注册到官方
plugins.bundle.config 契约,位置在:侧边栏 Plugins 面板 → 本插件 → 配置表单。

> DSH 0.1.6-alpha.2 之前的旧契约 settings.plugin.item(设置 → 插件 → 配置)
> 已被上游退役(commit 90af3110b7),本插件只注册新契约;更早的 DSH 版本会退化
> 为自绘折叠外壳兜底。

安装/升级插件后需重启宿主生效;开关调整即时生效(拨动即写,无需保存)。

兼容性

要求 DSH 0.2.1-rc.2 及以上(用到 ctx.uiSession.sessionStatus 的
running / pendingInteraction / completionUnread 三个事实,以及
ctx.uiWorkspace.openSession 会话导航入口)。

Node.js ^22.19.0 || >=24.0.0。

外部依赖

无。 通知走渲染进程的 Web Notification API:

  • 桌面 App(Electron):DSH 壳对非 media 权限一律放行(apps/desktop/src/microphone-permissions.ts),因此 Notification.permission 恒为 granted,无授权弹窗,不依赖 App 签名或公证;
  • 浏览器:首次需要一次用户手势,设置卡片的「开启通知」按钮负责这一步。

运行时依赖:零(官方 @deepseek-ai/* 包全部声明为 peerDependencies,由宿主的模块表提供)。

生命周期脚本:无(无 preinstall/install/postinstall/prepare,安装时不执行任何构建或第三方代码)。

权限

权限等级:low:插件不落盘、不 spawn 子进程、不发起外部网络请求、不读用户文件与会话数据。
client 半区只读取官方事件与状态(ctx.uiSession.sessionStatus、api-session/error、ctx.sessions.list),
并通过 Web Notification 通道投递;host 半区只持有一份 volatile 配置 schema,没有任何副作用。

能力 是否使用
文件读写 否
子进程 / Shell 否
网络请求 否
凭据访问 否
读取会话内容 否(只读会话标题与运行状态)
系统通知 是(Web Notification)

已知风险

  • 页面/窗口关闭后收不到通知:Web Notification 依赖页面存活。桌面 App 收进托盘仍能收;完全退出则不能。
  • 按会话替换,不堆叠:同一会话的「轮次完成 / 出错 / 会话结束」互相替换,
    只留一条;并行会话各自独立。Windows 上同样成立——桌面版(Electron 44.7.0)
    实测带 tag 的通知照常送达,且同 tag 的第二条会替换第一条。
    只有「Windows + 浏览器」不发 tag(社区实测带 tag 不送达,单机结论,
    保守起见保留)。
  • 审批 / 提问的通知不会被后续事件顶掉:这两类带 requireInteraction,
    留在通知中心等人处理,且用独立的 tag。Windows 上关闭一条 toast 会把它
    从通知中心摘掉,若被同会话随后发生的「轮次完成 / 出错 / 会话结束」
    顶掉,用户回到电脑只看到一条无关提示,需要处理的请求凭空消失。
    信息类通知之间照常替换,审批卡与它们并存。
  • Windows 通知的来源署名是宿主 App 本身(即 DeepSeek Harness),不是插件:
    通知由渲染进程的 Web Notification 发出,Windows 把它记在宿主 App 的身份下。
    若在 Windows「设置 → 系统 → 通知」里关掉该来源,本插件的通知会静默不弹。
  • macOS 首次通知可能被系统静默抑制:系统设置里的「专注模式」「定时摘要」会把横幅收进摘要;若一条都看不到,先检查 系统设置 → 通知 → DeepSeek Harness。
  • 多个客户端同时在线时会各弹一次(桌面窗口 + 浏览器标签页):去重是客户端本地的,跨客户端没有仲裁。
  • 免打扰时段按本机时间判定,跨时区/手动改表期间以当前系统时间为准。
  • 若 profile 未装配 dsh-client-ui-session(自定义组合),插件会退化为「只有设置卡、不发通知」,不会报错。
  • 导航入口缺失时只聚焦不跳转:uiWorkspace(0.2 起)与旧版 sessions.open 都没有的组合下,
    点击通知仍会聚焦窗口并关闭卡片,跳转失败在开发者控制台留一条 [dsh-notify] 提示。

分发渠道

本插件通过以下公开渠道分发,主分发形态是 npm 预构建包(安装时无需构建):

渠道 状态
npm @bittersmilezzz/dsh-notify
GitHub bitterSmilezzz/dsh-notify(每版打 tag)
awesome-dsh-plugin 社区策展列表(data/plugins/bitterSmilezzz__dsh-notify.yml)
DSH-Store 第三方商城,遵循目录准入规则
dsh-market 内置插件市场(读取同一份 catalog)

DSH-Store 准入自检:固定源(40 位 commit)/ manifest 与 tag 一致 / 入口 ID 唯一且不动任何
@deepseek-ai/* 官方组件 / 无生命周期脚本 / 权限等级 low 已披露 / npm run validate:registry 通过。
校验脚本:

npm run validate:registry

开发

标准双半区结构,lib/ 为构建产物:

pnpm install
pnpm typecheck          # 双 program(host + client),纯检查不产出
pnpm build              # tsc host + tsc client 声明 + tsdown client bundle
pnpm test               # node --test test/*.test.mjs
pnpm validate:registry  # DSH-Store 准入自检

源码结构(host):index.ts 组合器与 volatile Config schema;notify-policy.ts 纯策略
(截断、去重键、本地化取词、时钟解析、免打扰判定、tag 策略)。

源码结构(client):notifications.ts 事件订阅与投递控制器;navigation.ts 会话导航缝
(点击通知 / deep-link 共用,uiWorkspace.openSession,缺失时回落旧版 sessions.open);
config.ts 配置快照与写路径;settings-card.tsx 设置卡片;locales.ts 文案;
deep-link.ts URL 深链。

测试分三层:notify-policy.test.mjs(纯函数)、config-parity.test.mjs(契约漂移守卫)、
client-notifications.test.mjs(行为测试:在 Node 里加载真实的 lib/client.js 产物,
配假 Notification / 假 ctx,断言什么事件在什么配置下真的弹了通知、弹出什么、点击后去哪里)。

License

MIT

常见问题

5 问
答案由本站依据条目字段整理,不引用上游原文
dsh-notify 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:bitterSmilezzz/dsh-notify` 即可。

dsh-notify 的验证等级是什么意思?

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-notify 安全吗?

未标注。

dsh-notify 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

8 条
不同作者的仓库分开列,请确认你要装的是哪一个
通知与集成
按星标排序,可作替代方案

treg

treg

Treg 是面向 Agent 工具的 OpenRouter,聚合 60 个提供商的 2896 个端点,按调用计费,统一令牌访问,无需注册各供

L3 · 安装规范通过 4,976 星

dsh-purge

dsh-purge

dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚

未标注验证等级 3,412 星

dsh-im

dsh-im

将IM机器人接入DeepSeek Harness,支持飞书、微信、钉钉等九种渠道,通过扫码或凭据配置,统一管理多机器人连接。

L5 · 运行验证通过 1,837 星

dsh-dafeiyu

dsh-dafeiyu

DSH 大肥鱼是一款由 DeepSeek Harness 真实工作状态驱动的桌面伴侣插件,以始终置顶的透明窗口实时展示 Agent 的思考、

L5 · 运行验证通过 425 星

dsh-trading

dsh-trading

L3 · 安装规范通过 235 星

bitterSmilezzz 的其它插件

3 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。