DeepSeek Harness Hub
← 返回列表

对话完成通知aokamoaki/dsh-notify

DeepSeek 客户端兼容 / 相关生态spec-screened在 GitHub 查看 ↗
⚠ 装前注意

回合结束或需审批时弹出 Windows 提醒

基本兼容但装前注意:npm 同名包「dsh-notify」归属 pasumao/dsh-plugin-notify,装到的可能不是本插件 · 最近上游提交 2026/8/16 · 已提供中文文档

DeepSeek Harness 的对话完成通知:当一轮对话结束、发生错误、目标完成,或 agent 请求/需要批准时,显示 Windows 通知 + 声音——前台抑制,仅后台。

综合分
32.6
GitHub 分
32.6
用户评分
★ Stars
1
周下载量
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/aokamoaki/dsh-notify.git
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-notify @ 0.1.7
Node 引擎要求 >=22.13 · 基线 Node 22.19 满足
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

npm 同名包「dsh-notify」归属 pasumao/dsh-plugin-notify,装到的可能不是本插件

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 18:57:39

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

🔔 dsh-notify

简体中文 | English

DeepSeek Harness 对话完成通知插件 —— 回合完成、出错、目标完成、提问、审批时,在你离开应用时弹出 Windows 通知(toast + 提示音),前台自动静默。零配置,会话头部铃铛即控制中心。

Check version license node dsh tests

📖 简介

在 DeepSeek Harness(DSH)里跑长任务时,你常常切去别的窗口。dsh-notify 会在对话回合结束、出错、目标达成时用 Windows 原生 toast + 提示音提醒你,只在应用处于后台时打扰:页面可见或桌面壳任一窗口聚焦时,完成类通知自动静默;而「需要你回来操作」的提问 / 审批类通知始终提醒——那正是要打断你的场景。

✨ 功能特性

- 🔔 会话头部铃铛:通知总开关(点击静音/恢复)+ 音量滑块(0–100%),实时落盘
- 🛌 仅后台触发:web 页面可见 或 桌面壳任一窗口聚焦时,完成类通知静默
- ⚠️ 提问/审批始终提醒:ask_user_question、approval/asked 不因前台而静默
- 🔇 总开关:关闭后所有通知(含提问/审批)全部静默,重启仍生效
- 🌐 双语:toast 文案跟随 Windows 显示语言(中文 / English)
- ⚙️ 零配置起步,配置文件热更新,无需重启
- 🧵 智能去重:同会话 5 秒内不重复打扰;回合完成仅在 agent 保持空闲时提醒(800ms 去抖);subagent 内部会话不通知

📦 安装

dsh plugin --profile web add github:aokamoaki/dsh-notify

重启 dsh web 生效。

本地开发(link 方式):把仓库放到任意目录,然后在 profile 的 package.json 中以 link 引入:

"dependencies": { "dsh-notify": "link:C:/path/to/dsh-notify" }

并确保 dsh.profile.bundles 含 "dsh-notify"。

🚀 快速开始

安装并重启后无需任何配置即生效。默认行为:

- 对话回合完成 → 「对话」完成 · 耗时(仅后台)
- 回合出错 → 「对话」出错 · 耗时(仅后台)
- 目标完成 → 目标完成(仅后台)
- agent 提问(ask_user_question)→ 需要你选择(始终)
- 审批请求(approval/asked)→ 需要你批准 : 工具名(始终)

不想被打扰?点会话头部的 🔔 铃铛即可一键静音,悬停可调音量。

⚙️ 配置

配置文件:~/.dsh/dsh-notify.json(不存在时用默认值;铃铛操作实时写回)。

| 字段 | 默认 | 说明 | 控制入口 |
| :-- | :-- | :-- | :-- |
| notifications | true | 通知总开关(关 = 全部静默) | 铃铛点击 |
| volume | 1 | 提示音音量 0–1 | 铃铛滑块 |
| sound | true | 提示音开关 | 配置文件 |
| toast | true | 系统弹窗(toast)开关 | 配置文件 |
| serviceNotify | true | 服务类通知开关(桌面壳读取) | 配置文件 |

