🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话桌面通知 CoCoCoDeDeDe/dsh-session-notifier

DeepSeek Harness
CoCoCoDeDeDe11 天前有提交已提供中文文档扫描:含敏感能力

会话完成或需处理时弹桌面提醒,点击直达

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add CoCoCoDeDeDe/dsh-session-notifier
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 11 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令发起外部网络请求
查看扫描证据(共 3 处,展示前 3 条)
  • 执行外部命令来自配置/变量
    index.js:332
    child = spawn(
  • 执行外部命令来自配置/变量
    index.js:388
    child = spawn(
  • 发起网络请求
    client.js:114
    return fetch(new URL(path, window.location.origin), {
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-session-notifier 给 DeepSeek Harness(dsh)Web 会话加桌面通知:会话完成、执行失败、需要审批、需要你回答时提醒你。 - 浏览器通知:页面开着时由客户端弹出;点击后定位到对应会话——已有标签页打开该会话就聚焦它(不刷新),没有才新开一个标签页。 - Windows Toast:在 WSL/Windows 下由 Host 直接调用 powershell.exe 弹出,页面关掉也能收到;点击会新开一个浏览器标签页并定位到对应会话(平台限制:无法聚焦已打开的标签页)。 点击后的完整行为见点击通知的行为。 English: desktop notifications for DSH Web sessions — browser notifications plus Windows toasts from WSL; clicking a notification opens its session. 安装 dsh plugin --profile web add dsh-session-notifier 然后: 1. 重启 dsh web(profile 的 bundle 列表只在启动时读取); 2. 浏览器硬刷新(Ctrl+Shift+R); 3. 首次点击 DSH 页面任意位置,允许浏览器通知权限。
展开完整文档(README 剩余 1 节)
dsh-session-notifier

给 DeepSeek Harness(dsh)Web 会话加桌面通知:会话完成、执行失败、需要审批、需要你回答时提醒你。

- 浏览器通知:页面开着时由客户端弹出;点击后定位到对应会话——已有标签页打开该会话就聚焦它(不刷新),没有才新开一个标签页。
- Windows Toast:在 WSL/Windows 下由 Host 直接调用 powershell.exe 弹出,页面关掉也能收到;点击会新开一个浏览器标签页并定位到对应会话(平台限制:无法聚焦已打开的标签页)。

点击后的完整行为见点击通知的行为。

English: desktop notifications for DSH Web sessions — browser notifications plus Windows toasts from WSL; clicking a notification opens its session.

安装

dsh plugin --profile web add dsh-session-notifier

然后:

1. 重启 dsh web(profile 的 bundle 列表只在启动时读取);
2. 浏览器硬刷新(Ctrl+Shift+R);
3. 首次点击 DSH 页面任意位置,允许浏览器通知权限。

也可以在 设置 → 通用 → 桌面通知 中查看权限状态、启用通知或发送测试通知。

从源码安装(本地开发):

cd /path/to/dsh-session-notifier
dsh plugin --profile web add "link:$PWD"

触发事件

| 事件 | 来源 | 通知内容 |
| 回合完成 | agent/status 从 running 变为 idle | 任务已完成 · <目录> |
| 执行失败 | agent/error | 执行失败:<错误> · <目录> |
| 需要审批 | approval/request | 需要审批:<工具>(<原因>) · <目录> |
| 需要回答 | user-questions/request | 需要你回答:<问题> · <目录> |

通知标题使用会话标题(sessionTitle 投影),无标题时回退到工作目录名或会话 id 前 8 位。子代理会话默认不通知。

通道与关注会话

客户端通过 SSE(/dsh-notifier/events)接收通知,并上报浏览器通知权限与当前正在浏览的会话。Host 的 windowsToast.enabled 决定是否同时弹 Windows Toast:

- auto(默认):有页面已授予通知权限时只发浏览器通知,避免重复;没有可用页面时回退到 Windows Toast。关闭浏览器通道(browser.enabled: false)时视同 always,只弹 Toast。
- always:每条未被关注会话抑制的通知同时弹 Windows Toast,最可靠,但会与浏览器通知重复。
- never:从不弹 Toast。

被关注会话:同时只看一个页面、一个会话。聚焦且可见的页面上报的当前会话即被关注会话。

- 被关注会话的完成通知会被抑制(页面本身已经能看到结果),且对所有页面一致抑制。
- 其他会话的完成——同一页面的其他会话、其他标签页/窗口的会话——都会通知。
- 失败、审批、提问即使发生在被关注会话也会通知(这些需要行动)。
- 页面失焦、最小化或关闭时,所有完成都会通知;没有页面连接时由 Windows Toast 接管。

环境要求

| 要求 | 说明 |
| DSH | >=0.2.1-rc.2 <0.3.0-0 |
| Node.js | >=20 |
| 浏览器 | Chrome / Edge(通知授权依赖用户手势) |
| Windows Toast | Windows 或 WSL,PATH 中有 powershell.exe;其他平台只用浏览器通知 |

配置

默认配置在包内的 cordis.patch.yml。要覆盖,在本 profile 的用户 patch 层(~/.dsh/profiles/web/cordis.patch.yml)加一条同 id 的配置;匹配的覆盖会替换整个 config:

- id: dsh-notifier
name: dsh-session-notifier
config:
events:
completed: true
error: true
approval: true
question: true
windowsToast:
enabled: auto # auto | always | never(也接受 true/false) sound: true appId: DSH.Web launchUrl: http://127.0.0.1:3080/ browser: enabled: true 额外允许访问通知路由的主机名(反向代理场景);绑定地址与本机地址始终放行
allowedHosts: []
debounceMs: 4000
includeSubagents: false # true 时子代理/子会话也通知

改完后由 HMR 重载配置;如果没生效,刷新页面或重启 DSH。

验证

通道状态(客户端数、浏览器通道是否可用、Toast 模式、被关注会话)
curl -s http://127.0.0.1:3080/dsh-notifier/state

发送一条测试通知:浏览器通知 + Windows Toastbash
curl -s -X POST http://127.0.0.1:3080/dsh-notifier/test -H 'content-type: application/json' -d '{}'

模拟某个会话的事件(用于验证关注会话抑制)

curl -s -X POST http://127.0.0.1:3080/dsh-notifier/test \
-H 'content-type: application/json' \
-d '{"kind":"completed","sessionId":"session-other"}'

kind 可为 completed / error / approval / question / test

观察 SSE 广播

curl -sN 'http://127.0.0.1:3080/dsh-notifier/events?client=probe'

点击通知的行为

| 场景 | 点击后 |
| 浏览器通知,已有标签页打开该会话 | 聚焦该标签页,不刷新、不重新加载 |
| 浏览器通知,没有标签页打开该会话 | 新开标签页并以 ?dsh-session=<id> 定位到该会话 |
| 浏览器通知,当前页就是该会话 | 聚焦当前页 |
| 浏览器通知,没有会话 id(全局通知) | 只聚焦当前页 |
| Windows Toast | 新开标签页并定位到对应会话;无法聚焦已打开的标签页 |
| 目标会话已删除或无法打开 | 停留在当前视图(新标签页打开 DSH 首页) |

新标签页定位完成后会把 dsh-session 参数从地址栏移除,之后刷新不会重复跳转。Toast 的打开地址可以用配置里的 windowsToast.launchUrl 覆盖。

已知限制

- 需要浏览器进程在运行才能收到浏览器通知;页面全部关掉后由 Windows Toast 接管(仅 Windows/WSL)。
- 通知路由只接受本机(127.0.0.1 / localhost / ::1)、dsh web 实际绑定的地址,以及 allowedHosts 里显式列出的主机;经 --public-url 反向代理访问时,要把代理域名加入 allowedHosts。路由没有额外鉴权,不要把端点暴露到不受信任的网络。
- Windows Toast 使用 DSH.Web 作为 AppID,插件首次发送时会在 HKCU\SOFTWARE\Classes\AppUserModelId\DSH.Web 写入显示名 DSH Web(用户级注册表,幂等,不需要管理员权限)。想换名称可改配置里的 appId。
- Toast 点击会新开一个浏览器标签页并直接定位到对应会话(?dsh-session=<id>)。Windows 协议激活无法聚焦已经打开的标签页,这是平台限制;浏览器通知的点击则优先聚焦已有标签页。
- 审批/提问通知依赖 Host 的 approval/request、user-questions/request 事件;在审批策略为 never 时不会触发审批通知。
- 子代理会话默认被过滤,主会话完成时会统一通知。

License

MIT
预览分享卡片长什么样 ↓CoCoCoDeDeDe/dsh-session-notifier
分享 · DeepSeek Harness Hub
CoCoCoDeDeDe/dsh-session-notifier

会话完成或需处理时弹桌面提醒,点击直达

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部