dsh-all-notify

DSH PLUGIN浏览器与联网

仓库 mkasoy/dsh-all-notify

浏览器与联网 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件

为 DeepSeek Harness 提供原生 Windows 系统通知的 DSH 插件,审批、提问、任务结束或出错时弹出系统 toast,并自动静音当前正在查看的会话。

一句话选型结论

按资料字段整理

dsh-all-notify 是浏览器与联网类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,列出 5 项功能,没有现成安装命令,需要按仓库 README 接入。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类浏览器与联网 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-09-28 创建于 2026-09-23
README 8.5 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
  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 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-all-notify:DeepSeek Harness 的原生 Windows 系统通知插件

  • 原生 Windows toast 通知
  • 通知带会话标题
  • 前台会话自动静音
  • 每类事件独立开关
  • 零运行时依赖

上游标签

deepseek-harnessdsh-pluginnotificationwindows-toast

验证等级与安全审查

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

选择建议

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

值得选的地方

  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有现成安装命令,要按仓库 README 手动接入。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在浏览器与联网场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

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

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-all-notify当前 未做沙盒验证 未标注 0 未标注 无
dsh-our-free-model L3 · 安装规范通过 低风险 8,796 未标注 有
dsh-web L3 · 安装规范通过 低风险 8,549 未标注 无
BrowserSkill L4 · 沙盒安装通过 低风险 8,456 未标注 有
dsh-pocket L5 · 运行验证通过 低风险 1,656 0.2.0-rc.2 等 12 个 有
Browser4 L4 · 沙盒安装通过 中风险 1,152 未标注 有

仓库档案

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方mkasoy仓库 dsh-all-notify · 默认分支 main
分类浏览器与联网integration
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-09-23 · 2026-09-28最后推送 2026-09-28
本站收录2026-09-29首次进入本站目录的时间

README 全文

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

dsh-all-notify

DeepSeek Harness 的原生系统通知插件:审批、提问、任务结束、出错时弹出 Windows 系统 toast,
并为「页面正在看的那个会话」静音。

零运行时依赖,无构建步骤。

中文 | English

特性

  • 原生系统通知,不是浏览器 Notification API。宿主进程直接调用 PowerShell + WinRT
    ToastNotificationManager,浏览器关掉也照弹。
  • 带会话名称。每条通知都带上会话标题,从持久化的 title 投影按需读取。
  • 只在需要时打扰。事件属于页面上正在看的会话、且页面在前台时不弹;切到别的软件后,
    同一个会话的事件会重新提醒。
  • 零运行时依赖。没有 node-notifier,没有需要下载的二进制,没有解析失败的可能。
  • 每种结局都有独立开关。

安装

# npm
dsh plugin --profile web add @mkasoy/dsh-all-notify

# 或从 GitHub
dsh plugin --profile web add github:mkasoy/dsh-all-notify

改了宿主半身需要重启 dsh web;只改浏览器半身刷新页面即可。

通知内容

事件 通知
approval/request 需要你的批准 — 工具名与原因。沙箱提权审批也走这里。
user-questions/request 需要你的回答 — 第一个问题
session/event + turn/end 任务完成 / 任务出错 / 任务已中止 / 任务被阻塞 / 任务达到输出上限
agent/error 出错 — 错误码与信息

每条通知第二行的格式是 「会话标题」 · 事件细节。

一次失败的轮次只弹一条。 agent/error 先上报,随后同一轮次的 turn/end(error)
会被识别为已上报,不再重复。

静音规则

只有同时满足两个条件才静音:

  1. 事件所属会话 = 页面上正在显示的会话,且
  2. 页面在前台

也就是说,你切到别的软件之后,即使页面还停在那个会话上,它的事件会重新提醒。
其余情况一律通知。

浏览器半身每 10 秒上报一次「当前会话 + 页面可见性」,切换会话和
visibilitychange 时也会立即上报;上报超过 30 秒视为失效,通知恢复。

配置

所有键都可选。写在插件自己的 cordis.patch.yml,或在
~/.dsh/profiles/web/cordis.patch.yml 里用同一个行 id 覆盖:

- id: all-notify
config:
enabled: true                # 总开关
onApproval: true             # 审批请求
onQuestion: true             # 提问
onCompleted: true            # 正常结束
onError: true                # 轮次或步骤失败
onAborted: true              # 被中止
onBlocked: true              # 被阻塞
onMaxTokens: true            # 达到输出上限
appName: DeepSeek Harness    # 通知上显示的应用程序名
debug: false                 # true 时把每次决策打到 dsh web 终端

工作原理

┌──────────── 浏览器 (lib/client.js) ────────────┐
│  inject: []            ← 不可能停在 PENDING    │
│  apply 整体 try/catch  ← 不可能让 boot 失败    │
│                                                │
│  当前会话 id + document.hidden                 │
│         │ POST /dsh-all-notify/state           │
└─────────┼──────────────────────────────────────┘
▼
┌──────────── 宿主 (lib/index.js) ───────────────┐
│  inject: []                                    │
│  viewer = { sessionId, hidden, at }            │
│                                                │
│  approval/request ─┐                           │
│  user-questions/request ─┤                     │
│  session/event(turn/end) ─┼→ 静音? → spawn     │
│  agent/error ─┘                powershell      │
│                                   → WinRT toast│
└────────────────────────────────────────────────┘

宿主半身只监听事件,浏览器半身只上报观察状态,两者通过一条自定义 HTTP 路由通信。
不用 Remote 命名空间——对这个体量的需求是不必要的复杂度,而且 Typert 属于预稳定协议。

