dsh-plugin-ntfyx:把 DSH 任務進度與手機確認接到 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。

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

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

小夜