DeepSeek Harness 插件:dsh-notifier-plugin

DeepSeek Harness (DSH) 采用了插件化架构,开发者常在后台运行任务。当任务结束或遇到中断时,缺乏即时反馈会增加调试成本。dsh-notifier-plugin 旨在解决这一问题,通过系统级通知将关键事件反馈给用户。

插件介绍

这是一个由 hotpot-labs 维护的客户端插件。它提供桌面通知功能,支持在运行完成、模型提问 (ask_user_question) 或等待批准(沙箱升级/工具权限)时触发通知。

通知内容会反映运行结果(已完成/错误/中止/达到 token 上限/被阻塞/被中断)。在传输层面,支持在打包时切换:默认使用浏览器原生的 Notification(),也可配置使用 Tauri 的 @tauri-apps/plugin-notification。

核心能力

  • 桌面通知支持:兼容 macOS、Linux 和 Windows。
  • 关键事件触发:支持运行完成、模型提问、批准请求(沙箱升级或工具权限)的即时通知。
  • 单次运行单通知:针对顶层运行会话,过滤子代理会话,一次运行仅触发一次通知。
  • 前台静默:当页面或窗口可见且聚焦时,不发送通知,避免打扰。
  • Web UI 设置卡片:提供实时配置界面,无需重启即可调整开关。
  • 事件流重连:支持事件流的自动重连机制。

安装与启用

通过 npm 安装该插件(推荐):

dsh plugin --profile web add dsh-notifier-plugin

安装完成后,重启 web 进程以加载插件:

dsh --profile web web

验证插件是否正确挂载:

dsh --profile web --dump-config | grep -n dsh-notifier

配置方式

有两种配置方式,Web UI 设置优先级高于配置文件。

Web UI 配置(推荐)

  1. 打开 dsh web。
  2. 进入 Settings -> Plugins -> Plugin configuration。
  3. 展开通知卡片,调整开关并保存。

配置文件配置

在 profiles 目录下的 cordis.patch.yml 中声明配置:

- id: dsh-notifier
  name: dsh-notifier-plugin
  config:
    enabled: true        # 总开关
    title: DeepSeek Harness
    sound: true          # 允许系统通知音效;false 则静默
    onBlocked: true      # 阻塞通知的总开关
    onQuestion: true     # 提问通知(仅当 onBlocked 为 true 时生效)
    onApproval: true     # 批准通知(仅当 onBlocked 为 true 时生效)

使用注意

  1. 权限授予:浏览器要求用户手势才能授予通知权限。建议在设置卡片中点击 Send test notification 按钮来触发授权。
  2. 前台运行静默:通知仅在 dsh web 页面或 Tauri 窗口打开时触发。无页面时无法收到通知(Headless 模式下不生效)。
  3. macOS 签名问题:macOS 对 ad-hoc 签名的应用拒绝通知权限,需使用开发者签名或通过宿主进程(osascript)进行中转。
  4. Tauri 桌面端配置:Windows / Linux 端需额外安装 tauri-plugin-notification 并配置 capabilities;macOS 端使用特殊的宿主中转机制。
  5. pnpm 版本限制:如果使用 pnpm ≥ 10,可能会阻止 git 依赖运行构建脚本。若安装后跳过构建,需在 profile 的 pnpm-workspace.yaml 中允许该插件的构建。

总结

dsh-notifier-plugin 为 DeepSeek Harness 提供了基础的桌面通知能力,适合需要后台运行任务并关注状态变更的开发者。通过系统通知,可以在不打开界面的情况下掌握任务进度。

  • 目录页: https://www.skillhub.cn/plugins/hotpot-labs/dsh-notifier-plugin
  • GitHub: https://github.com/hotpot-labs/dsh-notifier-plugin
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