多对话并行的声音提醒 + 对话直达:当前对话当/当当(crisp 清脆档),其他对话叮/叮叮(soft 柔和档)+ 右上角小卡片,点一下直达对应对话。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:february2015/dsh-dingo
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
Ding + Go —— DSH(DeepSeek Harness)声音提醒 + 对话直达插件。
听到即到达:其他对话回复时出声提醒你,右上角卡片点一下直达对应对话——切到别的应用时,系统级通知(macOS 通知中心 / Windows toast)也不会漏,点一下同样直达。不只是告诉你"有动静",而是直接把你送到对话面前(这是区别于纯提醒方案的核心能力)。
多对话并行时的得力助手:DSH 里同时开好几个对话(含子代理)并行干活时,不用挨个盯着——哪个对话有回复,出声提醒你 + 卡片标注工作区/对话名;点一下直达那个对话,处理完继续干别的。提醒不打扰,直达不迷路,多任务并行也能从容切换。
当前对话回复 → 当 / 当当 提示音区分(crisp 清脆档);其他对话回复 → 另一套声音(叮,soft 柔和档) + 右上角小卡片,点击卡片直达对应对话。纯事件驱动,轻量。
它到底做了什么
| 场景 | 声音 | 卡片 |
|---|---|---|
| 当前对话有回复(普通陈述) | 当(1 声,crisp 档) | 无(你正在看这个对话) |
| 当前对话需回答(回复含疑问/请求确认) | 当当(2 声,crisp 档) | 无 |
| 其他对话有回复 | 另一套声音(叮,soft 档)1 声 | ✅ 右上角小卡片 |
| 其他对话需回答 | 另一套声音 2 声 | ✅ 右上角小卡片 |
| 任务失败 | 咚(低音) | ✅ 小卡片 |
"需回答"怎么判定(2026-08-15 收紧,中英文通用):优先看结构化信号——ask_user 工具调用、审批请求(approval/asked)、questions 域提问 → 一律"需回答"。纯文本兜底判定更严格,避免把 AI 思考过程中的自问自答误判成"等你回答":
- 明确请求动作/决策/确认(请确认、请选择、需要你拍板、你怎么看、你觉得呢… / please confirm、your call、what do you think…)→ 需回答;
- 问号 + 疑问语气(吗/呢/怎么/是否… / what、why、how、助动词开头问句…)→ 需回答,但排除反问句(难道…吗?/ Isn't…?)、自问自答(…吗?因为/其实… / …? Because/Actually…)、问题清单列举(…?其次… / …? Next…);
- 疑问词只出现在陈述句里(无问号,"我在想是否需要优化…")→ 有回复。
小卡片(其他对话专属):
- 固定 200×56 尺寸,半透明悬浮;
- 内容:状态图标 + 工作区名(≤12 字)+ 对话标题(≤10 字);
- 🟩 绿方块 = 有回复,🟠 问号 = 需回答,🔴 感叹号 = 失败;
- 点击卡片 → 直达该对话;右上角 × 关闭;
- 多卡片从右上角(Session log 按钮下方)从上往下排列,间距 8px;点击跳转后其余卡片自动补位;
- 播报完成后卡片仍保留 30 秒供你点击/关闭,超时自动消失。
提醒纪律:
- 同一对话同样的提示 10 秒内不重复(按内容去重:不同样的提示各自响;每个对话各自计时);
/dingo dnd on免打扰:任务完成类静音、需回答类仍提醒;- 可配静音时段(
quietHours"HH:mm",支持跨夜)——任务类只入队不发声,结束后补播; /dingo off一键关闭全部提醒。
系统级通知(macOS 通知中心 / Windows toast,可选):
- 其他对话需回答 / 有回复 / 任务失败时,除浏览器内卡片外再发一条系统通知——切到别的应用也不错过;
- 双通道、各司其职:系统通知告诉你"有动静";浏览器内卡片(DSH 界面开着就一直有)告诉你"是哪个对话"——点卡片直达;
- Windows:点击系统通知本身也可直达对应会话(深链
?dingOpen=); - macOS:系统通知仅作提醒(无点击回调,macOS 系统限制;直达由浏览器内卡片完成);
- DSH Web UI 前台可见时不发(浏览器内叮当音 + 卡片已够);页面在后台或未打开时发;
- 零安装:macOS 用系统内置
osascript;Windows 用系统自带 PowerShell(脚本在scripts/)。
安装
# 本地源码安装(开发)
dsh plugin --profile web add /path/to/dsh-dingo
# 或 npm 安装(发布后)
dsh plugin --profile web add dsh-dingo
# <profile> 换成你要安装的目标 profile 名(本机常用 web)
系统通知前置要求(可选功能)
系统级通知(macOS 通知中心 / Windows toast)两个平台都无需安装:
- macOS:用系统内置
osascript(display notification)。 - Windows:用系统自带 PowerShell(
scripts/notify.ps1+scripts/toast-activate.ps1)。
随时可用 systemNotify: false 关闭(见下方配置)。
profile 的 cordis.patch.yml 或插件配置里可覆盖:
- id: dsh-dingo
config:
enabled: true
feedback:
toneStyle: soft # 提示音档位:soft(其他对话"叮")/ crisp(当前对话"当")
dnd: false
dedupeWindowMs: 10000 # 同会话同内容去重窗口(同样提示不重复、不同样各自响)
quietHours: { start: '', end: '' }
# systemNotify: true # 其他对话的系统级通知(默认开)
# systemNotifyBaseUrl: '' # 深链基地址(默认 http://127.0.0.1:3080)
命令
/dingo on|off # 开/关提醒
/dingo status # 开关、DND、插播队列
/dingo dnd [on|off] # 免打扰(任务完成类静音、需回答仍提醒)
技术实现(架构)
- host 半(
src/index.ts+src/feedback.ts):- 订阅
session/event:turn/end(completed)/approval/asked/tool/call(ask_user)/assistant/message→ 判定级别 → 入提醒队列(优先级:需回答 > 有回复 > 失败); - 当前对话回复(客户端上报的当前查看会话)→ 直接入队 own 提醒(只播提示音、不显示卡片);
- 队列按优先级串行播报,客户端
spoken上报后播下一条;
- 订阅
- client 半(
src/client/FeedbackCard.tsx+tones.ts):- 轮询
/dingo.feedback快照 → 当前对话项播 crisp 档提示音(当/当当)、其他对话项播 soft 档(叮) + 渲染卡片; - 内置两套提示音(soft/crisp,data URL WAV),不依赖任何外部音频文件;
- 点击卡片 → client 侧
sessions.open直达对应对话(与侧边栏点击同一入口)。
- 轮询
- RPC(
/dingo通道):feedback/set-current-session。
开发
npm install
npm run typecheck # 类型检查
npm test # vitest
npm run verify # typecheck + test + build
License
MIT
Windows 系统通知脚本参考自 CAOGGL/dsh-ding(MIT)——详见 LICENSE 的第三方声明。
链接
同类插件
omdsh-dev/dsh-notification★ 49
回合完成桌面通知,按结果分控 + 关键词过滤。
omdsh-dev/dsh-open-in-vscode★ 46
从 Web GUI 一键在 VS Code 中打开工作区目录。
whyihaveyou/dsh-suite#plugin-notify★ 27
回合完成、错误或待审批时推送 IM webhook(飞书/企微/钉钉/Slack/Discord/自定义)与本地通知。
omdsh-dev/dsh-lark★ 17
DeepSeek Harness 的飞书/Lark 机器人渠道:每个会话驱动独立 agent,工具审批、模型提问与计划审阅都以卡片回到聊天,点按钮或直接回复即可作答;聊天里用 `/cd`、`/model`、`/new` 切工作区、换模型、重开会话,多个机器人各自独立并可在同群交接回合。
bill9109/dsh-web-ui-notify★ 12
桌面通知提醒。
bobleer/dsh-acp-for-bitfun★ 9
BitFun 与 DSH 的 ACP 交互对接。