Skip to content

Getting started ​

With the server connected, ask the agent for what you need in plain language. It picks the tools.

Example requests ​

  • "Boot an iPhone 16 and take a screenshot."
  • "Install build/MyApp.app, launch it and sign in with the test user."
  • "Open myapp://settings, switch to dark mode and tell me if anything looks wrong."
  • "Grant photo access to my app and send it a test push."
  • "Reproduce the cart bug and show me MyApp's logs from the last minute."

The usual flow ​

StepToolGoal
1list_devicesFind the simulator.
2boot_deviceBoot it and wait until it is ready.
3install_app, launch_appGet the app running.
4ui_wait_for_elementWait until the app has loaded.
5ui_tap_element, ui_sequenceInteract.
6ui_describe_screen, screenshotCheck the result.

Example: signing in to an app ​

"Launch MyApp and sign in" takes two calls:

  1. launch_app with bundleId: "com.example.myapp" and terminateRunning: true.
  2. ui_sequence with the whole flow:
json
{
  "steps": [
    { "action": "wait_for_element", "label": "Email", "timeoutSeconds": 20 },
    { "action": "tap_element", "label": "Email" },
    { "action": "type_text", "text": "ana@example.com" },
    { "action": "tap_element", "label": "Password" },
    { "action": "type_text", "text": "secret" },
    { "action": "tap_element", "label": "Sign in" }
  ],
  "describeAfter": true
}

The response lists the steps that ran and ends with the elements of the resulting screen, so the agent confirms it reached the main screen with no further calls.

See Working fast to get the most out of these tools, and the reference for every parameter.

Released under the MIT License.