前言¶
在 DeepSeek Harness(DSH)里跑长任务时,人往往不在 IDE 前。仅靠 turn 结束时的简单脚本 hook,很难区分「正常完成」「报错」「等你点批准」或「Goal 卡住」——消息样式、声音、隐私和点击回到 DSH 都要自己拼。下面介绍社区客户端插件 dsh-system-notify(维护者 JamesYasR):在 Windows 与 Ubuntu 上提供类似 Codex 风格的桌面 toast 与提示音,事件可配置,并支持设置页与本地配置,不发起网络请求。
这是什么¶
dsh-system-notify 是 DSH 的 客户端(client)插件,面向 DSH Desktop 使用场景。它在任务完成、失败、需要输入或批准、Goal 完成/阻塞等节点触发系统通知,并可配置展示粒度、声音、免打扰时段与点击聚焦 DSH。插件在 SkillHub 目录 归类为客户端;源码与说明见 GitHub:JamesYasR/dsh-system-notify。许可证为 MIT;package.json 中当前版本为 1.1.0,要求 Node.js >= 20,与 DSH >=0.2.0-rc.2 且 <0.3.0-0 兼容。
与「只在 turn 完成时跑一段 notify 脚本」相比,README 用表格概括了差异:本插件覆盖 turn 错误、提问/批准、Goal、可选的子 agent/workflow 结束;支持多种通知样式、按事件选声、安静时段与冷却、点击聚焦,以及 Settings → System Notifications 图形设置。数据处理均在本地完成,README 明确说明无网络调用、无遥测。
核心功能¶
通知事件¶
README 列出 11 种 可单独开关的事件,默认大多开启,子 agent / workflow 结束默认关闭:
- turn 完成、错误、阻塞、达到 token 上限、用户中止
- 需要输入(
ask_user_question)、工具等待批准 - Goal 完成 / 阻塞
- 子 agent 结束、workflow 结束(可选)
展示样式与隐私¶
四种样式:privacy(隐私)、simple(简洁)、standard(标准)、detailed(详细)。同一 turn 完成事件下,从「仅标题 Task completed」到含 session、摘要、项目路径、耗时、turn 编号等逐级增加信息量。错误类通知在 Linux 上使用 critical urgency,并走错误提示音;隐私模式下仍隐藏具体错误正文。
交互式通知¶
- 批准:可在 toast 上直接批准或拒绝工具调用,结果回传给 DSH。
- 提问:可从 toast 选列表项、多选 checklist,或通过输入框填自定义答案(Ubuntu 上复杂输入依赖
zenity,缺失时部分流程回退到 Chat UI)。
声音与送达方式¶
正常事件与错误事件可分别配置:none / system / 内置 chime / alert / custom;设置页可上传 WAV/OGG(Windows 自定义声要求 PCM WAV)。送达模式支持 toast+声音、仅 toast、仅声音。Ubuntu 上可调音量;支持 安静时段(夜间抑制普通通知,可选仍通知严重错误)以及最小时长、按事件冷却、可选过滤子 agent 会话。
点击聚焦¶
Windows 使用 DSH Desktop 注册的 dsh://open 深链;Ubuntu 优先用 wmctrl/xdotool 聚焦窗口,否则回退打开链接;整段点击行为可关闭。macOS 为 best-effort:osascript 显示通知,afplay 播放声音;点击聚焦需 terminal-notifier。
其他¶
- 可选 Agent 工具
send_desktop_notification(需 opt-in),供模型在你要求「完成后 ping 我」时主动发通知。 - 设置页 中英双语;通知文案跟随系统 locale 或强制 zh/en。
- 运行时仅依赖 Node 内置模块与操作系统通知栈(README:Zero runtime dependencies)。
安装与启用¶
环境要求¶
Windows:Windows 10(1809+)或 Windows 11;需 DSH Desktop。Toast 身份与 dsh://open、交互按钮用的 dsh-system-notify:// 协议由插件/桌面环境配合注册。若看不到通知,需检查 Windows 对「DeepSeek Harness」的通知权限及 Focus Assist。
Ubuntu 22.04/24.04(README 主推平台):建议安装:
sudo apt install libnotify-bin libglib2.0-bin pulseaudio-utils wmctrl
可点击通知依赖 gdbus 与 dbus-monitor;交互文本/多选建议再装 zenity:
sudo apt install zenity
macOS:best-effort;点击聚焦建议 brew install terminal-notifier。
安装命令¶
从 GitHub 安装(须使用 desktop profile,命令来自 README 原文):
dsh plugin --profile desktop add github:JamesYasR/dsh-system-notify
本地目录安装:
dsh plugin --profile desktop add /absolute/path/to/dsh-system-notify
也可在 DSH Web UI:Settings → Plugins → Install,填写 GitHub 规格或本地路径。
安装后打开 Settings → System Notifications(系统通知)。插件默认启用;设置页会显示检测到的后端与缺失的系统包。
配置文件位置¶
- Windows:
%APPDATA%\dsh-system-notify\config.json - Linux/macOS:
$XDG_CONFIG_HOME/dsh-system-notify/config.json(默认~/.config/dsh-system-notify/config.json)
可通过环境变量覆盖:
DSH_SYSTEM_NOTIFY_CONFIG=/path/to/config.json
常用配置项(节选,默认值以 README 为准):
| 键 | 默认 | 含义 |
|---|---|---|
enabled |
true |
总开关 |
events.turnComplete 等 |
见 README | 各事件是否通知 |
style |
standard |
privacy / simple / standard / detailed |
language |
auto |
auto / zh / en |
sound.enabled |
true |
是否播放声音 |
sound.normal |
system |
正常事件声音 |
sound.error |
alert |
错误事件声音 |
完整字段见仓库 README 的 Settings reference。
典型用法¶
- 按上文命令安装插件,确认 DSH Desktop 与目标系统依赖已就绪。
- 打开 Settings → System Notifications,按需要勾选事件、选择样式与声音,必要时配置安静时段与点击聚焦。
- 在 DSH 中发起会长时间运行的任务;turn 完成、报错或出现批准/提问时,应收到对应 toast(及配置的声音)。
- 若启用交互式批准或提问,在通知上操作即可,无需先切回 IDE(部分 Ubuntu 流程在无
zenity时会回退到 Chat UI)。 - 若希望模型在特定节点主动提醒,在插件设置中 opt-in
send_desktop_notification工具,并在对话中说明何时需要桌面 ping。
README 中 turn 完成示例字段(用于理解 detailed 等样式会展示什么):
kind=turnComplete
session=Refactor the settings page
project=D:\workspace\demo
summary="Finished the settings page and verified save / test / sound."
duration=1m 12s
适用场景与注意¶
适合:长时间在 DSH Desktop 上跑 agent、Goal 或 workflow,需要离开座位但仍要区分「完成 / 失败 / 要你输入 / 要你批准」的开发者;对通知隐私(路径、摘要是否露出)和夜间免打扰有要求的用户。
注意:
- 插件以 当前 DSH 进程权限 运行,安装前请自行审阅 源码与 MIT 许可证。
- 社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本文仅介绍社区贡献物。
- macOS 与部分 Linux 桌面为 best-effort;Windows 自定义通知声须 PCM WAV。
- 截断前的资料未列出完整
sound.customPath等后续键,以仓库 README 为准。
结尾¶
dsh-system-notify 把 DSH 运行态里多种会话事件接到操作系统通知层,在可配置的隐私、声音与交互能力下,减少「脚本只 hook turn 结束」的缺口。目录页:https://www.skillhub.cn/plugins/JamesYasR/dsh-system-notify;仓库:https://github.com/JamesYasR/dsh-system-notify。