Back to home

Tenold-a

dsh-notice

为 DeepSeek Harness(dsh)准备的 Windows 桌面通知组件:在对话完成、等待你授权、需要你回答这三个时刻,于系统托盘弹出气泡提醒,确保你不会错过任何需要操作的瞬间。

Stars
0
Language
PowerShell
Created
Aug 15, 2026
Updated
Aug 16, 2026

Introduction

dsh-notice

image

为 DeepSeek Harness(dsh)准备的 Windows 桌面通知组件:在对话完成等待你授权需要你回答这三个时刻,于系统托盘弹出气泡提醒,确保你不会错过任何需要操作的瞬间。

整个项目由少量纯脚本构成,不引入任何第三方包,也不需要编译或额外的运行环境——拿到代码就能直接跑起来。设计上刻意保持小巧:一个插件文件、一个托盘脚本、两个图标,没有安装包、没有后台服务、没有配置文件。

特性

  • 轻巧无依赖:仅使用系统自带的 PowerShell 与 Node 内置模块,零 npm 依赖;
  • 拿到即用:一条命令完成插件安装、开机自启与托盘启动;
  • 三种提醒:会话完成 / 等待授权 / 等待回答,各自可独立开关;
  • 托盘常驻:图标常驻系统托盘,右键即可测试通知、切换提示模式(正常 / 静音 / 勿扰)、开机自启、退出;
  • 只提醒该提醒的:仅对顶层会话触发,子代理与被用户中断的回合自动忽略。

环境要求

  • Windows 10 / 11;
  • 已安装 DeepSeek Harness,并且至少运行过一次 dsh web(用于生成 profile);
  • 无需额外软件,系统自带的 PowerShell 即可。

安装流程

第一步:获取代码

git clone <仓库地址>
cd dsh-notice

也可以下载 ZIP 后解压,进入目录即可。

第二步:一键配置

powershell -ExecutionPolicy Bypass -File .\setup.ps1

这一步会自动完成三件事:

  1. 把插件 dsh-notice.mjs 与兜底脚本 show-toast.ps1 复制到 ~/.dsh/profiles/web/plugins/,并在该 profile 的 cordis.patch.yml 中注册;
  2. 把托盘程序写入开机启动(HKCU\...\CurrentVersion\Run);
  3. 立刻启动托盘程序。

配置成功后,任务栏右下角会出现一个蓝色铃铛图标,并弹出一条「通知服务已启动」的气泡。

第三步:重启 dsh

taskkill /F /IM node.exe   # 结束旧的 dsh 进程
dsh web                     # 重新启动

回到浏览器刷新页面即可。此后每当对话完成、等待授权或等待回答时,右下角都会弹出通知。

注意:请保留本仓库目录。托盘程序是从这里启动的,删除目录会导致托盘失效。

手动安装(可选)

不习惯一键脚本的话,也可以分步进行:

  1. 安装插件:在仓库目录执行 .\install.ps1
  2. 启动托盘:双击 start-tray.vbs
  3. 开机自启:右键托盘图标 → 勾选「开机启动」。

使用非 web profile 时,给脚本加 -Profile <名字>

工作原理

通知必须出现在你的交互桌面,而 dsh 沙箱内的进程无法可靠地把窗口投到桌面,因此拆成两段:

[dsh 宿主进程] ──写 JSON 触发文件──> [dsh-notice-tray(托盘常驻)] ──> 系统托盘气泡
  • dsh-notice.mjs:宿主端插件,监听会话事件并判断该不该提醒,把通知内容写成 %APPDATA%\dsh-notice\triggers\ 下的一个 JSON 文件;
  • dsh-notice-tray.ps1:托盘常驻程序,每秒轮询触发目录,发现新文件就弹出气泡;
  • show-toast.ps1:兜底方案,托盘未运行时由插件直接调用。

插件监听的三个事件:

场景会话事件默认提示
对话完成turn/end会话已完成(有标题时拼成「标题 · 会话已完成」)
等待授权approval/asked需要你允许执行操作(工具名)
等待回答tool/callask_user_question需要你回答一个问题

配置

插件配置位于 profile 的 cordis.patch.yml

默认值说明
enabledtrue总开关
onlyTopLeveltrue只提示顶层会话,跳过子代理 / fork
title"DeepSeek Harness"通知标题
cooldownMs0两次提示的最小间隔
triggerDir%APPDATA%\dsh-notice\triggers触发文件目录(与托盘程序一致)
notifyCompletetrue是否在对话完成时提醒
completeMessage"会话已完成"完成提醒的正文
includeTitletrue完成提醒是否拼接会话标题
skipReasons["interrupted", "aborted"]视为「非完成」的结束原因
notifyApprovaltrue是否在等待授权时提醒
approvalMessage"需要你允许执行操作"授权提醒的正文
notifyQuestiontrue是否在等待回答时提醒
questionMessage"需要你回答一个问题"提问提醒的正文

托盘菜单

  • 测试通知:立即弹一条测试气泡,随当前提示模式联动;

  • 提示模式:三选一的全局设置——

    • 正常:气泡 + 提示音(蓝色铃铛);
    • 静音:仅气泡、无提示音(灰色铃铛);
    • 勿扰:不弹气泡、不响(灰色铃铛 + 红斜杠)。

    当前模式会被记住,重启托盘程序后依然生效。

  • 显示时长:气泡自动消失的时间,可选 1 / 3 / 5 / 10 秒(默认 5 秒),设置会被记住;

  • 开机启动:勾选后随 Windows 登录自动运行;

  • 退出:关闭托盘程序。

卸载

.\uninstall.ps1

托盘程序:右键图标 → 「退出」;若之前勾选了「开机启动」,先取消勾选再退出。

常见问题

  • 装完没收到通知? 先确认托盘图标在(Win11 可能收进任务栏的 ^ 里),并确认已重启 dsh web
  • 想只保留某类提醒?cordis.patch.yml 里把对应的 notifyComplete / notifyApproval / notifyQuestion 设为 false
  • 想改图标样式? 编辑 make-icon.ps1 顶部的颜色值后重新运行生成。
  • 想切换提示模式? 右键托盘 → 「提示模式」里选「正常 / 静音 / 勿扰」。