dsh-mac-notify:把 DSH 事件推到 macOS 桌面通知

前言

在 DSH 里跑长任务、子 agent 或 workflow 时,进程往往占着终端或跑在远端。任务结束、会话暂停这类事件若只靠回来看日志,容易错过时机。邮件或第三方推送可以补位,但需要额外服务;若你日常就在 Mac 上工作,更直接的做法是把 Harness 里的事件转成系统级桌面气泡。

下面介绍社区插件 dsh-mac-notify(维护者 r-ayin):监听 DSH 事件,经 SSH 把通知投递到 Mac 本机的小型 HTTP 监听器,再由 terminal-notifier 弹出通知。插件归类为「客户端」,仓库见 GitHub,目录页见 SkillHub。SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-mac-notify 是 DeepSeek Harness(DSH)的 Cordis 插件(cordis peer >=4.0.0-rc <5),由 dsh-super-injector 的 dev_scaffold_plugin 生成。它解决的是:在 DSH 侧感知选定事件后,无需你盯着终端,也能在指定 Mac 上看到桌面通知。

监听哪些事件

根据仓库 README,插件会响应以下 DSH 事件:

  • 任务完成
  • 会话暂停
  • 子 agent 结束
  • workflow 完成

具体展示文案与触发细节以插件源码为准;安装前建议阅读仓库与 MIT 许可证。

工作原理(两端分工)

  1. DSH 侧(跑 Harness 的环境):插件在事件发生时,通过 SSH 向 Mac 发起请求。
  2. Mac 侧:在本机 127.0.0.1:18923 运行一个小型 HTTP 监听器,接收请求后调用 terminal-notifier 显示气泡。

通知经 SSH 转发到 Mac 上的监听器,而不是在 DSH 进程里直接调用 macOS API,因此 DSH 可以跑在 Linux 或另一台机器上,只要 SSH 能连到那台 Mac。

配置

在 DSH 进程环境中设置:

变量 说明
DSH_MAC_NOTIFY_SSH 接收通知的 Mac 的 SSH 目标,例如 user@mac.local。必填;未设置时插件会跳过通知。须支持非交互式密钥登录(BatchMode)。

Mac 监听器侧(示例脚本)可通过环境变量调整:

变量 说明
NOTIFY_PORT 监听端口(默认与 README 中 18923 一致)
NOTIFIER_BIN terminal-notifier 可执行文件路径

Mac 端:监听器与 terminal-notifier

在要弹通知的 Mac 上先安装 terminal-notifier:

brew install terminal-notifier

在插件仓库的 Mac 上运行自带示例监听器:

node examples/mac-notifier-listener.mjs

监听器绑定本机 127.0.0.1:18923(端口可用 NOTIFY_PORT 修改)。若希望开机常驻,README 建议用 LaunchAgent 包装该进程;具体 plist 需自行按本机路径编写,仓库仅给出方向说明。

确保从 DSH 所在机器到该 Mac 的 SSH 已配置好公钥,且能在无密码提示下登录。

安装与注入

仓库标明为预构建,无需单独 build 步骤。在 注入器环境 内,对本插件目录执行:

dev_inject_plugin <本目录>

将 <本目录> 换成本地 clone 或解压后的 dsh-mac-notify 路径。资料中未提供 dsh plugin add github:... 一类命令,请勿凭插件名拼接安装命令。

运行环境要求 Node.js >= 20(见 package.json 的 engines)。

典型用法串联

  1. 在 Mac 上安装 terminal-notifier,启动 node examples/mac-notifier-listener.mjs(或 LaunchAgent 等价方式)。
  2. 配置 DSH 环境变量 DSH_MAC_NOTIFY_SSH=user@你的Mac主机名或地址。
  3. 在注入器环境中对插件目录执行 dev_inject_plugin,重启或按你当前的 DSH 插件加载方式使插件生效。
  4. 在 DSH 中触发会发出上述事件的操作(例如等待任务完成),确认 Mac 上出现气泡。

适用场景与注意

适合:主要在 Mac 上开发、DSH 跑在本地或远端 Linux/另一台机器,且已习惯用 SSH 管理 Mac 的开发者。

注意:

  • 插件以 当前 DSH 进程的权限 运行,并会通过 SSH 在 Mac 上执行监听器所触发的通知逻辑;安装前应通读 源码 与 MIT 许可证,确认 SSH 目标与监听端口暴露范围符合你的安全策略。
  • Mac 监听器默认只监听 loopback;仍需保证 SSH 账户与密钥不被滥用。
  • 未设置 DSH_MAC_NOTIFY_SSH 时不会发通知,便于在未配置 Mac 的环境中静默跳过。

结尾

dsh-mac-notify 把 DSH 的任务完成、会话暂停、子 agent 结束与 workflow 完成四类事件,收敛成 Mac 桌面上的 terminal-notifier 气泡,适合不想一直盯着终端的 Harness 使用方式。

羽毛球分组比赛记分
小程序二维码

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

小夜