act
Destructive
Do one thing on the phone, then wait until the screen settles. Prefer element numbers from observe over
coordinates; tap_text taps the element whose text contains text. Typing goes into the focused field (tap it
first) and works in any language. Returns what happened; "the screen did not change" means the action probably
missed - observe again.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | x in screenshot pixels (tap, long_press, swipe start) | |
| y | No | y in screenshot pixels | |
| ms | No | swipe / long_press duration in ms | |
| x2 | No | swipe end x | |
| y2 | No | swipe end y | |
| text | No | type: the text; key: home|back|recents|enter|tab|del|menu; scroll: down|up; open_app/close_app: package; open_url: https://...; tap_text/wait_text: text on screen; settings: wifi|bluetooth|display|sound|apps|location|about|battery|...; intent: a URI to view (geo:, tel:, https:...) or JSON {action,data,package,component,extras}; clipboard_set: the text | |
| action | Yes | one of: tap long_press swipe scroll tap_text wait_text type key open_app close_app open_url installed intent settings clipboard_set notifications_open notifications_close notifications_clear | |
| device | Yes | Device name from devices (op=list), e.g. dev_04f2 | |
| element | No | element number from the last observe (tap, long_press) | |
| timeout | No | wait_text: seconds to wait, up to 120 |
Output Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |