前言¶
DSH 的理念是「一切皆插件」,移動端操控能力也可以作爲插件接入 agent 的工具集。dsh-mobile-control 就是這樣一個 DSH 插件:它通過 WebDriverAgent(WDA)驅動 iOS 模擬器,提供截圖、查找 UI 元素、點擊、打開 URL、導出可訪問性樹等操作。
與依賴 macOS 輔助功能或 idb 的路徑不同,這個插件使用 WDA 的 HTTP 服務。安裝後,它會向 agent 註冊 8 個 mobile_* DSH 工具,讓會話裏可以直接用自然語言或工具調用完成 iOS 模擬器操作。
這是什麼¶
dsh-mobile-control 是 DeepSeek Harness(DSH)插件,定位爲:
DeepSeek Harness 插件 · 操控手機 / DSH plugin for controlling mobile devices
倉庫由 PangYiMing 維護,許可證爲 MIT。
它解決的核心問題是:讓 DSH agent 能通過一組 mobile_* 工具操作 iOS 模擬器。插件底層依賴 WDA 驅動,能力包括截圖、元素查找、點擊、打開 URL 或自定義 scheme、導出當前前臺 app 的可訪問性樹 XML,以及使用 simctl privacy grant 做隱私預授權。
核心功能¶
下面是已覈實的主要能力:
- 通過 WebDriverAgent(WDA)驅動 iOS 模擬器
- WDA 暴露
localhost:8100HTTP 服務 - 端口自適應;真實端口可能寫入
~/.cache/webdriveragent/wda.port - iOS 模擬器截圖
- 按 accessibility label / class 查找 UI 元素
- 點擊元素,或按邏輯點座標點擊
- 打開 URL 或自定義 scheme 深鏈
- 導出當前前臺 app 的可訪問性樹 XML
- 使用
simctl privacy grant預授權,避免系統彈窗擋自動化 - WDA 冪等啓動與端口自適應
- 安裝插件後註冊 8 個
mobile_*DSH 工具
WDA 的特點是:零 macOS 輔助功能授權、不依賴 idb,並且可以點任意 app,包括系統彈窗。
安裝與啓用¶
先確認運行環境。package.json 聲明:
Node >=20.11peerDependencies爲@deepseek-ai/dsh-tools和@deepseek-ai/cordis
然後從 GitHub 安裝:
dsh plugin --profile demo add github:PangYiMing/dsh-mobile-control
GitHub 源碼安裝需要 prepare 構建。安裝完成後,插件會註冊 8 個 mobile_* DSH 工具,供 agent 在會話中調用。
典型用法¶
1、啓動 WDA¶
先啓動 WDA:
bash scripts/wda-up.sh [UDID] # 不傳 UDID 用當前 Booted 的模擬器
腳本採用冪等啓動:如果 WDA 已在運行,直接返回;如果有緩存,可跳過編譯;如果沒有緩存,需要先完成 clone 和編譯。端口自適應時,真實端口可能寫入:
~/.cache/webdriveragent/wda.port
插件和腳本都會讀取該端口,而不是固定假定 8100。
2、檢查 WDA 狀態¶
默認情況下可以檢查 localhost:8100/status:
curl -s localhost:8100/status | head -c 200
如果端口自適應後實際端口不是 8100,應使用從 ~/.cache/webdriveragent/wda.port 讀取到的端口替換 8100。
3、在 agent 會話中調用¶
安裝插件後,可以直接在 agent 會話裏用自然語言觸發工具。例如:
用 mobile_wda_up 啓動 WDA,然後 mobile_tap 點 (268, 492)
下面是一些已覈實的工具用法示例:
- 使用
mobile_find_element按 accessibility label / class 找 UI 元素,返回元素 id - 使用
mobile_tap點元素(elementId)或按邏輯點座標(x/y)點擊 - 使用
mobile_open_url打開 URL 或自定義 scheme 深鏈 - 使用
mobile_grant_privacy預授權,避免系統彈窗擋自動化
插件還提供 iOS 模擬器截圖、導出當前前臺 app 的可訪問性樹 XML 等能力。
適用場景與注意¶
適合的場景:
- 在 macOS 上使用完整版 Xcode
- 需要 DSH agent 自動操作 iOS 模擬器
- 不想依賴 macOS 輔助功能授權
- 不想依賴 idb
- 需要點擊任意 app,包括系統彈窗
注意以下限制:
- 需要完整版 Xcode;XCUITest 靠
testmanagerd拉起,純simctl launch起不來 HTTP 服務 - 真機 WDA 必須用含設備 UDID 的描述文件重新簽名,不能直接複用模擬器包
- 模擬器包未簽名,
arch=arm64+x86_64,可跨 Mac 複用 - Android(ADB)支持、元素級滑動 / 長按 / 輸入文本在路線圖中未完成
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與 MIT 許可證 - 社區目錄是獨立站點,不等同於官方應用商店
結尾¶
dsh-mobile-control 把 WDA 驅動的 iOS 模擬器操控能力封裝成 DSH 工具。適合需要在 agent 會話裏完成截圖、找元素、點擊、打開 URL、導出可訪問性樹和隱私預授權的場景。
相關鏈接:
- GitHub 源碼:
https://github.com/PangYiMing/dsh-mobile-control - 目錄頁:未在本次已覈實資料中給出具體 URL