macOS Dock 角标与提示音:最小化/切走时 Dock 显示未读角标(运行中=红点、跑完=数字)并播放水泡提示音,回到应用自动清除,基于 Badging API。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Bing-Bryan/dsh-unread-dot
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness(DSH)插件:最小化/切走时,在 macOS Dock 图标上显示未读红点,并在会话完成/需要你处理时播放水泡提示音。回到应用自动清除。
基于 Chrome Badging API(navigator.setAppBadge / navigator.clearAppBadge)实现——不依赖任何 macOS 系统设置,不需要通知权限,没有横幅打扰。
⚠️ 使用前提:请先在 Chrome 中打开 DSH Web,通过浏览器菜单 「更多 → Cast, save and share → 安装应用 / Install…」 把它封装成一个独立的 macOS 应用(PWA)——
setAppBadge只对已安装的 Web App 生效。
效果
| 场景 | Dock 图标 | 声音 |
|---|---|---|
| 会话正在运行(你不在时) | 🔴 红点(无数字)= 还在干活 | 静音 |
| 会话跑完(你不在时) | 🔴 红色数字 +1 = 结果在等你 | 🔊 水泡音 |
| 会话需要你处理 | 🔴 红色数字 +1 | 🔊 水泡音(每段离开期一次) |
| 回到应用 | 自动清除 | — |
为什么用 Badging API
本插件完全构建在 Badging API 之上,用它的三种状态编码「是否/何种新信息」:
navigator.setAppBadge(3) // 红色数字角标:3 个未读结果
navigator.setAppBadge() // 无数字红点:有会话正在运行
navigator.clearAppBadge() // 清除:回到应用,已读
- 无权限、无横幅、无系统设置:角标是系统级常驻标记,网页直接调用即可
- 点 vs 数字:数字 = 未读结果计数,纯点 = 运行中(这是 Badging API 能表达的最清晰差异)
- 兼容性:需将 DSH Web 安装为 PWA(Chrome「安装网页应用」),Chrome 81+ 支持该 API;Chrome 152+ 起角标/通知会正确归属到 Web App 自身
安装
安装插件包到你的 DSH profile(以
web为例):dsh plugin --profile web add github:Bing-Bryan/dsh-unread-dot在 profile 的
package.json的dsh.profile.bundles中追加:"dsh": { "profile": { "bundles": [ "...", "dsh-unread-dot" ] } }重启
dsh web,设置 → Dock 角标与通知 即可配置。
设置项
| 设置 | 默认 | 说明 |
|---|---|---|
| Dock 角标 | 开 | 总开关:跑完/等你处理时显示数字角标,回到应用清除 |
| 运行中显示活动点 | 开 | 最小化期间有会话在生成回复时,显示无数字红点 |
| 提示音(水泡) | 开 | 完成/需要处理时播放内置水泡声(bubble.mp3,0.4s) |
| 测试提示音 | 按钮 | 立即播放一次水泡音验证声音 |
工作原理
- 插件订阅 DSH 的会话列表(
sessions.list),维护未读/已读状态:回到应用(窗口聚焦)时,当前所有待处理状态标记为已读 - 最小化/切走期间,新发生的完成/等待事件才点亮角标与提示音(旧事件不会累计重复计数)
- 运行中的会话只显示活动点(红点),不进入数字计数
- 提示音用
Audio播放内嵌的 MP3(base64),跨窗口锁保证多个窗口同时打开时只响一次
兼容性
- macOS Chrome(安装为 PWA / 「Install page as app」)
- 角标:
setAppBadge需在已安装的 Web App 上下文中生效 - 无服务器端依赖,纯客户端插件,HMR 热更新零重启
许可
MIT © 2026 Bing-Bryan
内置音效 bubble.mp3 基于 Pixabay 音频:Nature bubble in water 剪辑制作(Pixabay 许可:免费商用、无需署名)。
链接
同类插件
xmanrui/dsh-im★ 1525
通过二维码或机器人凭据将 IM 机器人接入 DeepSeek Harness(支持飞书、微信、钉钉、企业微信、QQ、Slack、Telegram、Discord 和 WhatsApp 共 9 种渠道)。
shaobeichen/dsh-pocket★ 1396
手机远程访问 DSH Web 界面:扫码即用局域网或公网(cloudflared 隧道)访问,实时同屏、移动端适配布局,带设置页管理。
inclusionAI/Avernet#deepseek-harness-channel-bcn★ 572
通过 WebSocket V2 将 DeepSeek Harness 接入 Avernet Bot 协作网络,支持自动注册、Agent 会话隔离、工具调用事件和多 Bot 路由工具。
omdsh-dev/dsh-notification★ 85
回合完成桌面通知,按结果分控 + 关键词过滤。
whyihaveyou/dsh-suite#plugin-notify★ 57
回合完成、错误或待审批时推送 IM webhook(飞书/企微/钉钉/Slack/Discord/自定义)与本地通知。
omdsh-dev/dsh-lark★ 55
DeepSeek Harness 的飞书/Lark 机器人渠道:每个会话驱动独立 agent,工具审批、模型提问与计划审阅都以卡片回到聊天,点按钮或直接回复即可作答;聊天里用 `/cd`、`/model`、`/new` 切工作区、换模型、重开会话,多个机器人各自独立并可在同群交接回合。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。