📡 HTTP API

| 端点 | 方法 | 说明 |
| :-- | :-- | :-- |
| /dsh-notify/config | GET | 读取当前配置 |
| /dsh-notify/config | POST | 局部更新配置({"volume": 0.5}),原子写盘 |
| /dsh-notify/foreground | GET | 前台状态快照({page, shell, foreground}) |
| /dsh-notify/foreground | POST | 上报前台状态({"page": bool} 页面 / {"shell": bool} 桌面壳) |

所有端点仅接受同源请求(sec-fetch-site 校验),非浏览器来源会被拒绝。

🏗️ 架构

web 页面 (lib/client.js)  ──visibilitychange / focus──►  POST /dsh-notify/foreground {page}
桌面壳 (Electron)         ──任意窗口 focus/blur──────►  POST /dsh-notify/foreground {shell}
│ 合并:foreground = page || shell
宿主插件 (lib/index.js)  ──notify()──┐                        ▼
session/event、goal/changed 事件  │   done/error/goal 前台静默、ask 始终弹
└─► notify.ps1 ──► Windows toast + 提示音

- host(lib/index.js):事件驱动;配置 / 前台状态 API;notify() 读取配置 → 调用 notify.ps1
- client(lib/client.js):会话头部铃铛 UI;页面可见性 / 焦点上报
- notify.ps1:toast 与提示音执行器(-SoundType done|error|ask、-Volume、-NoSound、-NoToast)
- 前台状态为内存态(不落盘);初始态为后台,确保上报链路故障时不会静默吞掉通知

🔌 兼容性

- 平台:Windows(toast 经 PowerShell + Windows 通知)
- DSH:web 版(dsh web),桌面壳可选(上报 shell 前台状态)
- Node:>=22.13

🛠️ 开发

dsh-notify/
├── lib/
│   ├── index.js      # 宿主入口(事件 + API;纯决策/参数逻辑可单测)
│   ├── client.js     # 浏览器端(铃铛 UI + 前台上报)
│   ├── notify.ps1    # toast / 提示音执行器
│   └── activate.ps1  # toast 点击处理(仅打开本机 DSH 地址,安全校验)
├── test/notify.test.mjs  # 22 个用例(node:test,零依赖,spawn 注入间谍)
├── cordis.patch.yml  # bundle 注册
└── package.json

client 构建约束:lib/client.js 必须是 DSH client-bundle 产物格式——
window.__ModuleLoader__.load({ id, factory }),禁止 import / JSX。修改后保持该包装结构,否则浏览器加载会报 "loaded without registering"。

验证:

npm run check        # node --check lib/index.js lib/client.js
npm test             # 22 个用例(配置/决策/事件接线/HTTP 路由;不真起 powershell)
npm run pack:check   # 发布包内容检查

运行时 API 自检:curl http://127.0.0.1:3080/dsh-notify/config。

🩺 故障排查

| 现象 | 处理 |
| :-- | :-- |
| 完全收不到通知 | 检查 ~/.dsh/dsh-notify.json 的 notifications/sound/toast 是否被关闭;页面是否处于可见状态(前台静默是设计行为) |
| 前台也弹通知 | 上报链路可能中断(/dsh-notify/foreground 被同源校验拦截);刷新页面后应恢复 |
| 铃铛不见了 / GUI 启动异常 | 若 dsh-startup-guard 检测到本插件损坏会自动禁用并在 cordis.patch.yml 追加 disabled: true(附原因注释);修复源码后删除该条目并重启即可 |
| 通知延迟 | 回合完成类有 800ms 去抖 + 空闲判断;同会话 5 秒去重 |

📄 许可

MIT

DeepSeek Harness 社区插件,与 DeepSeek 官方无关。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(aokamoaki)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群