浏览器半身是顾问角色,不是必需件。 它不工作时宿主收不到上报,于是所有事件都通知——
失败方向是多弹,不是哑掉。

设计约束

每一条都对应一个在 DSH 0.1.7-alpha.1 上实测到的第三方插件故障:

  • 宿主 inject 为空。 inject 里列了没有提供方的服务,会让纤程永远停在 PENDING,
    且不报错。
  • 每个监听器整体 try/catch。 逸出的异常会让条目激活失败,客户端启动审计报
    web boot: 1 entry did not activate。
  • 两个瀑布监听器都 return next()。 返回其它值会被当作「认领决策」,
    GUI 里再也弹不出授权卡片。
  • 不用 ctx.settings.register。 DSH 0.1.7 把插件注册的设置命名空间换成了由 Loader
    条目派生的配置表单,这个 API 已不存在。
  • 浏览器半身 inject 为空且整体包 try/catch。 读不到任何东西时只会退化成
    「不静音」,不会拖垮启动。
  • 零运行时依赖。

实测记录:Windows 上的两个坑

这两个都是 A/B 隔离出来的,不是推测,也不违反直觉地容易被当成多余写法「优化」掉,
所以写进文档。

1. detached 的子进程弹不出通知

变体 结果
detached: true + unref() + -EncodedCommand ❌ 不弹
前台 -EncodedCommand ✅
-File 脚本 ✅
内联 ASCII -Command ✅

detached 子进程在 Windows 上会拿到自己的控制台,这样起来的 PowerShell Show() 不报错、
通知历史里也查得到,但屏幕上什么都不弹。编码不是问题——同一个 -EncodedCommand
payload 只要不 detached 就正常。

2. ToastGeneric 模板不显示,ToastText02 才显示

模板 结果
ToastText02(旧) ✅ 弹
ToastGeneric(新) ❌ 不弹

同样是「进了通知历史但不弹」。两个模板都由系统外壳按当前浅色/深色渲染,
ToastNotification 也没有 per-toast 主题属性,所以用旧模板不损失任何东西。

兼容性

开发与实测于 DSH 0.1.7-alpha.1(dsh web profile,Windows 11 + Windows PowerShell 5.1)。

宿主半身只依赖以下接口,它们在 0.1.7-alpha.1 中均已验证存在:

接口 位置
approval/request 瀑布 packages/interaction/user-approval
user-questions/request 瀑布 packages/interaction/user-questions
session/event + turn/end packages/core/session
agent/error packages/core/agent-loop
title 投影 @deepseek-ai/dsh-session-title
webServer.register @deepseek-ai/dsh-host-webserver
sessions.list / sessions.retainInfo(浏览器侧) @deepseek-ai/dsh-api-session-controller

浏览器半身判定「当前会话」用的是引用计数
sessions.retainInfo(id).retainedBy.mainView > 0,这是 0.1.7-alpha.1 里表示
「该会话正显示在主对话中」的信号。

已知限制

  • 仅 Windows。 其它平台宿主半身会加载但不做任何事。
  • 约 1 秒延迟。 每次通知都要起一个 PowerShell 进程(0.5–1 秒)。换成
    node-notifier(自带 SnoreToast)可压到几十毫秒,代价是引入依赖树——本插件刻意不要依赖。
  • 多标签页会互相覆盖。 每个标签页按自己的心跳上报,谁后报谁算「当前会话」。
    单标签页使用不受影响。
  • 上报内容按原样信任。 路由只能在服务器同源访问。
  • 配置写在 cordis.patch.yml,没有图形设置页——那需要引入浏览器半身的依赖面,
    正是本插件要避开的失败来源。

开发

没有构建步骤,源码即产物。

node --check lib\index.js
node --check lib\client.js

宿主半身可以离线驱动:构造一个假的 ctx(inject / effect / on / get / logger),
执行 apply(ctx, { debug: true, enabled: false }),然后手动触发捕获到的监听器。
enabled: false 会让 notify 停在日志阶段,从而在不真弹通知的前提下断言决策。

License

MIT

常见问题

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

本站没有抓到该条目的安装命令,请到仓库主页确认安装方式;这类条目多数是生态应用或尚未发布安装包的项目。

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

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

dsh-all-notify 安全吗?

未标注。

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

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

dsh-all-notify 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-all-notify 有哪些功能?

原生 Windows toast 通知、通知带会话标题、前台会话自动静音、每类事件独立开关、零运行时依赖。

这条记录的数据可靠吗?

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

浏览器与联网
按星标排序,可作替代方案

dsh-our-free-model

dsh-our-free-model

在 DeepSeek Harness 中装上这个 DSH plugin,无需登录、注册或填 API Key,即可直接调用 DeepSeek

L3 · 安装规范通过 8,796 星

dsh-web

dsh-web

侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。

L3 · 安装规范通过 8,549 星

BrowserSkill

BrowserSkill

BrowserSkill 的 DeepSeek Harness 浏览器自动化桥接插件,通过原生浏览器工具控制可见的 Chrome 和 Edg

L4 · 沙盒安装通过 8,456 星

dsh-pocket

dsh-pocket

DSH Pocket 让 DeepSeek Harness 装进口袋:电脑跑 dsh web,手机扫码即实时同步访问(局域网+公网),人在外

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

Browser4

Browser4

L4 · 沙盒安装通过 1,152 星

agentrq

agentrq

L4 · 沙盒安装通过 1,140 星

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