dsh-whatsapp:在 DSH 側欄掛載 WhatsApp 多設備客戶端

前言

在 DeepSeek Harness(DSH)裏跑智能體或本地工具鏈時,聊天、通知和文件往往分散在手機和電腦之間。若要在同一套 Harness 界面裏對照個人 WhatsApp 收發短信、同步會話並傳文件,通常只能再開瀏覽器標籤或獨立桌面客戶端,與側欄裏的其他能力割裂。

dsh-whatsapp 是 AJN-Tech 維護的 DSH 客戶端類插件:在 DSH 左側欄提供接近 WhatsApp Web 的「已關聯設備」體驗,通過掃碼關聯手機號,在電腦側實時同步消息並支持媒體與文件,會話狀態本地加密保存。下文按定位、能力、安裝與首次關聯、安全與限制說明可覈對的事實與步驟。

這是什麼

  • 名稱:dsh-whatsapp(倉庫 AJN-Tech/dsh-whatsapp)
  • 維護者:AJN-Tech
  • 分類:客戶端(社區目錄:SkillHub 插件頁)
  • 當前資料版本:0.1.2(見 package.json)
  • 定位:非官方的 WhatsApp Web 風格關聯設備插件;基於開源 Baileys 走 WhatsApp Web 多設備協議,不屬於 WhatsApp / Meta 官方產品。

README 明確提示:個人賬號沒有公開 API,非官方客戶端可能違反 WhatsApp 服務條款,關聯號碼存在被封禁(含永久封禁)風險;勿用無法承受損失的賬號,勿用於批量或自動化羣發。

環境與依賴

安裝前需滿足 README 所列條件:

項 要求
DSH 0.2.0 及以上(engines.dsh: ">=0.2.0";README 註明曾在 0.2.2-rc.1 上測試)
Node.js 22.5+(與 DSH 0.2.2 運行時要求一致)
手機 已安裝 WhatsApp,電腦需能聯網;首次關聯需手機掃碼一次

核心功能(以 README 功能表爲準)

下面僅列出資料中標註爲已實現或明確說明的行爲。

關聯與在線

  1. 手機 WhatsApp → 關聯設備 掃 QR 碼完成一次關聯。
  2. 作爲獨立關聯設備,擁有各自的端到端加密連接。
  3. 在 WhatsApp 多設備規則下,主手機關機或離線時仍可收發(關聯設備約 14 天未使用會被 WhatsApp 解除關聯,插件會提示重新掃碼)。

消息與會話

  • 文本、回覆、表情、@ 提及;聊天列表、搜索、未讀數、歷史同步、已讀回執、輸入狀態與在線狀態。
  • 羣組:收發、參與者名稱、羣元數據。

媒體與文件

  • 收發照片、視頻、音頻、文檔;支持下載媒體(媒體按需拉取,僅緩存在內存,不落盤明文)。

會話持久化

  • 啓動之間安全保存關聯會話:AES-256-GCM 靜態加密。

明確未實現或僅佔位

  • 語音 / 視頻通話:未實現(可顯示來電並 Reject;無法傳輸音視頻;頂欄通話按鈕禁用並附說明)。
  • 狀態 / 動態、頻道 / 簡報、閱後即焚管理、支付等:未實現。

安裝與啓用

官方 README 提供三種路徑;不要憑倉庫名自行拼接 dsh plugin add github:owner/repo 作爲唯一安裝方式。

從本地打包的 tarball(推薦)

在已獲取源碼的目錄中執行:

cd dsh-whatsapp
npm install
npm pack                       # 產生 dsh-whatsapp-0.1.2.tgz
dsh plugin add "$PWD/dsh-whatsapp-0.1.2.tgz"

若插件管理器提示需要重啓,請重啓 DSH。成功後左側欄出現 WhatsApp 入口;若安裝時 DSH 已在運行且未出現入口,重啓一次進程(README 說明運行中主機可能緩存失敗的模塊導入)。

從 GitHub Release

從 latest release 下載 dsh-whatsapp-0.1.2.tgz,然後:

dsh plugin add /path/to/dsh-whatsapp-0.1.2.tgz

源碼目錄(開發)

