dsh-tab-alert
by Suef-666
dsh-tab-alert 是运行于 dsh(DeepSeek Harness)宿主侧的插件,提供两项能力:
dsh-tab-alert is a host-side plugin for dsh (DeepSeek Harness) providing two capabilities:
安装
dsh plugin --profile web add github:Suef-666/dsh-tab-alertGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
dsh-tab-alert 是运行于 dsh(DeepSeek Harness)宿主侧的插件,提供两项能力:
- 任务栏提醒:dsh 在后台运行并需要用户介入时,通过系统通知提醒用户。 页面失焦或隐藏时弹出静音通知,浏览器在操作系统任务栏上闪烁图标 (Windows 下为橙色闪烁,Linux 下为通知与 Dock 脉冲)。
- 实时事件源:订阅全量会话事件流,维护各会话的实时状态,并通过 WebSocket 端点对外提供统一的会话状态数据,供 dsh-pet 等外部消费方使用。
功能
任务栏提醒
仅在需要用户操作的场景触发提醒,普通回复不提醒:
| 场景 | 说明 |
|---|---|
| 模型提问 | 模型向用户提问 |
| 授权请求 | 请求用户授权 |
| 方案审查 | 请求用户审查方案 |
| 目标完成 | 目标阶段进入完成 |
| 目标失败 / 阻塞 | 目标阶段进入失败或阻塞 |
| 后台任务完成 / 失败 | 后台任务结束 |
| 会话在别处完成 | 未查看的会话已完成 |
| dsh 完成当前回合 | 普通任务执行完毕 |
提醒规则:
- 通过浏览器 Web Notification 触发系统通知与任务栏闪烁,无需修改浏览器;
- 首次触发时请求一次通知权限;用户拒绝后插件保持静默,不做页内降级;
- 同一事件只提醒一次,新事件再次提醒;
- 用户返回页面视为已处理,不再提醒;
- 插件只订阅官方快照并创建通知,不修改其它插件状态,卸载即清理;
- 事件同时发布为旁观式
tab-alert/attention(cordis 事件),供其它插件观察。
任务栏闪烁是浏览器与操作系统的行为,不同环境下表现可能有差异;
若静音模式不闪烁,可关闭 silent 对比验证。
实时事件源(中间件)
宿主侧维护各会话的状态机,把归一化的实时任务状态(会话标题、状态、等待原因、 流式文本等)通过 WebSocket 端点转发给外部消费方。一条数据流,多方复用。
- 官方搭配:dsh-pet(uTools 桌面宠物插件) 直连该事件流,将实时状态渲染为桌面状态面板;
- 第三方开发者可基于同一事件流开发自定义插件或独立客户端(状态面板、 托盘图标、播报、看板等)。
WebSocket 端点、数据格式、状态机语义、节流与重连、版本策略的完整说明, 见 protocol.md。
安装
前置:dsh CLI 可用,目标 profile(如 web)已初始化。
# 安装(link: 开发链接;改源码后重建并重启 dsh 生效)
powershell -ExecutionPolicy Bypass -File .\install.ps1
# 或手动:dsh plugin --profile web add link:<绝对路径>
# 卸载
powershell -ExecutionPolicy Bypass -File .\uninstall.ps1
# 或手动:dsh plugin --profile web remove dsh-tab-alert
# 查看已装插件
dsh plugin --profile web list
link: 为符号链接开发模式,改源码无需重新安装;file: 为拷贝安装,
适合打包分发。卸载后重启 dsh 生效。
配置
可通过 dsh 行级 config 覆盖默认值(如 cordis.patch.yml 覆盖层):
- id: dsh-tab-alert
config:
enabled: true
kinds:
question: true
approval: true
planReview: true
goalComplete: true
goalBlocked: true
jobCompleted: true
jobFailed: true
sessionCompleted: true
silent: true # 静音:只闪烁不响铃
requireInteraction: false # true = 通知常驻直到手动关闭
debug: true # 控制台调试日志
构建与测试
npm install --ignore-scripts
node build.mjs # 产出 lib/ 构建产物
node test\collector.test.mjs # 逻辑单测(边沿检测 / 去重 / 重连基线)
项目结构
src/host/index.ts 宿主侧:会话状态机 + WebSocket 事件源
src/client/index.ts 浏览器侧:插件主体(订阅快照 → 提醒 → 事件总线)
src/client/collector.ts 事件差分逻辑
src/client/notifier.ts Web Notification 提醒
src/client/status.ts 任务进度数据源
test/ 单元测试
License
MIT
原始 README: https://github.com/Suef-666/dsh-tab-alert/blob/main/README.md ↗
同类插件
查看全部 →
dsh
将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。

dsh-qqbot
让 QQ Bot 接入 DeepSeek Harness(dsh)的官方插件

dsh-open-in-vscode
从 Web GUI 一键在 VS Code 中打开工作区目录。

dsh-notification
回合完成桌面通知,按结果分控 + 关键词过滤。

dsh-notifier
DSH 统一通知推送与远程控制:一个 `notify()` API 打通 25+ 渠道(Telegram / 钉钉 / 飞书 / 企业微信 / QQ 机器人 / WxPusher / PushPlus / Server 酱 / Bark / Discord / Slack / ntfy / webhook 等),timeSensitive / active / passive 分级路由并重试;五通道反向审批(Telegram 按钮 / 飞书卡片 / QQ / WxPusher / 微信 iLink);QQ/钉钉/飞书官方扫码登录;本地 Web 管理台;多 agent 路由;系统桌面通知——以及**手机指挥中心**:在手机上发 `!status` / `!stop` / `!retry` 遥控 agent,通知带可操作按钮(查看结果 / 重试 / 日志,点击回调 agent)。密钥脱敏、工具限流、零运行时依赖。

chatccc
飞书(Lark)或微信(WeChat)聊天控制 DeepSeek Harness / Claude Code / Cursor / Codex / CCC Agent