🚀 Claude Mobile
Claude Mobile 是一款用於移動和桌面自動化的 MCP 服務器,支持 Android(通過 ADB)、iOS 模擬器(通過 simctl)、桌面(Compose Multiplatform)和 Aurora OS(通過 audb)。它就像 Claude in Chrome 一樣,但適用於移動設備和桌面應用程序。你可以通過 Claude 使用自然語言控制你的 Android 手機、模擬器、iOS 模擬器、桌面應用程序或 Aurora OS 設備。
🚀 快速開始
Claude Mobile 允許你通過自然語言控制多種平臺的設備和應用程序。通過簡單的命令,你可以執行諸如列出設備、截圖、點擊、輸入文本等操作。
✨ 主要特性
- 統一 API:相同的命令適用於 Android、iOS、桌面和 Aurora OS。
- 智能截圖:自動壓縮以實現最佳的大語言模型處理(不再有過大的圖像!)
- 帶註釋的截圖:帶有彩色邊界框和編號元素標籤的截圖,便於直觀理解 UI。
- 權限管理:以編程方式授予、撤銷和重置應用程序權限(Android 運行時權限、iOS 隱私服務)。
- 設備日誌:通過過濾器讀取 logcat/系統日誌以進行調試。
- UI 交互:通過座標或元素文本進行點擊、長按、滑動操作。
- 文本輸入:在聚焦字段中輸入文本。
- 應用控制:啟動、停止和安裝應用程序。
- 平臺選擇:明確指定目標平臺為 Android、iOS、桌面或 Aurora OS。
- 桌面支持:通過窗口管理、剪貼板和性能指標測試 Compose Multiplatform 桌面應用程序。
📦 安裝指南
一鍵安裝(適用於任何客戶端)
使用 add-mcp 可自動檢測已安裝的客戶端:
npx add-mcp claude-in-mobile -y
或者指定特定的客戶端:
npx add-mcp claude-in-mobile -a claude-code -y
npx add-mcp claude-in-mobile -a opencode -y
npx add-mcp claude-in-mobile -a cursor -y
Claude Code CLI
claude mcp add --transport stdio mobile -- npx -y claude-in-mobile
若要全局添加(在所有項目中可用):
claude mcp add --scope user --transport stdio mobile -- npx -y claude-in-mobile
OpenCode
使用交互式設置:
opencode mcp add
或者手動添加到 opencode.json(項目根目錄或 ~/.config/opencode/opencode.json):
{
"mcp": {
"mobile": {
"type": "local",
"command": ["npx", "-y", "claude-in-mobile"],
"enabled": true
}
}
}
Cursor
添加到 .cursor/mcp.json:
{
"mcpServers": {
"mobile": {
"command": "npx",
"args": ["-y", "claude-in-mobile"]
}
}
}
任何 MCP 客戶端
打印適用於你的客戶端的配置片段:
npx claude-in-mobile --init <client-name>
從 npm 安裝
npx claude-in-mobile
從源代碼安裝
git clone https://github.com/AlexGladkov/claude-in-mobile.git
cd claude-in-mobile
npm install
npm run build:all
注意:若要支持桌面應用,你需要運行 npm run build:desktop(或 build:all)來編譯桌面配套應用。
使用本地構建版本與 MCP 客戶端配合
從源代碼構建後,將你的 MCP 客戶端指向本地的 dist/index.js,而不是使用 npx:
{
"mcpServers": {
"mobile": {
"command": "node",
"args": ["/path/to/claude-in-mobile/dist/index.js"]
}
}
}
對於 OpenCode(opencode.json):
{
"mcp": {
"mobile": {
"type": "local",
"command": ["node", "/path/to/claude-in-mobile/dist/index.js"],
"enabled": true
}
}
}
手動配置
添加到你的 Claude Code 設置(~/.claude.json 或項目設置):
{
"mcpServers": {
"mobile": {
"command": "npx",
"args": ["-y", "claude-in-mobile"]
}
}
}
Windows 系統
claude mcp add --transport stdio mobile -- cmd /c npx -y claude-in-mobile
🔧 技術細節
系統要求
Android
- 已安裝 ADB 並將其添加到系統路徑。
- 已連接的 Android 設備(啟用 USB 調試)或模擬器。
iOS
桌面
- macOS 系統(計劃支持 Windows/Linux)。
- 用於構建桌面配套應用的 JDK 17+。
- 待測試的 Compose Multiplatform 桌面應用程序。
Aurora OS
- 已安裝 audb CLI 並將其添加到系統路徑(
cargo install audb-client)。
- 已連接且啟用 SSH 的 Aurora OS 設備。
- 設備上需要安裝 Python 以支持點擊/滑動操作:
devel-su pkcon install python。
可用工具
核心工具(適用於所有平臺)
| 工具 |
Android |
iOS |
桌面 |
Aurora |
描述 |
list_devices |
✅ |
✅ |
✅ |
✅ |
列出所有已連接的設備 |
set_device |
✅ |
✅ |
✅ |
✅ |
選擇活動設備 |
screenshot |
✅ |
✅ |
✅ |
✅ |
截圖 |
tap |
✅ |
✅ |
✅ |
⚠️ |
在指定座標或通過文本/標籤進行點擊(iOS:元素點擊需要 WebDriverAgent) |
long_press |
✅ |
✅ |
✅ |
✅ |
長按手勢 |
swipe |
✅ |
✅ |
✅ |
⚠️ |
按方向或座標滑動(Aurora 需要 Python) |
input_text |
✅ |
✅ |
✅ |
❌ |
輸入文本 |
press_key |
✅ |
✅ |
✅ |
✅ |
按下硬件按鈕 |
launch_app |
✅ |
✅ |
❌ |
✅ |
啟動應用程序 |
stop_app |
✅ |
✅ |
❌ |
✅ |
停止應用程序 |
install_app |
✅ |
✅ |
❌ |
✅ |
安裝 APK/.app/.rpm |
list_apps |
❌ |
❌ |
❌ |
✅ |
列出已安裝的應用程序(僅適用於 Aurora) |
get_ui |
✅ |
✅ |
✅ |
❌ |
獲取 UI 層次結構(iOS:需要 WebDriverAgent) |
find_element |
✅ |
✅ |
✅ |
❌ |
通過文本/ID/標籤查找元素(iOS:需要 WebDriverAgent) |
annotate_screenshot |
✅ |
✅ |
❌ |
❌ |
帶有彩色邊界框和編號元素標籤的截圖 |
grant_permission |
✅ |
✅ |
❌ |
❌ |
授予應用程序權限(Android:運行時權限,iOS:隱私服務) |
revoke_permission |
✅ |
✅ |
❌ |
❌ |
撤銷應用程序權限 |
reset_permissions |
✅ |
✅ |
❌ |
❌ |
重置應用程序的所有權限 |
get_current_activity |
✅ |
❌ |
❌ |
❌ |
獲取前臺活動 |
open_url |
✅ |
✅ |
❌ |
❌ |
在瀏覽器中打開 URL(Aurora 尚未實現) |
shell |
✅ |
✅ |
❌ |
✅ |
運行 shell 命令 |
wait |
✅ |
✅ |
✅ |
✅ |
等待指定時長 |
get_logs |
✅ |
✅ |
❌ |
✅ |
獲取設備日誌(logcat/系統日誌) |
clear_logs |
✅ |
⚠️ |
❌ |
✅ |
清除日誌緩衝區 |
get_system_info |
✅ |
❌ |
❌ |
✅ |
獲取電池、內存信息 |
wait_for_element |
✅ |
✅ |
❌ |
❌ |
等待元素出現(輪詢 + 超時) |
assert_visible |
✅ |
✅ |
❌ |
❌ |
斷言元素可見(通過/失敗) |
assert_not_exists |
✅ |
✅ |
❌ |
❌ |
斷言元素不存在(通過/失敗) |
batch_commands |
✅ |
✅ |
✅ |
✅ |
一次性執行多個命令 |
get_webview |
✅ |
❌ |
❌ |
❌ |
通過 Chrome DevTools 協議檢查 WebView |
push_file |
❌ |
❌ |
❌ |
✅ |
上傳文件(僅適用於 Aurora) |
pull_file |
❌ |
❌ |
❌ |
✅ |
下載文件(僅適用於 Aurora) |
桌面特定工具
| 工具 |
描述 |
set_target |
設置目標平臺(android/ios/desktop) |
get_target |
獲取當前目標平臺 |
launch_desktop_app |
啟動 Compose 桌面應用程序 |
stop_desktop_app |
停止正在運行的桌面應用程序 |
get_window_info |
獲取桌面窗口的位置和大小 |
focus_window |
將桌面窗口置於前臺 |
resize_window |
調整桌面窗口的大小 |
get_clipboard |
獲取系統剪貼板內容 |
set_clipboard |
設置系統剪貼板內容 |
get_performance_metrics |
獲取桌面應用程序的 CPU/內存使用情況 |
有關詳細的桌面 API 文檔,請參閱 Desktop Specification
💻 使用示例
基礎用法
只需自然地與 Claude 對話:
"Show me all connected devices"
"Take a screenshot of the Android emulator"
"Take a screenshot on iOS"
"Tap on Settings"
"Swipe down to scroll"
"Type 'hello world' in the search field"
"Press the back button on Android"
"Open Safari on iOS"
"Switch to iOS simulator"
"Run the app on both platforms"
權限管理
"Grant camera permission to com.example.app on Android"
"Revoke location access from com.example.app"
"Reset all permissions for com.apple.Maps on iOS"
帶註釋的截圖
"Take an annotated screenshot" → 帶有綠色(可點擊)和紅色(不可點擊)邊界框 + 編號元素索引的截圖
平臺選擇
你可以明確指定平臺:
"Screenshot on android" → 使用 Android 設備
"Screenshot on ios" → 使用 iOS 模擬器
"Screenshot on desktop" → 使用桌面應用程序
"Screenshot on aurora" → 使用 Aurora OS 設備
"Screenshot" → 使用最後活動的設備
或者設置活動設備:
"Use the iPhone 15 simulator"
"Switch to the Android emulator"
"Switch to desktop"
"Switch to Aurora device"
桌面示例
"Launch my desktop app from /path/to/app"
"Take a screenshot of the desktop app"
"Get window info"
"Resize window to 1280x720"
"Tap at coordinates 100, 200"
"Get clipboard content"
"Set clipboard to 'test text'"
"Get performance metrics"
"Stop the desktop app"
Aurora 示例
"List all Aurora devices"
"Take a screenshot on Aurora"
"Tap at coordinates 100, 200 on Aurora"
"Launch ru.example.app on Aurora"
"List installed apps on Aurora device"
"Get logs from Aurora device"
"Push file.txt to /home/defaultuser/ on Aurora device"
原生 CLI
這是一個 2 MB 的原生 Rust 二進制文件,包含所有相同的命令,無需 Node.js 和依賴項。
安裝 CLI
brew tap AlexGladkov/claude-in-mobile
brew install claude-in-mobile
或者從 Releases 下載。
與 MCP 相比的優勢
- 易於安裝:使用
brew install 或複製單個 2 MB 的二進制文件。
- 無依賴項:無需 Node.js、npm 等。
- 可從終端使用:直接運行命令,無需 Claude Code 或 MCP 客戶端。
- 測試自動化:編寫適用於任何平臺的通用
.sh 腳本,無需瞭解平臺內部機制。
- 節省令牌:僅在使用時加載技能文檔;MCP 在每個請求中加載所有工具模式,在會話中會快速累積。
- 速度快:命令啟動時間約為 5ms(Rust),而 Node.js MCP 約為 500ms。
- 適用於 CI/CD:具有退出代碼、標準輸出/錯誤輸出,可在任何環境中運行。
測試腳本示例
#!/bin/bash
claude-in-mobile launch android com.example.app
claude-in-mobile wait 2000
claude-in-mobile tap android 0 0 --text "Login"
claude-in-mobile input android "test@example.com"
claude-in-mobile screenshot android -o result.png
claude-in-mobile ui-dump android | grep "Welcome" && echo "PASS" || echo "FAIL"
Claude Code 插件
claude plugin marketplace add AlexGladkov/claude-in-mobile
claude plugin install claude-in-mobile@claude-in-mobile
安裝後,Claude Code 可以使用自然語言控制設備。技能僅在需要時加載到上下文中,不使用時不會產生令牌開銷。
有關完整的 CLI 文檔,請參閱 cli/README.md。
iOS WebDriverAgent 設置
若要進行完整的 iOS UI 檢查和基於元素的交互,需要 WebDriverAgent。它支持以下功能:
get_ui - JSON 可訪問性樹檢查
- 使用
label 或 text 參數的 tap - 基於元素的點擊
find_element - 元素髮現和查詢
swipe - 改進的手勢模擬
安裝
自動安裝(通過 Appium):
npm install -g appium
appium driver install xcuitest
手動安裝:
將 WDA_PATH 環境變量設置為你的 WebDriverAgent 位置:
export WDA_PATH=/path/to/WebDriverAgent
首次使用
首次使用時,WebDriverAgent 將自動執行以下操作:
- 從 Appium 安裝或
WDA_PATH 中發現。
- 使用 xcodebuild 進行構建(一次性,約 2 分鐘)。
- 在 iOS 模擬器上啟動。
- 通過端口 8100+ 的 HTTP 連接。
故障排除
構建失敗:
xcode-select --install
sudo xcodebuild -license accept
sudo xcode-select -s /Applications/Xcode.app
會話失敗:
- 確保模擬器已啟動:
xcrun simctl list | grep Booted
- 檢查端口可用性:
lsof -i :8100
- 嘗試重啟模擬器
手動測試:
cd ~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent
xcodebuild test -project WebDriverAgent.xcodeproj \
-scheme WebDriverAgentRunner \
-destination 'platform=iOS Simulator,id=<DEVICE_UDID>'
工作原理
┌─────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Claude Code │────▶│ │────▶│ Android (ADB) │
├─────────────┤ │ Claude Mobile │ └─────────────────┘
│ OpenCode │────▶│ MCP Server │ ┌─────────────────┐
├─────────────┤ │ │────▶│ iOS (simctl+WDA)│
│ Cursor │────▶│ (auto-detects │ └─────────────────┘
├─────────────┤ │ client via │ ┌─────────────────┐
│ Any MCP │────▶│ MCP protocol) │────▶│ Desktop (Compose)│
│ Client │ │ │ └─────────────────┘
└─────────────┘ │ │ ┌─────────────────┐
│ │────▶│ Aurora (audb) │
└──────────────────┘ └─────────────────┘
- Claude 通過 MCP 協議發送命令。
- 服務器將命令路由到適當的平臺(ADB、simctl+WDA、桌面配套應用或 audb)。
- 命令在你的設備或桌面應用程序上執行。
- 結果(截圖、UI 數據、指標)返回給 Claude。
📄 許可證
本項目採用 MIT 許可證。