dsh-small-toolkit: macOS Wake Screen and Task Completion Alerts for DSH Runtime

前言

用 DeepSeek Harness(dsh)跑长任务时,Mac 常会按系统策略息屏或进入休眠,对话仍在后台执行,你却不一定盯着窗口。任务结束时如果没有提醒,也容易错过结果或错误状态。系统自带的「勿扰」、第三方计时器与 dsh 的生命周期并不绑定,关掉 dsh 后还要记得手动恢复。

下面介绍社区插件 dsh-small-toolkit(维护者 HanYu-me,GitHub:HanYu-me/dsh-small-toolkit)。它在 dsh 运行期间用 macOS 能力保持亮屏、防休眠,并在主对话一轮任务结束时弹出系统通知;点击通知可把 DeepSeek Harness 切到前台。两项能力都只在 macOS 上生效,属于 DSH 生态里「客户端」类的小工具合集。

这是什么

dsh-small-toolkit 是 DeepSeek Harness 的插件:在 lib/features/ 下按文件拆分功能,可分别开关。当前版本 0.3.0,许可证 MIT,要求 Node ^22.19.0 || >=24.0.0,dsh 版本范围为 >=0.1.1-rc.2 <0.3.0(以 package.json 为准)。

它不改动模型或对话逻辑,只在本地 macOS 上补两件实用能力:运行 dsh 时阻止息屏/休眠,以及 主对话任务结束时的系统通知(含标题、结果类型与用时)。

核心功能

保持亮屏(keepAwake)

配置键 keepAwake。dsh 运行期间调用 caffeinate -di -w <dsh 进程>,阻止 Mac 息屏和休眠;dsh 退出后自动解除。

任务完成提醒(taskNotify)

配置键 taskNotify。主对话的一轮任务结束时弹出 macOS 系统通知,内容包含对话标题、结果(完成 / 出错 / 被拦截 / 输出达到上限)和用时。点击通知会切回 DeepSeek Harness 窗口。子智能体、Agent Teams 成员不提醒;手动停止的任务默认不提醒(可在 profile 配置里通过 notifyOn 加入 aborted 以改变行为)。

通知由插件构建的小助手 App「DSH 提醒」发出,图标为 DeepSeek Harness 鲸鱼,安装在 ~/Applications/DSHNotifier.app。首次发通知时 macOS 会请求通知权限;无 Swift 工具链时会退回普通通知,点击可能打开「脚本编辑器」而非 DSH,详见 README「关于通知」一节。

安装与启用

Web 版 profile 安装:

dsh plugin --profile web add github:HanYu-me/dsh-small-toolkit

桌面版 profile:

dsh plugin --profile desktop add github:HanYu-me/dsh-small-toolkit

装好后重启 dsh。也可从 Releases 下载预构建的 dsh-small-toolkit.tgz 安装。

卸载:

dsh plugin --profile web remove dsh-small-toolkit

然后重启 dsh(桌面版将 --profile web 换成 desktop)。

典型用法

手动开关(无需重启 dsh)

编辑首次加载时自动生成的文件:

~/Library/Application Support/dsh-small-toolkit/settings.json

{
  "keepAwake": true,
  "taskNotify": false
}
  • taskNotify:每次任务结束时读取;关掉后不再弹通知。
  • keepAwake:约每 3 秒读取一次;关掉会立刻释放防休眠,重新打开则再次接管。
  • 文件缺失、非法 JSON 或未写某个键时,该功能默认保持开启。
  • 若要让某个功能彻底不加载,在 profile 的 cordis.patch.yml 里对该功能设 enabled: false。

Profile 级配置(改完需重启 dsh)

在 profile 的 cordis.patch.yml 里给 small-toolkit 增加 config::

- id: small-toolkit
  config:
    keepAwake:
      enabled: true
    taskNotify:
      enabled: true
      notifyOn: [completed, error, blocked, max-tokens]   # 加上 aborted 则手动停止也提醒
      minDurationSec: 0                                    # 例如 30:只提醒用时 30 秒以上的任务
      sound: true                                          # false 为静音
      clickOpensApp: true                                  # 关掉后改回普通通知(点击会打开脚本编辑器)
      appBundleId: com.deepseek.dsh                         # 点击通知时切到的应用

通知相关日志:~/Library/Application Support/dsh-small-toolkit/notifier.log。开启 macOS「专注模式」时通知可能被静默。

适用场景与注意

适合在 macOS 上长时间用 dsh 做编码、调研或批量任务的用户:需要机器保持唤醒、又希望在主对话结束时有系统级提醒并一键回到 DSH 窗口。

务必注意:

  • 插件随当前 dsh 进程运行,安装前建议阅读仓库源码与 MIT 许可证,确认 caffeinate、通知助手等行为符合你的环境策略。
  • 非 macOS 系统上这两项功能不生效。
  • 社区目录 skillhub.cn 插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 理念是「一切皆插件」,安装来源以 README 为准。

结尾

dsh-small-toolkit 把「跑 dsh 时不睡屏」和「主对话任务结束提醒并聚焦 DSH」做成可独立开关的两块小功能,配置路径与安装命令在 README 里写全。需要扩展能力时,维护者在 README 中说明了在 lib/features/ 新增文件并注册到 lib/index.js 的方式。

  • 目录页:https://www.skillhub.cn/plugins/HanYu-me/dsh-small-toolkit
  • 仓库:https://github.com/HanYu-me/dsh-small-toolkit
羽毛球分组比赛记分
小程序二维码

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

Xiaoye