dsh-plugin-ntfyx: Connecting DSH Task Progress and Mobile Confirmations to Ntfyx

前言

在 DeepSeek Harness(DSH)里跑长任务时,常见做法是盯着终端或 Web 界面等日志。需要你在关键步骤拍板时,往往还要切回会话里打字回复。若希望任务完成、报错或需要授权时能推到手机,并在手机上用按钮或文字答复后再让本地智能体继续,就要在 DSH 侧接一条「发通知—等人答—校验答复」的通道。Ntfyx 提供签名 CLI 与手机端;dsh-plugin-ntfyx 以原生 DSH 插件包形式注册 Ntfyx MCP 与 bundled skill,把上述流程接到 DSH 工具调用里,而不是另起一套托管 MCP 或替换 DSH 自带的权限引擎。

下面介绍该插件的定位、能力、安装步骤与用法约束。事实以 GitHub 仓库 README 为准。

这是什么

dsh-plugin-ntfyx(npm 包名 dsh-plugin-ntfyx,版本 0.1.0)是 Ntfyx 维护的 DSH 社区插件,仓库位于 KaylaONeal/dsh-plugin-ntfyx,在 SkillHub 等社区目录中归类为 客户端。它通过包内的 cordis.patch.yml 启动本机已安装的 ntfyx mcp(经 DSH 官方 MCP 客户端),并注册 bundled 的 ntfyx skill;包内不含凭证、转录上传器或托管 MCP 端点。

声明兼容:DSH 0.2.2-alpha.2、Node.js 24.9+、Ntfyx CLI 0.6.0+;DSH 仍处于开发者预览,该初始版本仅声明其验证过的 DSH 版本。

核心功能

插件把 Ntfyx 能力映射为 DSH 可调用的 MCP 工具(名称以 README 为准):

能力 DSH 工具
受保护通知与富文本报告 mcp__ntfyx__ntfyx_send
向手机提问 mcp__ntfyx__ntfyx_ask
等待并认领已验证的回答 mcp__ntfyx__ntfyx_result
取消待处理提问 mcp__ntfyx__ntfyx_cancel
本地富消息校验 mcp__ntfyx__ntfyx_validate_message
公开 Topic 通知与读取 mcp__ntfyx__ntfyx_public_send、mcp__ntfyx__ntfyx_public_read
已配对 Inbox 使用情况 mcp__ntfyx__ntfyx_usage

会话约定(摘自 README):同一任务的通知与提问共用 one session_id;待处理提问保持同一 request_id,仅在 status: "answered" 且 consumption.claim_acquired: true 后再继续。若用于确认,只有 response.value: "allow" 才表示允许所描述的操作;拒绝、超时、取消或校验失败均不构成同意。

完成类通知由智能体主动调用工具发送;0.1.0 没有自动生命周期钩子,不拦截 DSH 原生提问,也不替 DSH 审批工具权限提示——DSH 原有权限策略仍控制工具执行。

安装与启用

1. 安装并配对 Ntfyx CLI

在未给其它 agent 单独配 Ntfyx 的前提下,可安装签名 CLI 并完成连接(受保护通知与手机提问需要 connect):

curl -fsSL https://ntfyx.me/install.sh | bash
export PATH="$HOME/.local/bin:$PATH"
ntfyx version --json
ntfyx connect

从 Ntfyx 1.8.0+ 扫码授权并选择受保护的 Topic。公开 Topic 操作无需配对。

2. 在 DSH profile 中安装插件包

将 web 换成你实际使用的 profile 名;若通过 npx 启动 DSH,用 npx @deepseek-ai/dsh@0.2.2-alpha.2 替代 dsh。DSH 的 plugin 子命令要求 pnpm 在 PATH 中。安装后若 profile 已在运行,需重启。

dsh plugin --profile web add dsh-plugin-ntfyx@0.1.0
dsh web

也可从 GitHub 安装已打包 bundle(无需 build):

dsh plugin --profile web add github:KaylaONeal/dsh-plugin-ntfyx#v0.1.0

3. 在 DSH 界面中发现(可选)

若启用了 DSH 实验性的 Custom plugin indexes,可在 Plugins → Discover → Add index source 添加 Ntfyx 维护的索引:

https://raw.githubusercontent.com/KaylaONeal/dsh-plugin-ntfyx/main/plugins.json

该索引展示图标与中英文说明及安装确认;并不表示该包成为 DeepSeek 官方维护的 Official bundle。

更新与移除

dsh plugin --profile web update --latest dsh-plugin-ntfyx
dsh plugin --profile web remove dsh-plugin-ntfyx

移除 bundle 会保留本机 Ntfyx CLI 与已配对凭证。GitHub 安装若 pinned 到 tag,更新需 add github:KaylaONeal/dsh-plugin-ntfyx#vNEW_VERSION,仅改 pinned tag 不会自动选新版本。

典型用法

安装完成后,可在 DSH 中用自然语言指示智能体读取 skill 并走通手机链路。README 给出的验证话术示例:

Read the ntfyx skill, then use Ntfyx to ask me a test question on my phone. Use Ntfyx for decisions and send a completion notification for this task.

仅有安装成功并不能证明手机可达;需要真实签名答复回到等待中的 agent,才能验证手机工作流。

排查时可运行 ntfyx doctor、ntfyx version --json;桌面启动器也需保证 ntfyx 在 PATH 上。bundle 的 MCP 入口 ID 为 ntfyx-mcp,传输超时允许最长约 45 秒的 Ntfyx question/result 等待。CLI 缺失或无法启动时,DSH 会记录 MCP 连接错误并继续运行——修正 PATH 后重启。同一 scope 内避免再添加名为 ntfyx 的第二个 MCP 客户端。

查看合成配置(不启动插件、不证明 MCP 或手机投递):

dsh --profile web --dump-config

适用场景与注意

适合:已在 DSH 中开发或运维智能体,希望在长任务中向 iPhone、Android 或已授权 Web Inbox 推送进度与报告,并在本地由 Ntfyx CLI 校验、认领手机回复后再继续的场景;需要与现有 DSH MCP + skill 体系一致、不引入托管 MCP 时也可考虑。

注意:

  • 插件与 DSH 进程同权限运行;安装前应阅读仓库源码与 MIT(bundle 配置与 skill)及 Ntfyx CLI/服务各自许可与 服务条款。
  • 受保护消息与答案在设备端加密;服务处理路由元数据与密文。公开 Topic 对知晓 Topic ID 的各方可见、非端到端加密,且不能用于授权操作;首次公开发送前须显式接受 公开内容条款。
  • DeepSeek 目前分发自有 Official bundles,默认不带第三方插件索引;社区目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系。
  • README 注明:Linux 运行时检查与本地富消息校验见 release notes;其它操作系统及真实 DSH 到手机投递需单独验收。

结尾

dsh-plugin-ntfyx 把 Ntfyx 的手机通知、富文本报告与可验证回复,以原生 DSH 插件包(MCP + skill)接到 Harness 上,适合需要「人在手机上确认后再继续」的 DSH 工作流。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库;中文说明见仓库内 README.zh.md,Ntfyx 产品见 ntfyx.me。

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

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

Xiaoye