前言¶
用 DeepSeek Harness 跑长对话或后台任务时,浏览器标签往往还停在别的页:助手已经跑完一轮,你未必立刻切回去。ChatGPT 会在标签图标上叠红色数字、标题前加 (N),回合结束还有提示音;原生 DSH 界面没有这套「未读回合」反馈。社区插件 dsh-badge(维护者 gaolvsuan,分类:客户端)把同类能力接到 DSH:在标签页 favicon 和 Windows 任务栏按钮上显示未读数,每完成一个回合播放一次提示音,标签重新可见或窗口回到前台时可自动清零。
这是什么¶
dsh-badge 是 DeepSeek Harness 的客户端组合包插件,MIT 许可,当前 npm 版本 0.8.5(以仓库 package.json 为准)。它监听会话回合结束事件,累加全局未读计数(不按会话分别统计),用 canvas 在站点原图标底图上绘制角标并替换 <link rel="icon">;音效由 Web Audio 现场合成,插件不附带音频文件。Windows 桌面端还可通过宿主侧 PowerShell 助手,对指定进程窗口的任务栏按钮调用 ITaskbarList3 绘制覆盖图标;macOS 与 Linux 仅保留标签页角标、标题前缀与音效。
目录页:https://www.skillhub.cn/plugins/gaolvsuan/dsh-badge
源码:https://github.com/gaolvsuan/dsh-badge
核心功能¶
下面介绍 README 中已写明、可核对的行为。
标签页与标题¶
- 标签页图标角标显示未读回合数,超过 99 显示
99+。 - 可选在文档标题前加
(3) DeepSeek Harness形式的前缀(配置项titlePrefix)。 - 标签页重新可见约 1.2 秒后自动清零(受
clearOnFocus控制)。
提示音¶
- 每个计入的回合结束播放一声;内置三种音色:
chime(两音铃声)、beep(单声方波)、rise(三音上行)。 - 可设
soundUrl使用自定义音频;可开errorSound,在失败回合用低音提示。 minTurnDurationMs默认 1000:短于该时长的回合不计角标、不响,避免极短回合刷屏。- 浏览器需用户至少点击或按键一次后才允许播放声音,插件在首次交互时解锁音频。
Windows 任务栏角标¶
- 在任务栏 DSH 窗口按钮上叠加数字角标;窗口切回前台后可清除(
desktopBadgeClearOnFocus)。 - 子代理的回合不计入任务栏角标,与标签页逻辑一致。
- 默认按进程名
DeepSeek Harness找窗口;多实例或改名时需配置desktopBadgeWindow,或关闭desktopBadge。
设置页¶
Host 中路径:设置 → 插件管理 → dsh-badge。表单提供颜色预设与取色器、角标位置(右下角 / 右上角)、提示音试听、音量滑杆、最短回合时长,以及提示音、任务栏角标、切回前台清零等开关。修改后即时生效,停手后自动写入 Host 设置文档,无单独保存按钮。
安装与启用¶
DSH 生态里插件可来自社区目录或 npm;装完需进入 profile 的 bundles,否则不会加载。
从插件市场安装¶
在 SkillHub 等市场搜索 dsh-badge 后安装,按市场提示重启或等待热挂载。
从 npm 安装(desktop profile)¶
官方命令如下:
dsh plugin --profile desktop add dsh-badge
资料说明:dsh plugin add 只执行 pnpm,不会改 dsh.profile.bundles。装完后还要在 profile 的 package.json 里把 dsh-badge 加进 dsh.profile.bundles 数组,否则插件不会加载。
本地开发(目录链接)¶
把仓库放到任意目录,在 profile 的 package.json 中增加依赖与 bundle 条目,再在 profile 目录执行 pnpm install:
{
"dependencies": {
"dsh-badge": "file:../dsh-badge"
},
"dsh": {
"profile": {
"bundles": [
"dsh-badge"
]
}
}
}
bundles 里缺少 "dsh-badge" 时,插件同样不会加载。
配置¶
在 profile 的 cordis.patch.yml 里覆盖默认值。插入条目时 id 与 name 都要写,id 对应 patch 里的 badge:
- id: badge
name: dsh-badge
config:
volume: 0.6
soundPreset: beep
minTurnDurationMs: 5000
常用配置项(默认值以 README 表格为准):
| 配置项 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
badge |
true |
是否绘制图标角标 |
titlePrefix |
true |
标题前 (N) |
sound |
true |
是否播放提示音 |
soundPreset |
chime |
chime / beep / rise |
volume |
0.5 |
0–1,幂曲线 |
minTurnDurationMs |
1000 |
短回合过滤 |
clearOnFocus |
true |
标签可见时清零 |
badgeColor |
#f5455c |
角标颜色 |
badgePosition |
br |
br 或 tr |
desktopBadge |
true |
Windows 任务栏角标 |
desktopBadgeWindow |
DeepSeek Harness |
任务栏窗口进程名 |
debugLog |
'' |
调试日志文件路径 |
更完整的字段见仓库 README「配置」一节。
典型用法与验证¶
控制台调试¶
在浏览器开发者工具控制台:
__DSH_BADGE__.test(3) // 角标显示 3 并响一声
__DSH_BADGE__.clear() // 清零
__DSH_BADGE__.sound() // 只试听音效
__DSH_BADGE__.config // 当前生效的配置
独立演示页¶
仓库内 demo/index.html 可双击打开,加载真实 client.js,用假 sessions 数据验证角标与音效。带 ?auto=1 可自动跑一遍「开始回合 → 结束回合」并输出报告。
任务栏演示(Windows)¶
不装进 profile 也可单独看任务栏效果:
npm run demo:taskbar
助手会把计数推到 1、2、3,停两秒再清掉。
适用场景与注意¶
适合谁: 长时间让 DSH 在后台跑回合、需要像 ChatGPT 一样用角标和短促提示音提醒「又完成一轮」的开发者;Windows 用户若常最小化窗口,任务栏数字角标比只看标签页更直观。
权限与安全: 插件随当前 DSH profile 与宿主进程运行;Windows 任务栏能力会拉起常驻 PowerShell 助手(taskbar.ps1),按 HWND 与进程名操作任务栏按钮。安装前应阅读 GitHub 源码 与 MIT 许可证,确认符合你的部署策略。
已知限制(README):
- 任务栏角标仅 Windows,依赖 PowerShell 助手;macOS / Linux 无任务栏覆盖。
- 未读数是全局计数,不按会话拆分。
- Electron 的
setOverlayIcon在本架构下不可用,故采用跨进程ITaskbarList3方案。
社区插件目录(如 SkillHub)是独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 本身遵循「一切皆插件」的扩展方式,dsh-badge 是其中一条客户端通知增强路径。
结尾¶
dsh-badge 把 ChatGPT 式的未读角标和回合结束提示音搬到 DeepSeek Harness:标签 favicon、标题前缀、Web Audio 提示音,以及在 Windows 上的任务栏数字角标。安装时记得 market 或 npm 装完后检查 profile 的 bundles;需要细调时改 cordis.patch.yml 或用 Host 插件管理里的表单即可。