android
android.close_app
Close App
Effects: send
Close an app on the Android device (safe method: HOME key + am kill). Never uses am force-stop (corrupts PackageManager). Example: 'com.whatsapp'.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
package | string | yes | Android package name to close (e.g., 'com.whatsapp') |
android.current_app
Get Current App
Effects: read
Get the currently focused app and activity on the Android device.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
android.install_apk
Install APK
Effects: send
Install an app on the Android device from an APK or split bundle (XAPK/APKS — how most large modern apps ship). Provide apk_url (an https link the device downloads itself — preferred, and the only workable option for real apps) or, for tiny payloads, as apk_base64. Max 300MB. Large apps can take several minutes; if this call times out the install keeps running on the device — verify with the app-list tool instead of re-installing. Use reinstall=true to uninstall then install (for signature changes).
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
apk_base64 | string | no | APK as base64-encoded bytes. Only usable for tiny payloads (the whole blob is an LLM tool argument); prefer apk_url. |
apk_url | string | no | https URL of the APK — the server downloads it (preferred; the only practical option for real-sized apps). |
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
package | string | no | Expected package name (for verification) |
reinstall | boolean | no | Uninstall first if package exists (for different signature). OMIT for a normal install (default false). |
android.key
Send Key Event
Effects: send
Send a key event to the Android device. Use keycode (e.g., '3' for HOME, '4' for BACK) or common name (e.g., 'HOME').
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
code | string | yes | Key code: numeric (e.g., '3', '4') or common name (HOME, BACK, POWER, VOLUME_UP, VOLUME_DOWN, MENU, SEARCH, ENTER, DEL) |
android.launch_app
Launch App
Effects: send
Launch an app on the Android device by package name. Example: 'com.whatsapp'. Returns success status and process ID if launched.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
package | string | yes | Android package name to launch (e.g., 'com.whatsapp') |
android.list_apps
List Apps
Effects: read
List installed apps on the Android device. By default returns third-party apps; use all=true for all apps.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
all | boolean | no | Include system apps. OMIT for third-party only (default false). |
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
android.screenshot
Take Screenshot
Effects: read
Capture a screenshot from the Android device. Returns JPEG image data encoded as base64.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
android.shell
Run Shell Command
Effects: read
Run an allowlisted shell command on the Android device. First element of cmd array must be allowlisted: input, pm, dumpsys, am, getprop, screencap, monkey, uiautomator, settings, wm, cmd, content, ls, cat, pidof, ps, echo, service.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
cmd | string | yes | Shell command to run (array form preferred, space-separated accepted). Example: 'getprop ro.build.version.release' or ['getprop', 'ro.build.version.release'] |
android.swipe
Swipe Screen
Effects: send
Swipe/drag on the Android device screen from one coordinate to another. Use for scrolling, opening app drawer, etc.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
duration_ms | integer | no | Duration of swipe in milliseconds (default: 300) |
x1 | integer | yes | Starting X coordinate in device pixels |
x2 | integer | yes | Ending X coordinate in device pixels |
y1 | integer | yes | Starting Y coordinate in device pixels |
y2 | integer | yes | Ending Y coordinate in device pixels |
android.tap
Tap Screen
Effects: send
Tap on the Android device screen at specified coordinates. Coordinates are in device pixels.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
x | integer | yes | X coordinate in device pixels |
y | integer | yes | Y coordinate in device pixels |
android.type
Type Text
Effects: send
Type text on the Android device keyboard.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |
text | string | yes | Text to type (max 500.0) |
android.ui_dump
Get UI Dump
Effects: read
Get UI structure dump from the Android device. Uses dumpsys (uiautomator OOM-kills on this build). Returns window list and focused activity for frame-based clicking.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | no | Android device channel_account ID. Omit when the workspace has a single Android device; REQUIRED when it has more than one (e.g. WhatsApp + LINE), else the call is rejected as ambiguous. |