后台时用系统通知、标题闪烁与红点提醒你回来处理
28.2/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/huangDouP/dsh-client-ui-notifications.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 5 处,展示前 5 条)
- 写入本地文件lib/index.js:18
appendFileSync(DEBUG_LOG, ( new Date()).toISOString() + " " + line + "\n"); - 执行外部命令固定命令lib/index.js:76
execFile( - 读取本地文件build.mjs:45
const bundled = readFileSync(clientTmp, "utf8"); - 写入本地文件build.mjs:46
writeFileSync(path.join(root, "lib/client.js"), wrapClientBundle(bundled)); - 删除本地文件build.mjs:47
rmSync(clientTmp);
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 系统浏览器通知
- 标签页标题闪烁
- favicon角标提醒
DSH 网页通知:浏览器通知、标签页标题闪烁、favicon 角标,还有原生 Windows 弹窗,配一个中英双语设置页。
README
由 DeepSeek 最新模型翻译生成@dsh-external/dsh-client-ui-notifications
DSH Web 的「等待 / 完成」通知插件:你切去做别的事情时,DSH 需要你回来处理(等待批准 / 提问、回合完成、出错),会通过 浏览器系统通知、Tab 标题闪烁、favicon 红点、原生 Windows toast 提醒你,并可在 设置 → 通知 里逐项开关与配置。
截图
浏览器通知(Windows 通知中心,来源为浏览器):
浏览器通知
原生 Windows toast(由 DSH Host 进程弹出——浏览器整个关掉也能收到):
原生 Windows toast
提醒机制(与生效条件)
| 场景 | 信号来源(全部是 DSH 原生契约,无需自定义通道) | 默认 |
| 等待批准 | 会话快照 pending 中出现 approval | 开 |
| 等待回答 | 会话快照 pending 中出现 question | 开(与批准同一开关) |
| 回合完成 | 会话快照 running: true → false | 开 |
| 出错 | 会话快照 lastAgentError 变为非空 | 开 |
呈现方式(均可配置):
展开完整文档(README 剩余 1 节)
@dsh-external/dsh-client-ui-notifications
DSH Web 的「等待 / 完成」通知插件:你切去做别的事情时,DSH 需要你回来处理(等待批准 / 提问、回合完成、出错),会通过 浏览器系统通知、Tab 标题闪烁、favicon 红点、原生 Windows toast 提醒你,并可在 设置 → 通知 里逐项开关与配置。
截图
浏览器通知(Windows 通知中心,来源为浏览器):
浏览器通知
原生 Windows toast(由 DSH Host 进程弹出——浏览器整个关掉也能收到):
原生 Windows toast
提醒机制(与生效条件)
| 场景 | 信号来源(全部是 DSH 原生契约,无需自定义通道) | 默认 |
| 等待批准 | 会话快照 pending 中出现 approval | 开 |
| 等待回答 | 会话快照 pending 中出现 question | 开(与批准同一开关) |
| 回合完成 | 会话快照 running: true → false | 开 |
| 出错 | 会话快照 lastAgentError 变为非空 | 开 |
呈现方式(均可配置):
- 浏览器系统通知(Notification API):开启时浏览器会请求「允许发送通知」权限——这就是你熟悉的「网站想发送通知」体验;允许后即使切到其他窗口,也会在系统通知中心收到。
- Tab 标题闪烁:后台标签页标题在「⚠ / ✅ 前缀 + 原标题」间交替,最多 30 秒,回到页面即恢复。
- favicon 红点:后台标签页的 favicon 覆盖红点,回到页面即恢复。
- 声音:WebAudio 短哔声(首次在页面点击/按键后自动预热,规避浏览器自动播放策略)。
- 原生系统通知(nativeToast 开关,默认关):由 DSH Host 进程直接弹 Windows toast——浏览器整个关掉也能收到。零依赖(内置 WinRT 实现,经 Windows PowerShell 5.1 调用);若安装了 BurntToast 模块则自动使用它获得更美观的样式。Host 半改动需重启生效。
- 冷却:同类通知默认 30 秒内只提醒一次,可调。
提醒只在窗口未被聚焦(后台标签或切到别的窗口)时触发,不打扰正在盯着 DSH 的你。
结构
- src/index.ts —— Host 半源码(TypeScript):导出 Config(schemastery schema + 默认值,字段标 volatile() 才能热改),监听 approval/request / agent/status / agent/error 并弹原生 Windows toast(零依赖 WinRT,可选 BurntToast)。设置项由 Config 自动成为 profile 里该条目的配置,不再手写 settings 命名空间。
- src/client/index.ts —— Client 半源码(TypeScript):通过 configForms.get('<宿主条目 id>') 读写上面那份配置(getSnapshot / subscribe / set),监听 sessions.list / 各会话快照,检测信号并呈现通知;注册 settings.section 设置页;内置 zh/en 双语文案。
- build.mjs —— 构建脚本(esbuild):src/index.ts → lib/index.js(ESM),src/client/index.ts → lib/client.js(window.__ModuleLoader__ bundle)。
- lib/ —— 构建产物(已提交;安装时直接使用)。
- cordis.patch.yml —— 把本包的组合行插入 profile(与已安装的皮肤包同机制,dsh.bundle.patch 自动生效)。
开发 / 构建
pnpm install # 安装 esbuild / typescript 等 devDependencies
pnpm build # 重新生成 lib/index.js + lib/client.js
pnpm typecheck # tsc --noEmit(可选)
提交规则:lib/ 是构建产物且需要提交(github: 安装不跑构建)。改 src/ 后先 pnpm build 再提交;CI(.github/workflows/build.yml)会校验 lib/ 是否与构建一致。
安装
从 GitHub 安装(共享版)——在 ~/.dsh/profiles/<你的profile>/package.json 中:
{
"dependencies": {
"@dsh-external/dsh-client-ui-notifications": "github:huangDouP/dsh-client-ui-notifications"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"@dsh-external/dsh-client-ui-notifications"
]
}
}
}
然后 pnpm install,重启 dsh(新增插件集合只在重启后生效)。
若仓库是 monorepo、包在子目录:用 github:<user>/<repo>#path:/<subdir>。
与皮肤包同机制——bundle 自身的 cordis.patch.yml(dsh.bundle.patch)会在 profile 加载该 bundle 时自动插入组合行,不需要手工改 profile 的 cordis.patch.yml。
本地开发安装:"@dsh-external/dsh-client-ui-notifications": "file:<本包绝对路径>",或复制进 node_modules/@dsh-external/。
0.2 说明:设置命名空间就是宿主条目的 id(本包 cordis.patch.yml 里 insert 的 client-ui-notifications),客户端据此读取同一份配置;桌面客户端用的是 ~/.dsh/profiles/desktop,与 web profile 互不相通,要各装一份。
重启后打开 设置 → 通知 即可看到全部开关并逐项配置(启用通知 / 等待批准 / 回合完成 / 出错 / 浏览器系统通知 / 原生系统通知 / Tab 标题闪烁 / favicon 红点 / 声音 / 冷却)。
卸载
1. 编辑 ~/.dsh/profiles/<你的profile>/package.json:
- 从 dependencies 删除 "@dsh-external/dsh-client-ui-notifications": ... 那一行;
- 从 dsh.profile.bundles 数组中删除 "@dsh-external/dsh-client-ui-notifications" 那一行。
2. 在 ~/.dsh/profiles/<你的profile> 下执行 pnpm install(把包从 node_modules 中清掉)。
3. 重启 dsh —— 插件集合的增删只在重启后生效;bundle 自带的 cordis.patch.yml 插入行会随 bundle 移除自动消失,无需手工改 profile 的 patch 文件。
可选清理:
- 设置残留:0.2 起设置写在 profile 的 cordis.patch.yml 里该条目的 config 段(旧版是 ~/.dsh/settings.yaml 的 notifications: 段),删掉这些字段即恢复默认;
- 浏览器通知授权:浏览器设置 → 网站设置 → 通知,移除对 127.0.0.1:3080 的授权;
- Tab 标题 / favicon 属于插件运行期改动,重启后自动恢复,无需处理。
已知限制
- 桌面客户端里以 Host 的原生 toast 为准,Client 半不再发浏览器通知:Client 半检测到 dshDesktop(Electron 预加载总会注入,浏览器里没有)就把浏览器通知这一路关掉,否则同一次回合完成会出现两条(Host 的「DSH 回合完成」+ Client 的「回合完成」带会话标题)。设置页在桌面端也会把该开关灰掉并附说明。
- 桌面端的 shell 服务跑在沙箱令牌里,WinRT toast 在那种令牌下会报 0x80073D54 no package identity。因此 Host 半改为用自身进程直接跑 powershell.exe -EncodedCommand(非沙箱令牌),并按「开始菜单里的 DeepSeek Harness → electron.app.DeepSeek Harness → DSH」依次尝试已注册的 AppUserModelID;nativeToast 默认开启。
- 浏览器通知依赖页面处于打开状态(标签页可以后台,但不能关闭整个标签页);只有在浏览器里跑 web profile(dsh --profile web)时它才是可用的那一路。
- 冷却只在真正要弹之前登记,被前台静音的那一次不会吃掉冷却窗口。
- 回合完成只在客户端不在前台时弹:Host 侧用 GetForegroundWindow + GetWindowThreadProcessId 判断前台窗口是否属于 DeepSeek Harness,是则静音(approval/request 与 agent/error 不受影响,始终提醒)。这里判断的是「应用是否在前台」,不是「是否正在看某个会话」——后者需要 client 半把当前会话 id 报给 Host(插件内可加一条 webServer 路由),目前没做。
- agent/status 在 0.2 只带 { status }(不再有 agent.sessionId),回合完成按全局 running → idle 判断;多个子代理并行时可能偶尔多弹一条(受冷却约束)。
- 桌面端客户端内检测不到 pending(0.2 的会话快照把审批交互移出了 snapshot),所以「等待批准」的提醒以 Host 侧的 approval/request 事件为准。
- error 检测依赖 lastAgentError 快照字段;子代理 / 工作流结束通知未纳入 v1(会话快照不含该信号)。
- 设置页编辑的是插件 Config(标了 volatile() 的字段可热改),写进 profile 的条目配置,重启不丢;与动态插件的临时设置不同。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
huangDouP/dsh-client-ui-notifications
后台时用系统通知、标题闪烁与红点提醒你回来处理
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,928已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4