前言¶
用 DSH 跑智能體時,若 IM 通道經 dsh-im(@xmanrui/dsh-im)從手機 QQ、微信、飛書等橋接進來,消息會落在 DSH 的會話列表裏。要在左側欄或主區域像聊天軟件一樣連續看「手機發來的話」和助手流式回覆,並順帶排版 Markdown、LaTeX 和圖片,單靠 dsh-im 自帶的「IM 機器人」管理面板不夠——那個面板面向連接與配置,不是聊天內容鏡像。
FST-EchoFly/dsh-im-phone-chat(npm 包名 dsh-im-phone-chat)是 dsh-im 的配套客戶端插件:在 DSH 界面裏提供只讀聊天鏡像,不寫入會話、也不改 dsh-im 安裝包。維護者爲 FST-EchoFly;倉庫在 GitHub 上約 2 stars,許可證 MIT,當前 npm 版本 1.4.0(以 package.json 爲準)。
這是什麼¶
一句話:把經 dsh-im 橋接的手機 IM 對話,以實時氣泡形式顯示在 DSH 左側欄入口對應的主面板裏。
插件是純客戶端 UI(宿主側 index.js 爲空實現),通過 DSH 公開會話 API 訂閱事件,按時間摺疊用戶消息與助手回覆;助手內容支持 Markdown、$...$ / $$...$$ LaTeX(KaTeX → MathML),手機圖片內聯展示並可點擊放大、旋轉。多個手機會話可在面板頂部切換,並支持「加載更早消息」。README 註明已在 DSH 0.2.1-rc.2 與 dsh-im 5.0.3(Windows 桌面端)組合下實測可用;其他環境需自行驗證。
核心功能¶
下面介紹 README 中已列出的能力,均可在倉庫說明中核對。
- 入口與佈局:左側欄底部、設置按鈕上方註冊「聊天氣泡」圖標;點擊後在
main全局面板槽位打開「手機聊天」面板。 - 實時同步:手機側消息與助手流式 chunk、結算消息隨
binding.eventSource事件窗口更新;流式未結束前公式按純文本顯示,結算後再排版。 - 富文本與圖片:內置 markdown-it、KaTeX;圖片經
session.readAttachment()取字節,懶加載 Blob URL,離開視圖後釋放。 - 會話發現:優先用 dsh-im 管理 RPC(
connection.status的bot.workspace)定位手機通道工作區,並結合標題帶 IM 通道前綴的會話做兜底。 - 只讀邊界:不能在鏡像面板裏發消息;需要繼續對話時,用面板裏的「在會話中打開」跳到真實 DSH 會話,或在手機上直接回復。
安裝與啓用¶
前置條件¶
- 已安裝 DSH(Web 或桌面端均可)。
- 已安裝並啓用
@xmanrui/dsh-im,且至少一個 IM 通道(例如 QQ)已連接。 - 若用命令行安裝,需保證本機
dsh命令可用;用插件管理器安裝則不必。
方式一:npm(推薦)¶
<profile> 在桌面端一般爲 desktop,Web 端一般爲 web:
dsh plugin --profile <profile> add dsh-im-phone-chat
安裝完成後刷新一次頁面(桌面端 Ctrl+R 或 F5)。左側欄應出現聊天氣泡圖標。
方式二與方式三¶
README 還支持:設置 → 插件 → 安裝本地插件(選擇克隆或下載後的倉庫目錄),或命令行 dsh plugin --profile <profile> add link:<克隆目錄絕對路徑>。本地 link 方式卸載插件不會刪除源碼目錄。
更新與卸載¶
- npm:重新執行
dsh plugin --profile <profile> add dsh-im-phone-chat,或在插件管理器中更新。 - 本地 link:在克隆目錄
git pull後重啓 DSH 或刷新頁面。 - 卸載:插件管理器停用/移除「手機聊天鏡像」,或:
dsh plugin --profile <profile> remove dsh-im-phone-chat
典型用法¶
經過上面的安裝與刷新,可按 README 步驟操作:
- 從手機向已連接的 IM 機器人發送一條消息。
- 點擊左側「手機聊天」面板:頂部列出發現的手機會話(例如帶
QQ ·前綴與日期),默認選中最新的手機通道會話。 - 面板實時顯示你的消息與助手回覆;需要更早記錄時點「加載更早消息」(當前事件窗口約 500 條,更早內容靠該按鈕擴展)。
- 若一次手機對話被 DSH 拆成多個會話,在頂部下拉中切換即可。
配置與開發¶
一般情況下無需配置。僅在 dsh-im 管理 RPC 不可用、且手機機器人工作區不是默認路徑時,需改 src/plugin.js 頂部的 FALLBACK_WORKSPACES 數組(填工作區絕對路徑),再執行 pnpm install 與 pnpm run build 重新生成 client.js。普通使用可直接用倉庫已提交的 client.js。
適用場景與注意¶
適合誰:已經在用 dsh-im 把手機 IM 接進 DSH,希望在桌面側欄常駐一個只讀、帶公式與圖片渲染的聊天視圖,而不是隻在會話列表裏逐條點開。
權限與安全:插件以當前 DSH 進程權限運行,能訪問你已打開的會話與附件;安裝前建議瀏覽 GitHub 源碼 與 MIT 許可證,並確認社區插件目錄 skillhub.cn 條目 與倉庫一致。DSH 社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
已知限制(摘自 README):純只讀;會話發現爲啓發式;依賴 dsh-im 公開管理 RPC,協議變更可能影響自動發現;首次安裝後必須刷新頁面一次(Electron 桌面端限制)。
結尾¶
dsh-im-phone-chat 的定位是 dsh-im 配套:左側欄入口 + 實時氣泡鏡像 + Markdown/LaTeX/圖片,與 dsh-im 自帶管理面板、dsh-im-connect 的 Channels 會話列表、以及 DSH 間聊天類插件方向不同。若要安裝或提 issue,可從目錄頁 https://www.skillhub.cn/plugins/FST-EchoFly/dsh-im-phone-chat 進入,或直接打開 https://github.com/FST-EchoFly/dsh-im-phone-chat。