dsh-ntfy

by hellosz

通知与集成github收录于 08-23

DeepSeek Harness (DSH) host-plane 插件:当 agent 需要人工确认 ( approval/request )或 完成任务 ( agent/status → idle )时,通过 ntfy 向手机推送通知。 功能对齐 Claude Code 的 Notification(permission prompt) /…

DSH host-plane plugin: pushes phone notifications via ntfy when the agent needs approval (approval/request) or goes idle (agent/status), aligned with Claude Code's Notification semantics.

安装

dsh plugin --profile web add github:hellosz/dsh-ntfy

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

DeepSeek Harness (DSH) host-plane 插件:当 agent 需要人工确认(approval/request)或 完成任务(agent/status → idle)时,通过 ntfy 向手机推送通知。 功能对齐 Claude Code 的 Notification(permission_prompt) / Stop hook 埋点。

特性

  • 监听 approval/request(需要确认)与 agent/status→idle(任务完成)两个 host 事件
  • 只对顶层会话发「完成」通知,过滤 subagent 噪音
  • 内置冷却:同一「项目 + 事件类型」在 cooldownMs 内只发一次
  • 发送走 ctx.get('subprocess') 起 /usr/bin/curl,非阻塞、不打断审批 waterfall
  • 全部标识符通过 config 配置,模块零硬编码,可直接分发
  • 通知正文携带会话标题 + 短 id + 最近一条用户消息(当前任务原文)+ 项目 + 工具/原因,一个项目多会话也能一眼分辨

安装

前置:已有一个 ntfy 订阅(https://ntfy.sh/<topic>),以及一个 DSH profile (默认在 $DSH_HOME/profiles/<name>/,web 是最常见的 name)。

方式 A:复制文件(无需发布,立即可用)

# 1. 获取本仓库
git clone https://github.com/hellosz/dsh-ntfy.git
cd dsh-ntfy

# 2. 把插件复制进你的 profile 目录(把 web 换成你的 profile 名)
PROFILE=web
install -m 0644 index.mjs "$DSH_HOME/profiles/$PROFILE/ntfy-notify.mjs"

# 3. 编辑 $DSH_HOME/profiles/$PROFILE/cordis.patch.yml,追加下方「配置」段
# 4. 重启 DSH

方式 B:作为依赖安装(npm)

cd "$DSH_HOME/profiles/$PROFILE"
pnpm add dsh-ntfy          # 或 npm install dsh-ntfy

# 然后在 cordis.patch.yml 里把 name 写成 dsh-ntfy

配置(写入 cordis.patch.yml)

- insert:
    - id: ntfy-notify
      name: ./ntfy-notify.mjs        # 方式 A;方式 B 用 dsh-ntfy
      config:
        topic: your-secret-topic   # 必填:你的 ntfy 主题名
        machine: my-machine        # 可选:默认取主机名
        server: https://ntfy.sh    # 可选:自建 ntfy 时改这里
        cooldownMs: 60000          # 可选:冷却毫秒
        notifyApproval: true       # 可选:需要确认通知
        notifyDone: true           # 可选:完成通知

改完重启 DSH 生效。

键 必填 默认 说明
topic ✅ — ntfy 主题名(订阅 URL 最后一节)。缺失时插件记录错误并保持惰性,不影响 DSH 启动
server https://ntfy.sh ntfy 服务器地址
machine hostname() 通知标题里的机器名
cooldownMs 60000 同项目同类通知最小间隔(毫秒)
notifyApproval true 是否需要「需要确认」通知
notifyDone true 是否需要「完成」通知

触发时机

  • 需要确认:approval/request 事件。仅在 approval policy 为 ask 且确有审批请求时触发; never 模式下 DSH 直接拒绝、不产生审批,因此也不会有该通知(自洽)。
  • 完成任务:顶层会话 agent 回到 idle,与 approval policy 无关。
  • ask_user_question(UI 选择题)是另一条路径,不在本插件范围内。

依赖

  • DSH host 基础层提供的 subprocess 服务
  • 系统 PATH 里的 curl

无第三方 npm 依赖。

发布(维护者)

打一个 v* 标签会触发 GitHub Actions,通过 npm OIDC Trusted Publishing 自动发布到 registry.npmjs.org,无需 token。

前置(一次性,npmjs.com 网页):把本仓库设为 dsh-ntfy 的 trusted publisher。

npm version patch   # 或 minor / major;自动改 version + 提交 + 打 tag
git push --follow-tags

License

MIT

原始 README: https://github.com/hellosz/dsh-ntfy/blob/main/README.md ↗

同类插件

查看全部 →
通知与集成alvinunreal

dsh

将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。

查看详情
1081github+08-21
通知与集成tencent-connect

dsh-qqbot

让 QQ Bot 接入 DeepSeek Harness(dsh)的官方插件

查看详情
55github+08-17
通知与集成omdsh-dev

dsh-open-in-vscode

从 Web GUI 一键在 VS Code 中打开工作区目录。

查看详情
39github+08-13
通知与集成omdsh-dev

dsh-notification

回合完成桌面通知,按结果分控 + 关键词过滤。

查看详情
38github+08-13
通知与集成THEWOLFWALKER

dsh-notifier

DSH 统一通知推送与远程控制:一个 `notify()` API 打通 25+ 渠道(Telegram / 钉钉 / 飞书 / 企业微信 / QQ 机器人 / WxPusher / PushPlus / Server 酱 / Bark / Discord / Slack / ntfy / webhook 等),timeSensitive / active / passive 分级路由并重试;五通道反向审批(Telegram 按钮 / 飞书卡片 / QQ / WxPusher / 微信 iLink);QQ/钉钉/飞书官方扫码登录;本地 Web 管理台;多 agent 路由;系统桌面通知——以及**手机指挥中心**:在手机上发 `!status` / `!stop` / `!retry` 遥控 agent,通知带可操作按钮(查看结果 / 重试 / 日志,点击回调 agent)。密钥脱敏、工具限流、零运行时依赖。

查看详情
27github+08-16
通知与集成wzj998

chatccc

飞书(Lark)或微信(WeChat)聊天控制 DeepSeek Harness / Claude Code / Cursor / Codex / CCC Agent

查看详情
22github+08-23