dsh-ntfy
English · 当 DeepSeek Harness(DSH)的一个回合真正停下来之后,
往自托管 ntfy 推一条纯文本通知,手机 / 手环弹出 —— 人可以离开电脑,不必盯着进度。
【dsh】完成 · 帮我把构建修好
用时 2分05秒 · 12 步 · 4 次工具
目录:~/projects/demo
会话:9f2c1a4e
────────
计划已写入 PLAN.md,下一步……
特性
- 只在真正停下时发。
turn/end后先等settleMs(默认 2 秒);期间新回合(goal 续轮、排队消息、
steering)会让这条通知自动取消。 - 默认安静。 只发根会话;结束原因白名单;短回合不推;同一回合 10 分钟内不重发;队列有上限。
- 卡住时会喊你。 工具需要授权、Agent 提问或等你批计划时立刻推送,并带独立优先级。
- 图形设置页。 设置 → ntfy 通知,22 个配置项全部可调,保存即生效,还能测试发送。
- 自托管、纯文本。 token 从
0600文件读取;发送前脱敏;不使用 emoji。
环境要求
- DSH ≥ 0.2.1-rc.2,
webprofile(设置页是 client 半边)。 - Node.js ≥ 20。
- 一个可访问的 ntfy 服务器。开启鉴权(
auth-default-access: deny-all)时需要有访问令牌。
安装
在 DSH 图形界面里:设置 → 插件 → 添加第三方插件,填:
github:Sillykjs/dsh-ntfy
也可以让 Agent 调用 plugin_manager 的 install_bundle,target 填同一个 spec。管理器会一次完成
装包和启用 bundle。
装好后重启一次 dsh web,让 host 模块装载;之后改配置不用再重启。
命令行手动安装:
dsh plugin --profile web add github:Sillykjs/dsh-ntfy
# 再把 "dsh-ntfy" 加入 $DSH_HOME/profiles/web/package.json 的 dsh.profile.bundles
卸载:在插件管理器里移除,或在 profile patch 里把 ntfy 行设为 disabled: true。
令牌文件故意不自动删除,不需要时请自行清理。