npx claudepluginhub alexgladkov/claude-in-mobile --plugin claude-in-mobileThis skill uses the workspace's default tool permissions.
Fast CLI for mobile device automation across **Android** (via ADB), **iOS** (via simctl), **Aurora OS** (via audb), and **Desktop** (via companion JSON-RPC app).
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides TDD-style skill creation: pressure scenarios as tests, baseline agent failures, write docs to enforce compliance, verify with RED-GREEN-REFACTOR.
Fast CLI for mobile device automation across Android (via ADB), iOS (via simctl), Aurora OS (via audb), and Desktop (via companion JSON-RPC app).
Binary: claude-in-mobile (ensure it's in PATH or use full path to the built binary).
Most commands accept platform-specific device selectors:
| Flag | Description | Platforms |
|---|---|---|
--device <serial> | Android/Aurora device serial (default: first connected) | Android, Aurora |
--simulator <name> | iOS Simulator name (default: booted) | iOS |
--companion-path <path> | Path to Desktop companion app (or set MOBILE_TOOLS_COMPANION env) | Desktop |
List connected devices across platforms.
claude-in-mobile devices # All platforms
claude-in-mobile devices android # Android only
claude-in-mobile devices ios # iOS simulators only
claude-in-mobile devices aurora # Aurora devices only
Platforms: Android, iOS, Aurora
Capture a screenshot. Outputs base64 to stdout by default, or save to file with -o.
claude-in-mobile screenshot android
claude-in-mobile screenshot ios
claude-in-mobile screenshot aurora
claude-in-mobile screenshot desktop --companion-path /path/to/companion
# Save to file
claude-in-mobile screenshot android -o screen.png
# Compress for LLM (resize + JPEG quality reduction)
claude-in-mobile screenshot android --compress --max-width 800 --quality 60
| Flag | Description | Default |
|---|---|---|
-o, --output <path> | Save to file instead of base64 stdout | stdout |
-c, --compress | Enable compression (resize + quality) | false |
--max-width <px> | Max width when compressing | 1024 |
--max-height <px> | Max height when compressing | unlimited |
--quality <1-100> | JPEG quality when compressing | 80 |
--monitor-index <n> | Monitor index (Desktop) | primary |
Platforms: Android, iOS, Aurora, Desktop
Capture screenshot with UI element bounding boxes drawn over it. Useful for visual debugging and identifying tap targets.
claude-in-mobile annotate android -o annotated.png
claude-in-mobile annotate ios -o annotated.png
| Flag | Description |
|---|---|
-o, --output <path> | Save to file instead of base64 stdout |
Platforms: Android, iOS
Parse current screen and return categorized interactive elements as structured JSON. Groups elements into buttons, inputs, texts, etc. Useful for automated test flows.
claude-in-mobile analyze-screen
claude-in-mobile analyze-screen --device emulator-5554
Platforms: Android only
Get screen resolution in pixels.
claude-in-mobile screen-size android
claude-in-mobile screen-size ios
Platforms: Android, iOS
Tap at exact coordinates, or by text/resource-id/index.
# By coordinates
claude-in-mobile tap android 500 800
claude-in-mobile tap ios 200 400
claude-in-mobile tap aurora 300 600
claude-in-mobile tap desktop 100 200 --companion-path /path/to/companion
# By text (searches UI tree, finds element, taps center)
claude-in-mobile tap android 0 0 --text "Login"
claude-in-mobile tap desktop 0 0 --text "Submit" --companion-path /path/to/companion
# By resource-id (Android)
claude-in-mobile tap android 0 0 --resource-id "btn_login"
# By element index from ui-dump (Android)
claude-in-mobile tap android 0 0 --index 5
| Flag | Description | Platforms |
|---|---|---|
--text <text> | Tap element matching text | Android, Desktop |
--resource-id <id> | Tap element by resource-id | Android |
--index <n> | Tap element by ui-dump index | Android |
Platforms: Android, iOS, Aurora, Desktop
Find an element by text, resource-id, or content-desc in the UI hierarchy and tap it. Shortcut for find + tap.
claude-in-mobile tap-text android "Submit"
claude-in-mobile tap-text ios "Login"
Platforms: Android, iOS
Search UI hierarchy for an element by text, resource-id, or content-desc. Returns element coordinates and bounds.
claude-in-mobile find android "Login"
claude-in-mobile find ios "Submit"
Platforms: Android, iOS
Fuzzy-match an element by description and tap it. Uses confidence scoring for inexact matches.
claude-in-mobile find-and-tap "Submit Order" --min-confidence 50
claude-in-mobile find-and-tap "Cancel" --min-confidence 30
| Flag | Description | Default |
|---|---|---|
--min-confidence <0-100> | Minimum match confidence threshold | 30 |
Platforms: Android only
Long press at coordinates or by text. Duration configurable in milliseconds.
# By coordinates
claude-in-mobile long-press android 500 800 -d 2000
claude-in-mobile long-press ios 300 600
claude-in-mobile long-press aurora 400 700
# By text (Android: finds element, long presses at center)
claude-in-mobile long-press android 0 0 --text "Delete"
| Flag | Description | Default |
|---|---|---|
-d, --duration <ms> | Press duration in milliseconds | 1000 |
--text <text> | Find by text and long press | — |
Platforms: Android, iOS, Aurora
Swipe gesture between coordinates, or by named direction (up/down/left/right).
# By coordinates (x1 y1 x2 y2)
claude-in-mobile swipe android 500 1500 500 500 -d 300
# By direction (uses screen center, swipes 400px)
claude-in-mobile swipe android 0 0 0 0 --direction up
claude-in-mobile swipe ios 0 0 0 0 --direction left
claude-in-mobile swipe aurora 0 0 0 0 --direction down
| Flag | Description | Default |
|---|---|---|
-d, --duration <ms> | Swipe duration in milliseconds | 300 |
--direction <dir> | Swipe direction: up, down, left, right (overrides coordinates) | — |
Platforms: Android, iOS, Aurora
Type text into the currently focused field.
claude-in-mobile input android "Hello world"
claude-in-mobile input ios "Search query"
claude-in-mobile input aurora "user@example.com"
claude-in-mobile input desktop "text" --companion-path /path/to/companion
Platforms: Android, iOS, Aurora, Desktop
Press a hardware/software key or button.
claude-in-mobile key android back
claude-in-mobile key android home
claude-in-mobile key android enter
claude-in-mobile key android power
claude-in-mobile key ios home
claude-in-mobile key aurora back
claude-in-mobile key desktop enter --companion-path /path/to/companion
Common keys: home, back, enter, power, volume_up, volume_down, tab, delete.
Platforms: Android, iOS, Aurora, Desktop
Dump the current UI hierarchy. Default format is JSON; also supports XML for Android.
claude-in-mobile ui-dump android
claude-in-mobile ui-dump android -f xml
claude-in-mobile ui-dump ios
claude-in-mobile ui-dump desktop --companion-path /path/to/companion
| Flag | Description | Default |
|---|---|---|
-f, --format <fmt> | Output format: json or xml | json |
--show-all | Include non-interactive elements (Android) | false |
Platforms: Android, iOS, Desktop
List installed applications, optionally filtered by name.
claude-in-mobile apps android
claude-in-mobile apps android -f "myapp"
claude-in-mobile apps ios
claude-in-mobile apps aurora
| Flag | Description |
|---|---|
-f, --filter <text> | Filter by package/bundle name |
Platforms: Android, iOS, Aurora
Launch an application by package name, bundle ID, or path.
claude-in-mobile launch android com.example.app
claude-in-mobile launch ios com.example.app
claude-in-mobile launch aurora harbour-myapp
claude-in-mobile launch desktop /path/to/app --companion-path /path/to/companion
Platforms: Android, iOS, Aurora, Desktop
Force-stop/kill an application.
claude-in-mobile stop android com.example.app
claude-in-mobile stop ios com.example.app
claude-in-mobile stop aurora harbour-myapp
claude-in-mobile stop desktop "AppName" --companion-path /path/to/companion
Platforms: Android, iOS, Aurora, Desktop
Install an application package onto the device.
claude-in-mobile install android /path/to/app.apk
claude-in-mobile install ios /path/to/app.app
claude-in-mobile install aurora /path/to/app.rpm
Platforms: Android, iOS, Aurora
Remove an installed application from the device.
claude-in-mobile uninstall android com.example.app
claude-in-mobile uninstall ios com.example.app
claude-in-mobile uninstall aurora harbour-myapp
Platforms: Android, iOS, Aurora
Copy a local file to the device filesystem.
claude-in-mobile push-file android /local/path /sdcard/remote/path
claude-in-mobile push-file aurora /local/file /home/user/file
Platforms: Android, Aurora
Copy a file from device filesystem to local machine.
claude-in-mobile pull-file android /sdcard/remote/file /local/path
claude-in-mobile pull-file aurora /home/user/file /local/file
Platforms: Android, Aurora
Read current clipboard content from the device.
claude-in-mobile get-clipboard android
claude-in-mobile get-clipboard ios
claude-in-mobile get-clipboard desktop --companion-path /path/to/companion
Platforms: Android, iOS, Desktop
Set clipboard content on the device.
claude-in-mobile set-clipboard android "copied text"
claude-in-mobile set-clipboard ios "copied text"
claude-in-mobile set-clipboard desktop "text" --companion-path /path/to/companion
Platforms: Android, iOS, Desktop
Retrieve device logs. Supports line limit and filtering.
claude-in-mobile logs android -l 50
claude-in-mobile logs android -f "MyTag"
claude-in-mobile logs ios -l 200
claude-in-mobile logs aurora -l 100
| Flag | Description | Default |
|---|---|---|
-l, --lines <n> | Number of log lines to retrieve | 100 |
-f, --filter <text> | Filter by tag/process/text | — |
--level <V/D/I/W/E/F> | Log level filter (Android) | — |
--tag <tag> | Filter by tag (Android) | — |
--package <pkg> | Filter by package name (Android) | — |
Platforms: Android, iOS, Aurora
Clear all device logs.
claude-in-mobile clear-logs android
claude-in-mobile clear-logs ios
claude-in-mobile clear-logs aurora
Platforms: Android, iOS, Aurora
Get device system information (battery, memory, OS version, etc.).
claude-in-mobile system-info android
claude-in-mobile system-info ios
claude-in-mobile system-info aurora
Platforms: Android, iOS, Aurora
Get the currently displayed activity or foreground app.
claude-in-mobile current-activity android
claude-in-mobile current-activity ios
Platforms: Android, iOS
Reboot the device or restart the simulator.
claude-in-mobile reboot android
claude-in-mobile reboot ios
Platforms: Android, iOS
Control screen power state (turn display on/off).
claude-in-mobile screen on
claude-in-mobile screen off
Platforms: Android only
Open a URL in the device's default browser.
claude-in-mobile open-url android "https://example.com"
claude-in-mobile open-url ios "https://example.com"
claude-in-mobile open-url aurora "https://example.com"
Platforms: Android, iOS, Aurora
Execute an arbitrary shell command on the device.
claude-in-mobile shell android "ls /sdcard"
claude-in-mobile shell ios "ls ~/Documents"
claude-in-mobile shell aurora "uname -a"
Platforms: Android, iOS, Aurora
Pause execution for a specified duration. Useful in automation scripts between actions.
claude-in-mobile wait 2000 # wait 2 seconds
claude-in-mobile wait 500 # wait 500ms
Platforms: cross-platform (no device interaction)
List all open desktop windows with their IDs, titles, positions, and sizes.
claude-in-mobile get-window-info --companion-path /path/to/companion
Platforms: Desktop only
Bring a desktop window to front by its ID (from get-window-info).
claude-in-mobile focus-window "window-id" --companion-path /path/to/companion
Platforms: Desktop only
Resize a desktop window to specified width and height.
claude-in-mobile resize-window "window-id" 800 600 --companion-path /path/to/companion
Platforms: Desktop only
Launch a desktop application by path.
claude-in-mobile launch-desktop-app /path/to/app --companion-path /path/to/companion
Platforms: Desktop only
Stop a running desktop application by name.
claude-in-mobile stop-desktop-app "AppName" --companion-path /path/to/companion
Platforms: Desktop only
Get CPU/memory usage metrics for running desktop applications.
claude-in-mobile get-performance-metrics --companion-path /path/to/companion
Platforms: Desktop only
List connected monitors with resolutions and positions.
claude-in-mobile get-monitors --companion-path /path/to/companion
Platforms: Desktop only
For full platform support matrix and per-platform details (backends, supported/unsupported commands), see references/platform-support.md.
--compress on screenshots when sending to LLM — reduces token usage significantlyanalyze-screen gives structured JSON of buttons/inputs/texts — useful for automated testingfind-and-tap uses fuzzy matching with confidence scoring — good for flaky element namesaudb (Aurora Debug Bridge) — similar to ADBui-dump + tap --index N for reliable element interaction by indexwait between actions in automation scripts to allow UI transitions