前言¶
DeepSeek Harness(DSH)里常跑长任务。切到别的窗口后,任务结束往往只反映在侧边栏里一个小圆点,操作系统侧没有通知、任务栏或 Dock 角标,也不容易从标题上看出来——只能想起来再回应用里查。
dsh-turn-badge 是社区维护的客户端插件,把「一轮从 running 到 idle」处理成类似 Codex 的体验:原生通知、应用图标角标、窗口标题前的 ● 标记;回到窗口时一并清除。下面介绍它做什么、怎么装、怎么配。
这是什么¶
- 名称:
dsh-turn-badge(npm 包名与插件 id 相同) - 维护者:Drifter-yh
- 分类:客户端(
web/desktopprofile) - 许可证:MIT
- 归属说明:社区插件,与 DeepSeek AI 无官方从属关系;目录见 SkillHub,源码见 GitHub。
一轮结束的定义:uiSession.sessionStatus 里该会话从 running 变为 idle。插件不读消息正文或工具输出,只依赖客户端已有的会话状态与会话标题。
核心功能¶
- 原生通知 — 标题形如 Task finished — “Weekly report”(含会话标题)。在 workspace 服务可用时,点击可聚焦应用并打开对应会话。
- 应用图标角标 — 通过 Badging API(
setAppBadge)显示未读会话数;在支持的 Chromium 载体上还有标签页角标(setClientBadge)。 - 标题圆点 — 在
document.title前加●,作为各处都有的可见兜底。 - 聚焦即清 — 回到 Harness 窗口时清除角标、标题标记和相关 toast。
行为细节(资料原文):
- 若你正在看的就是刚结束的那条会话,默认保持安静。
- 默认忽略 subagent 会话(
skipSubagents: true)。 - 角标按不同会话计数,不是按 turn 次数。
- 无遥测、无额外 HTTP;host 半边 intentionally 为空,只为在 Loader 中激活客户端 bundle。
安装与启用¶
npm 发布版本为 dsh-turn-badge@0.1.0;也可从 GitHub 安装相同源码。
# 从 npm
dsh plugin --profile <your-profile> add dsh-turn-badge
# 从 GitHub(源码一致)
dsh plugin --profile <your-profile> add github:Drifter-yh/dsh-turn-badge
部分构建在 Settings → Plugins 里也有插件注册表入口。
安装后重启 Harness 一次:host 在启动时读取 profile。
首次点击或按键会请求通知权限。macOS 上还需在 系统设置 → 通知 中允许 DeepSeek Harness。
兼容性(package.json / README):Harness >=0.2.2-rc.1 <0.2.3-0,已在 0.2.2-rc.1 desktop profile 验证;需要标准 Web 应用里的 uiSession 与 sessions 客户端服务。
配置¶
设置存在 localStorage,可在 DevTools 控制台修改后刷新页面:
localStorage.setItem('dsh-turn-badge.settings', JSON.stringify({
enabled: true, // 总开关
toast: true, // 系统通知
badge: true, // 图标 / 标签角标
titleDot: true, // 标题 "● " 兜底
notifyWhenFocusedOtherSession: true, // 聚焦在别的会话时仍提醒
skipSubagents: true // 忽略 subagent 回合
}))
恢复默认:localStorage.removeItem('dsh-turn-badge.settings')。
调试辅助:
__dshTurnBadge.preview() // 触发一次示例通知 + 角标
__dshTurnBadge.clear() // 清除角标、标记和 toast
平台与局限¶
能力基于标准 Web API,无 Windows / macOS 专用分支:
| 能力 | Windows | macOS |
|---|---|---|
| 原生通知 | 通知中心 | 通知中心 |
| 应用图标角标 | Badging API(PWA / 支持该 API 的 Chromium) | Badging API(支持该 API 的 Chromium / Safari 载体) |
| 标签角标 | Chromium setClientBadge |
Chromium setClientBadge |
| 标题圆点 | 各载体 | 各载体 |
README 写明:DSH 桌面端任务栏 / Dock 角标取决于 Electron 对 Badging API 的支持;页面插件无法直接调 Electron 主进程。角标不可用时,通知与标题圆点仍可用;已安装的 PWA 上角标表现通常最好。
其他限制:
- 页面需保持活跃;浏览器标签被系统冻结可能延迟提醒。
- running → idle 一律视为「完成」,失败与成功外观相同。
- 标题被壳或其它插件改写时,圆点可能在导航瞬间闪一下。
排错可参考 README 表:无通知查权限与勿扰;无红点用 PWA 或依赖标题圆点;全无则重启并看控制台 [dsh-turn-badge]。
适用场景与注意¶
适合长期在 DSH 里跑 Agent、经常切窗口、希望用系统通知和角标收工提醒的开发者。插件在当前 DSH 客户端进程里运行,只读会话状态与标题;安装前可按习惯查看 SECURITY.md 与 MIT 许可证。
DSH 生态主张「一切皆插件」;SkillHub 等社区目录独立于 DeepSeek / 幻方,不是官方应用商店。
结尾¶
dsh-turn-badge 用客户端订阅 sessionStatus 的 running → idle,把回合结束推到 OS 通知、Badging 与标题标记,并在重新聚焦时清理,长任务时少漏一眼侧边栏。