git clone https://github.com/AJN-Tech/dsh-whatsapp.git
cd dsh-whatsapp
npm install
dsh plugin add "$PWD"
dsh plugin dev "$PWD" --host http://127.0.0.1:46739   # 推送 client.js,無需重啓

pnpm 與依賴構建腳本

@whiskeysockets/baileys 與 protobufjs 帶有 install 腳本;新版 pnpm 可能攔截,可在 DSH 插件管理 Web UI 中批准並重試,或使用 approved-builds 選項。手動 npm install 時,README 稱對這兩個包使用 npm install --ignore-scripts 即可。

安裝完成後重啓 DSH(按提示),打開側欄 WhatsApp 即可進入關聯流程。

首次關聯(典型用法)

  1. 在 DSH 左側欄打開 WhatsApp。
  2. 手機上:WhatsApp → 設置 → 關聯設備 → 關聯設備。
  3. 掃描 DSH 中顯示的 QR 碼,在手機上確認新設備。
  4. 界面切換到聊天列表並開始同步歷史。

該設備會出現在手機的關聯設備列表中,形態類似瀏覽器 / 桌面客戶端;同一賬號最多可關聯 四臺設備,本插件佔其一。

日常使用即在 DSH 全頁客戶端中收發消息、回覆、傳文件,與手機端保持實時同步;需要解除關聯時可在插件 Settings → Log out(或 Re-link)。

本地數據、加密與卸載

狀態目錄默認爲 ${DSH_HOME:-~/.dsh}/whatsapp/:

creds.enc   封存的設備憑證
keys.enc    封存的 Signal 會話 / 預密鑰等狀態
store.enc   封存的本地聊天與消息緩存
device.json 關聯元數據(重連非必需)
key.bin     主密鑰(口令模式下不存在)
salt.bin    scrypt 鹽(僅口令模式)
  • 默認用 key.bin(目錄 0700、文件 0600)保護上述封存文件。
  • 啓動 DSH 前設置環境變量 DSH_WHATSAPP_PASSPHRASE 時,用 scrypt 從口令派生密鑰,不寫入 key.bin;更改或丟失口令需重新關聯。
  • 插件不記錄消息正文、憑證、密鑰、QR、Cookie 或媒體字節;除 WhatsApp 服務器外無遙測外連。本地 API 掛在 DSH 已認證的 Web 服務下,路由與 DSH 一方路由同樣的連接 / 屬主校驗。

卸載插件不會自動刪除數據目錄:

dsh plugin remove dsh-whatsapp
rm -rf "${DSH_HOME:-$HOME/.dsh}/whatsapp"

更完整威脅模型見倉庫 docs/SECURITY.md。

適用場景與注意事項

較適合

  • 已在用 DSH 0.2.0+,希望把個人 WhatsApp 收進 Harness 側欄,減少在瀏覽器 / 獨立客戶端間切換。
  • 接受「關聯設備」能力邊界:要強依賴語音視頻通話、動態、頻道等,仍需使用手機或官方 WhatsApp Web / Desktop。

務必注意

  1. 非官方客戶端:自行承擔封號與服務條款風險;README 建議閱讀 docs/FEASIBILITY.md。
  2. 插件以當前 DSH 進程權限運行:安裝前應閱讀源碼與 MIT 許可證(package.json),確認依賴與行爲可接受。
  3. 通話:來電可拒絕,不能在本插件內接通音視頻。
  4. 長期不用:約 14 天未使用關聯設備會被 WhatsApp .unlink,需重新掃碼。

DSH 生態強調「一切皆插件」;SkillHub 等爲社區目錄站點,與 DeepSeek / 幻方無官方從屬關係,本文所述安裝與能力均以倉庫 README 與 package.json 爲準。

結尾

dsh-whatsapp 把 WhatsApp 多設備關聯設備嵌進 DSH 左側欄:掃碼一次、實時同步、文件與媒體、本地 AES-256-GCM 會話封存,並如實標明通話與部分 WhatsApp 功能未實現。若你正在搭建 Harness 工作區並需要把常用 IM 收攏進同一界面,可按上文 tarball 或 Release 路徑安裝,並在接受非官方風險的前提下完成首次 QR 關聯。

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

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

小夜