前言¶
用 DSH 跑 agent 寫代碼、改配置時,手機上的驗證碼、羣消息、短視頻往往還要單獨拿起來看。窗口在電腦和手機之間來回切,注意力被拆成兩段。常見做法是另開 scrcpy 窗口或第三方投屏工具,但和 DSH 右側欄、對話頁籤不在同一套界面裏,會話狀態也不好一起保留。
下面介紹社區插件 dsh-phone-mirror(維護者 liyuhan7,分類:客戶端):把安卓手機或平板畫面放進 DSH 右側欄,並用鼠標鍵盤直接反控。底層使用 scrcpy 5.0.1 編碼 H.264,瀏覽器端 WebCodecs 解碼;僅支持 Windows。插件在 SkillHub 目錄 收錄,源碼與說明見 GitHub(MIT 許可證,當前 npm 版本 0.1.3)。
這是什麼¶
dsh-phone-mirror 是 DeepSeek Harness(DSH)的客戶端插件:在右側欄增加「手機」頁籤,選中已 adb 授權的設備即可連接。它解決的是「agent 在電腦上跑、手機操作仍要離席」的問題,把投屏和反控收進 DSH 側邊欄,而不是再掛一個獨立窗口。
DSH 生態主張「一切皆插件」;SkillHub 等社區目錄由社區維護,與 DeepSeek / 幻方無官方從屬關係。安裝前建議自行查看倉庫源碼與許可證,並記住插件以當前 DSH 進程權限運行。
核心功能¶
以下能力均來自項目 README,可按需裁剪使用。
頁籤與連接¶
- 在右側欄「+」裏添加「手機」頁籤;畫面按 contain 比例鋪滿。
- 切換頁籤保留會話;關閉頁籤會斷開並釋放設備端進程。
- 連接成功後,標題行示例爲
BKY-W10 · 1048×1600 · 30fps(設備名 · 分辨率 · 實時幀率)。
鼠標鍵盤反控¶
- 點按、拖拽、滾輪按 scrcpy 控制協議回傳。
- ASCII 字符走按鍵注入;中文等非 ASCII 經設備剪貼板粘貼,組字時面板底部顯示拼音。
- 點擊畫面接管鍵盤,按 Esc 交還焦點;工具欄可全屏。
音頻與性能¶
- 設備支持時轉發 Opus 48 kHz 立體聲,經 AudioWorklet 播放;不支持則自動改爲無聲會話(轉發聲音需 Android 11+)。
- 拉流、H.264 解碼、繪製與音頻解碼優先在 Worker 線程完成,減輕 DSH 主線程卡頓;無 Worker 時退回主線程。
降級與無線¶
- scrcpy 失敗後自動用
adb screencap週期截圖(默認 260 ms 一幀),幀率低但兼容面更廣。 - 面板底部「轉無線」將 USB 調試切到 TCP 並自動連上,拔線後可繼續投屏;Android 11+ 可用「配對」填寫無線調試頁的地址與 6 位配對碼。
畫質檔位¶
面板可選:流暢 720 / 標準 1080 / 高清 1600。畫面發花或全黑時可點「重建畫面」,丟棄解碼器並重新拉流。
安裝與啓用¶
環境要求(摘自 README):
- Windows(內置 adb 路徑固定爲
tools/platform-tools/adb.exe) - DSH
>= 0.2.0-rc.1 < 0.3.0 - Node.js 20+(僅首次下載工具與構建時使用)
- 安卓設備已開啓「開發者選項 → USB 調試」並完成授權
安裝(必須使用資料中的命令):
# npm 包,預構建安裝
dsh plugin --profile <profile> add dsh-phone-mirror
# 或從倉庫安裝
dsh plugin --profile <profile> add "github:liyuhan7/dsh-phone-mirror"
首次運行會自動下載 platform-tools(約 8 MB)到插件目錄;也可在插件目錄手動執行:
npm run fetch:tools
系統裏已有 adb 時,可在配置裏指定 adbPath 跳過下載。
運行步驟:
- 重啓 DSH,右側欄點「+」添加「手機」頁籤。
- 頂部下拉選中設備,點「連接」。
- 設備彈出「允許 USB 調試嗎?」時勾選「始終允許」。
- 需要無線時:點面板底部「轉無線」,提示已切到無線後拔線。
若 dsh plugin 拒絕操作 desktop profile:該 profile 由 Electron 應用獨佔託管,需直接編輯 profile 的 package.json,在 dependencies 裏添加 "dsh-phone-mirror": "link:D:/path/to/dsh-phone-mirror",並把插件名加入 dsh.profile.bundles,再執行 pnpm install(路徑按本機實際修改)。
典型用法¶
README 中的操作對照:
點按 / 拖拽 / 滾輪 直接操作設備
鍵盤 點擊畫面接管,Esc 交還焦點
全屏 工具欄「全屏」
畫質 流暢 720 / 標準 1080 / 高清 1600
無線連接 底部「轉無線」把 USB 調試切到 TCP 並自動連上
底部「配對」填無線調試頁上的配對地址與 6 位配對碼
斷開連接 只斷電腦與平板之間的無線通道,USB 不受影響
在 profile 的 cordis.patch.yml 裏可覆蓋插件配置,例如:
- id: dsh-phone-mirror
config:
maxSize: 1600
maxFps: 60
videoBitRate: 8000000
常用字段:mode(默認 auto,先試 scrcpy,失敗再降級截圖)、maxSize(默認 1280)、maxFps(默認 60)、videoBitRate(默認 8000000 bps)、screencapIntervalMs(默認 260)、audio(默認 true)、adbPath、serverJar。
適用場景與注意¶
適合誰:主要在 Windows 上用 DSH 開發或跑 agent,又需要邊看電腦邊操作安卓 App(回消息、看通知、簡單刷視頻)的開發者。HarmonyOS 等出現在 package.json 關鍵詞中,具體兼容性以 adb / 文檔爲準。
務必注意:
- 僅 Windows;Mac / Linux 不在 README 支持範圍內。
- 插件與 DSH 同進程權限,安裝前請審閱 源碼倉庫 與 MIT 許可證。
adb devices爲空但手機已連接時,常見原因是 USB 接口被廠商驅動佔用,需在設備管理器中改爲 Android ADB Interface 或安裝 Google USB Driver。- 無聲音時查看面板喇叭按鈕及
/dsh-phone-mirror/api/status中的session.audio;付費視頻等 DRM 內容可能只能黑屏;設備靜止時幀率顯示個位數屬正常現象。
結尾¶
dsh-phone-mirror 把 scrcpy 投屏與 WebCodecs 解碼嵌進 DSH 右側欄,減少 agent 開發與手機操作之間的上下文切換。需要詳情、Issue 與各品牌 USB 調試說明時,請打開目錄頁 skillhub.cn/plugins/liyuhan7/dsh-phone-mirror 與 GitHub liyuhan7/dsh-phone-mirror。