act
Runs ordered Android UI automation steps in one call, batching taps, typing, swipes, waits, and app actions; stops at the first failure unless optional is set, then returns the screen.
Instructions
Run steps in order in ONE call; batch everything you can. Stops at the first failure (optional:true skips if missing). Returns the screen. Target (tap/long_press/type/wait_*): ref | x,y | text (also content-desc; exact, else contains; '/re/' = regex) | id | desc, + below/above/leftOf/rightOf/childOf/containsChild:, index:n, checked/enabled/selected/focused:bool. x,y may be '50%'. Ops: tap, long_press{ms}, type{value, field?=its label, submit?, append?} (no target = focused), scroll{dir:down|up|left|right, until?:target, max?}, swipe{x1,y1,x2,y2,ms?}, key{key:back|home|enter|recents|delete|tab|}, wait_for{target, timeout?=5000}, wait_gone{target, timeout?}, wait_idle{quietMs?=300, timeout?}, sleep{ms}, launch{package, args?:{k: v}}, stop_app{package}, clear_app{package} (wipes data), install_app{path, grant?}, uninstall_app{package}, open_link{url, package?}, permissions{package, grant?:[CAMERA..]|'all', revoke?}, logs{package?, level?=W, since?=60s, lines?=50}, apps{filter?}, screenshot{name} (name or path; saved, not shown), observe, hide_keyboard, repeat{times? | while?:{visible|notVisible: target}, steps}, run_flow{file? | steps?, vars?, when?:{visible|notVisible: target | true: '${!!X}'}}: subflow (file relative to the flow), skipped if when fails.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"steps": "<steps>"
},
"name": "act"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | ||
| observe_after | No | default true |