前言¶
在 DeepSeek Harness(DSH)里跑长任务,很容易切去干别的,回来才发现早就跑完了;更常见的是 Agent 正在等你提问回复、计划审阅或审批,你却一时想不起来是哪个会话被挡住了。下面介绍的插件「任务通知台」polunzh/dsh-task-notifier 解决的就是这件事:会话一轮结束时合成提示音、发浏览器或系统通知,并提供侧边栏三列看板,便于筛选待回复、运行中与已完成未读的任务。
定位¶
- 类型:DSH Web 插件,包名
@polunzh/dsh-task-notifier,当前版本1.2.0。 - 维护者:polunzh;GitHub 星标 0;许可证 MIT。
- 依赖:
engines.dsh要求>= 0.2.0-rc.2,Node>= 20。 - 解决什么:把「任务完成」和「正在等你处理」这两类事件推到你能看到的位置,而不是让你自己翻会话列表。
核心功能¶
会话结束提示音¶
任意会话一轮结束时,浏览器端合成一段上行提示音(G5→C6),不需要准备音频素材。面板里提供「试听提示音」按钮,可以直接听效果。
通知双通道¶
通知分两条通道发出,靠心跳判重避免双发:
- 页面开着且已授权浏览器通知 → 走浏览器
Notification,点击通知跳回对应会话。 - 页面关着或未授权 → 宿主在 macOS 上用
osascript弹系统通知。
待回复状态¶
当 Agent 向你提问、等待计划审阅或等待审批时,侧边栏图标亮起琥珀色脉冲点,面板「待回复」列置顶提示,点开直接回到那个在等你决定的会话。
三列看板面板¶
侧边栏图标(带未读角标)打开任务面板,一屏同时展示三列:
- 待回复:在等你输入的会话。
- 运行中:当前正在执行的任务。
- 已完成未读:跑完但你还没点开看过的任务。
顶部 chip 可以单独筛选某一列,底部「更早完成」可展开历史记录。面板支持按标题搜索、全部标为已读、试听提示音、试发系统通知。
未读不丢¶
状态写在 $DSH_HOME/storages/dsh-task-notifier/state.json,重启后仍在。目录权限 0700,文件权限 0600。
中英双语¶
面板与系统通知文案跟随宿主语言(zh / en)。
安装与启用¶
四种安装方式,按使用场景选择。
方式一:开放插件市场(推荐,可在市场点赞)¶
在 DSH 里进入「插件 → 实验性插件」,打开「自定义插件市场」,再进「发现 → 添加索引源」,粘贴:
https://dshopen.org/index.json
之后搜索「任务通知台 / Task Notifier」安装。该市场分类为「工作流与协作」,插件已通过源码级验证。市场页见 dshopen 插件页。
方式二:自建索引安装(可自动检测更新)¶
同样在「发现 → 添加索引源」处粘贴:
https://dsh.127.dev/index.json
有新版本时列表会显示可更新,卸载在「已安装」里完成。索引每 6 小时随 npm 刷新,源码见 dsh-plugins-index。
方式三:npm 安装¶
dsh plugin --profile desktop add @polunzh/dsh-task-notifier
方式四:本地目录安装(开发调试)¶
在 DSH 里使用 plugin_manager 的 install_bundle,target 填本仓库的绝对路径。
配置¶
配置项全部可以省略,写在 profile 的 cordis.patch.yml 里即可:
- insert:
- id: polunzh-task-notifier
name: '@polunzh/dsh-task-notifier'
config:
osNotify: auto # auto | always | off
sound: true # 浏览器端提示音开关
osSound: Glass # macOS 系统提示音名
osTitle: DeepSeek Harness # 系统通知标题
| 字段 | 默认 | 说明 |
|---|---|---|
osNotify |
auto |
auto=页面在线交给浏览器通知、离线兜底系统通知;always=恒发系统通知;off=不发 |
sound |
true |
浏览器合成提示音 |
osSound |
Glass |
macOS 自带提示音名(Glass / Ping / Pop 等) |
osTitle |
DeepSeek Harness |
系统通知标题 |
典型用法¶
把面板和通知组合起来,完整流程如下:
- 在 DSH 里启动一个长任务,切去干别的事。
- 任务本轮结束时听到提示音,并收到浏览器通知(页面开着)或 macOS 系统通知(页面关着)。
- 打开侧边栏任务面板,先看「待回复」列有没有被挡住的会话,再用顶部 chip 切到「已完成未读」列查看结果。
- 点通知或面板里的条目,直接跳回对应会话继续下一步。
如果想让系统通知更醒目,把 osNotify 设为 always,再用 osSound 换一种提示音名;如果完全不想被打扰,osNotify: off 并 sound: false。
适用场景与注意¶
适用场景:
- 常在 DSH 里跑长任务,希望第一时间知道完成。
- 会话被 Agent 卡等回复、审阅、审批,需要快速定位。
- 使用 Web UI 跨平台访问,且主要在 macOS 上收到系统通知。
注意事项:
- 插件以当前 dsh 进程的权限运行,启用前应检查源码与 MIT 许可证,尤其是从第三方索引源安装时。
- 系统通知目前仅支持 macOS(
osascript),其他平台只发浏览器通知。 - 浏览器通知需要用户手动点击授权,插件不会在后台自动请求。
- 隐私方面:插件没有出站请求、遥测或远程资源,会话标题只写本机;不读取
~/.dsh/.credentials.yaml、.env、keychain 和 SSH key;package.json中没有preinstall/postinstall/prepare等安装期脚本。 - 从 1.1.1 起,浏览器模块 id 改为包名
@polunzh/dsh-task-notifier,patch row id 改为polunzh-task-notifier。如果你之前用link:或 1.1.0 及更早版本装过,请只保留一份:先在「插件 → 已安装」卸载旧的,再装新版本。
结尾¶
任务通知台不改变 DSH 的任务执行逻辑,只是把「完成」和「待回复」这两类容易错过的事件推到你能看到的地方。如果你常被长任务和被挡住的会话中断节奏,值得装一个试试。