Back to home@lovesiss

dsh-notify

DeepSeek Harness desktop notifications: turn done, approval and question pings;任务进度提醒插件,在别的页面工作时,若DSH需要审批,回答,或对话完成都会弹出系统弹窗提示

Stars
1
Language
JavaScript
Created
Aug 20, 2026
Updated
Aug 20, 2026
GitHub repo

Introduction

dsh-notify

release npm CI MIT

DeepSeek Harness 桌面提醒插件:AI 回合结束、需要你回答/批准时,右下角弹出系统通知。你切到别的页面、甚至切到别的会话工作时,都不会错过。

DeepSeek Harness desktop notifications: a system notification when the AI finishes a turn or waits for your input (questions / approvals) — so switching to another page or another session never costs you a missed turn.

触发场景(仅三类,每轮至多一条)

事件(经 Harness 官方事件流)通知
approval/requested(等待你的批准,如权限请求)需要你的批准(立即)
question/requested(AI 向你提问,如确认框)AI 在等你回答(立即)
会话 running → idle(整个回合结束)AI 已回复,正文带最终回复前两行预览;纯工具回合/空回复回退为通用提示(宽限期后仅一条)

回合中段的逐条消息不会触发通知;提问/批准使回合暂停时,也不会再补一条"已回复"。

  • 切走页面 / 失焦 / 正在看别的会话:弹系统通知(Windows 右下角),提示音使用系统通知自带的声音;
  • 正在看该会话的页面:不重复打扰(对话框/回复就在眼前);
  • 页面内右下角 toast 默认关闭,可在设置卡片开启;
  • 切走期间错过提示:最新 3 条会被暂存,回到页面 60 秒内自动补弹右下角 toast(仅当 toast 开启;同时覆盖系统"专注助手/勿扰"在全屏时吞掉系统弹窗的情况)。

截图

右下角系统通知(带回复摘要):

系统通知

设置页开关卡片(设置 → 插件 → 通知):

设置卡片

特性

  • 零依赖:纯 JavaScript,无运行时依赖、无构建依赖(打包脚本只用 Node 内置模块);
  • 零成本:无服务器、无遥测,配置存 localStorage,对话内容不离开浏览器;
  • 事件驱动:复用 Harness 自带的 /api/events.mux/api/events.host 帧流(observation tap),不开新连接、不轮询 DOM;
  • 会话感知:通过 session.prompt / session.history 请求追踪你正在工作的会话——其他会话的审批/提问/完成都会提醒,只有眼前这一个是"安静"的;
  • 失败隔离:订阅器抛错不影响连接层;权限失败全部静默降级。

安装

方式 A:npm 一行安装(推荐,单 profile)

dsh plugin --profile web add @shermanono/dsh-notify

方式 B:全局安装(本机所有 profile 生效)

# 装进共享后备目录,插件行写进机器级补丁层
npm install --prefix "$env:USERPROFILE\.dsh\profiles" @shermanono/dsh-notify

$DSH_HOME/cordis.patch.yml(Windows: %USERPROFILE%\.dsh\cordis.patch.yml)添加:

- insert:
    - id: notify
      name: '@shermanono/dsh-notify'

方式 C:克隆源码自装(开发/尝鲜)

git clone https://github.com/lovesiss/dsh-notify.git
cd dsh-notify
npm run install:global   # 自动:链接 + 写补丁行(幂等);卸载用 npm run uninstall:global

配置分层顺序:内置 bundle → 各 profile 的 cordis.patch.yml机器级 $DSH_HOME/cordis.patch.yml(应用到所有 profile)--patch 覆盖。不要编辑同目录的 cordis.yml

重启并授权

dsh web

打开页面后点击页面任意位置一次——浏览器要求用户手势才能请求系统通知权限,插件会在首次点击时自动请求。权限弹窗选择允许即可。

验证

在浏览器控制台执行:

__dshNotify.test()   // 立即弹一条测试通知

配置

方式一(推荐):设置页开关卡片 —— 打开 DSH 设置 → 插件 → 通知 (dsh-notify) 标签页:总开关 / 系统通知 / 页面内 Toast(默认关),三个即时生效的开关 + 测试按钮。注册在官方 settings.plugins.tab 插槽上,不需要任何主机改动。

方式二:控制台

__dshNotify.setConfig({ toast: true, toastMs: 8000 })
默认说明
enabledtrue总开关
ostrue系统通知(切走/失焦/看别的会话时弹)
toastfalse页面内右下角 toast(默认关)
cooldownMs1500同会话同类通知的冷却(帧风暴只弹一条)
toastMs5000toast 停留时长

配置即写即生效,持久化在 localStorage

卸载

npm run uninstall:global                 # 一键:移除补丁行 + 移除模块链接
# 或手动:
# 1. 删除 cordis.patch.yml 中的 notify 行;
# 2. dsh plugin --profile web remove @shermanono/dsh-notify;
# 3. 重启 dsh web。

隐私

本插件不发起任何网络请求、不收集任何数据;它只读取 Harness 已下发给当前页面的会话帧,并在本地弹出通知。

License

MIT