🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

完成提醒 zywnb-2/dsh-donevoice

DeepSeek 客户端
zywnb-229 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

任务完成或需审批时弹窗响铃,点击即回会话

28.3/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/zywnb-2/dsh-donevoice.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 29 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 52 处,展示前 37 条)
  • 读取本地文件
    index.js:183
    const text = readFileSync(file, 'utf8')
  • 写入本地文件
    index.js:205
    mkdirSync(dirname(file), { recursive: true })
  • 写入本地文件
    index.js:207
    writeFileSync(tmp, JSON.stringify(next, null, 2) + '\n', 'utf8')
  • 写入本地文件
    index.js:208
    renameSync(tmp, file)
  • 写入本地文件
    index.js:1222
    mkdirSync(userSoundDir(), { recursive: true })
  • 写入本地文件
    index.js:1223
    writeFileSync(file, bytes)
  • 删除本地文件
    index.js:1255
    rmSync(found.file, { force: true })
  • 读取本地文件
    index.js:1266
    if (existsSync(found.file)) {
  • 读取本地文件
    index.js:1408
    if (existsSync(marker)) {
  • 读取本地文件
    index.js:1409
    const text = readFileSync(marker, 'utf8').replace(/^ FEFF/, '').trim()
  • 删除本地文件
    index.js:1410
    rmSync(marker, { force: true })
  • 读取本地文件
    index.js:1496
    const broken = list.filter((item) => existsSync(item.file) !== true).map((item) => item.id)
  • 读取本地文件
    win-native.js:390
    buffer = readFileSync(filePath)
  • 读取本地文件
    win-native.js:444
    names = readdirSync(dir)
  • 读取本地文件
    win-native.js:458
    const stat = statSync(file)
  • 写入本地文件
    win-native.js:592
    mkdirSync(dirname(file), { recursive: true })
  • 读取本地文件
    win-native.js:595
    current = readFileSync(file, 'utf8')
  • 写入本地文件
    win-native.js:599
    if (current !== payload) writeFileSync(file, payload, 'utf8')
  • 写入本地文件
    win-native.js:676
    mkdirSync(dirname(file), { recursive: true })
  • 读取本地文件
    win-native.js:679
    current = readFileSync(file, 'utf16le')
  • 写入本地文件
    win-native.js:683
    if (current !== payload) writeFileSync(file, Buffer.from(payload, 'utf16le'))
  • 读取本地文件
    win-native.js:856
    if (typeof opt.brandLogo === 'string' && opt.brandLogo !== '') return existsSync(opt.brandLogo) ? opt.brandLogo : null
  • 读取本地文件
    install.mjs:43
    function readJson(path) { return JSON.parse(fs.readFileSync(path, 'utf8')) }
  • 写入本地文件
    install.mjs:45
    fs.writeFileSync(path, JSON.stringify(value, null, 2) + '\n', options ?? 'utf8')
  • 读取本地文件
    install.mjs:49
    const stat = fs.lstatSync(path)
  • 读取本地文件
    install.mjs:99
    try { names = fs.readdirSync(root) } catch { }
  • 读取本地文件
    install.mjs:103
    if (fs.statSync(dir).isDirectory() && Array.isArray(readJson(manifest)?.dsh?.profile?.bundles)) {
  • 读取本地文件
    install.mjs:104
    candidates.push({ dir, at: fs.statSync(manifest).mtimeMs })
  • 读取本地文件
    install.mjs:116
    const stat = fs.lstatSync(path)
  • 写入本地文件
    install.mjs:133
    fs.renameSync(from, to)
  • 删除本地文件
    install.mjs:137
    if (id.kind === 'link') fs.unlinkSync(path)
  • 删除本地文件
    install.mjs:138
    else if (id.kind === 'dir') fs.rmSync(path, { recursive: true })
  • 删除本地文件
    install.mjs:139
    else fs.unlinkSync(path)
  • 写入本地文件
    install.mjs:151
    fs.mkdirSync(target)
  • 写入本地文件
    install.mjs:153
    } else if (stat.isFile()) fs.copyFileSync(source, target)
  • 写入本地文件
    install.mjs:171
    fs.renameSync(temp, path)
  • 写入本地文件
    install.mjs:254
    if (copyMode) fs.mkdirSync(dirname(copyDir), { recursive: true })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

dsh桌面任务提醒,点击桌面提醒可快速回到dsh页面。可自定义上传的音效

README

由 DeepSeek 最新模型翻译生成
dsh-donevoice 🔔 DSH 的完成提醒官。 你切去别的窗口干活时,DSH 里的任务完成 / 等你审批 / 等你回答 / 执行失败,它就用整屏彩色流光边框 + 顶部卡片(或 Windows 系统通知)+ 一声提示音叫你——点一下就回到那个会话。 功能 | | 什么时候提醒 | 通知内容 | | 🟢 | 任务完成 | 「任务完成」+ 会话名 + 本次耗时 | | 🟡 | 等你审批 | 「等待你的许可」+ 工具名 + 理由 | | 🔵 | 等你回答 | 「需要你的回答」+ 第一个问题 | | 🔴 | 执行失败 | 「执行失败」+ 错误摘要;提示音是下行的,一听就知道不对 | - 点通知 = 回到那个会话,DSH 没在跑就帮你启动它。 - DSH 最小化、切走、标签被冻住,都照样能收到;但正看着 DSH 时不弹系统通知,切走之后才弹。 - 子代理不提醒(会刷屏),只由主管会话提醒一次。 两种提醒形态(设置里随时切换,默认「页内卡片」,两者是替代关系) | 你的状态 | 页内卡片(默认) | 顶部提醒 | | 正看着 DSH | 右下角弹卡片(可堆叠) | 整屏彩色边框 + 屏幕上方中间弹卡片 | | 切走 / 最小化 | 系统通知 + 音效 | 整屏彩色边框 + 顶部卡片 + 音效 | 顶部提醒的边框有三个可调量:羽化 / 浓度 / 流速。
展开完整文档(README 剩余 1 节)
dsh-donevoice 🔔

DSH 的完成提醒官。 你切去别的窗口干活时,DSH 里的任务完成 / 等你审批 / 等你回答 / 执行失败,它就用整屏彩色流光边框 + 顶部卡片(或 Windows 系统通知)+ 一声提示音叫你——点一下就回到那个会话。

功能

| | 什么时候提醒 | 通知内容 |
| 🟢 | 任务完成 | 「任务完成」+ 会话名 + 本次耗时 |
| 🟡 | 等你审批 | 「等待你的许可」+ 工具名 + 理由 |
| 🔵 | 等你回答 | 「需要你的回答」+ 第一个问题 |
| 🔴 | 执行失败 | 「执行失败」+ 错误摘要;提示音是下行的,一听就知道不对 |

- 点通知 = 回到那个会话,DSH 没在跑就帮你启动它。
- DSH 最小化、切走、标签被冻住,都照样能收到;但正看着 DSH 时不弹系统通知,切走之后才弹。
- 子代理不提醒(会刷屏),只由主管会话提醒一次。

两种提醒形态(设置里随时切换,默认「页内卡片」,两者是替代关系)

| 你的状态 | 页内卡片(默认) | 顶部提醒 |
| 正看着 DSH | 右下角弹卡片(可堆叠) | 整屏彩色边框 + 屏幕上方中间弹卡片 |
| 切走 / 最小化 | 系统通知 + 音效 | 整屏彩色边框 + 顶部卡片 + 音效 |

顶部提醒的边框有三个可调量:羽化 / 浓度 / 流速。亮多久跟着提示音走,换音效就是改时长。

切走时弹出的系统通知长这样:

DoneVoice 的系统通知:标题 DeepSeek Harness,正文「任务完成 / 给我介绍一下你 · 用时 14s」 DoneVoice 的顶部提醒:整屏流动的彩色边框,以及屏幕上方正中的「任务完成」卡片

快速开始

1. 安装 —— DSH → 设置 → 插件 → 添加插件,粘这一行:

github:zywnb-2/dsh-donevoice#v1.3.1

后面的版本号别删,它把安装锁到对应的发布 tag;不写就跟随随时会变的 main。

2. 重启 DSH。

3. 打开「设置 → 提醒 → 总开关」 —— ⚠️ 默认是关的。「装了没反应」九成是因为它没开。

4. 切到别的窗口,让 DSH 跑个任务,看效果。

第一次提醒可能慢约 2 秒(要加载提示音),之后就几乎瞬时。

版本与要求

仅 Windows 10 / 11,DSH 桌面版 0.2.0-rc.2,不需要管理员权限。

| DoneVoice | 对应 DSH |
| 1.3.1 | 0.2.0-rc.2 |

升级:插件页卸载旧版 → 装新版(只改 # 后面那串)→ 重启 DSH。

卸载

在 DSH 的内置插件列表里移除该插件,重启 DSH。

许可

MIT。自带提示音来自 Pixabay,可免费商用、无需署名。
预览分享卡片长什么样 ↓zywnb-2/dsh-donevoice
分享 · DeepSeek Harness Hub
zywnb-2/dsh-donevoice

任务完成或需审批时弹窗响铃,点击即回会话

这是你的仓库?认领条目

回到顶部