testing

A complete mobile testing framework, built for agents.

Write tests as plain-text Workflows or precise .mob scripts, or let an agent write them for you. Agents run them on iOS and Android and fix them when the UI changes. Most Maestro flows run without changes, and the dashboard keeps the history of your runs.

workflows

A test is a text file

A Workflow is a .mobflow file. Each line is one action for the agent. Add act:, assert: or login: at the start of a line if you want to be explicit, or leave it off and the agent works out what the line means.

text
login: sign in as the test user
add any item to the cart
open the cart
assert: the cart has one item and a total above zero

Prefer to see it? In the MobAI app the same Workflow is a chain of blocks on a canvas. Move steps up or down, change a step's type and edit its text.

runs and repairs

Fast runners. Smart repairs.

Workflows run on agents, including the fast runners Jev and Clef. When a step stops working because a button moved or a label changed, Claude Code, Codex or MobAI's built-in agent fixes the test and re-runs it. You review a small diff.

For a failed .mob test, Fix with Agent hands the error, the screenshot and the UI tree to Claude Code or Codex, and the edits show up highlighted in the editor.

› tests/sign-in.mob started failing after a UI change. Run it on the simulator, fix the test, and re-run it.

● Confirmed: line 7 fails because the button in Sources/Views.swift was renamed from "Continue" to "Get started". Updating the test to match.

● Bash(sed -i '' 's/^tap "Continue"$/tap "Get started"/' tests/sign-in.mob && cat tests/sign-in.mob && grep -n Continue tests/checkout.mobflow)
  ⎿ Updated tests/sign-in.mob (+1 -1)
4  wait_for "Email"7 -tap "Continue"7 +tap "Get started"8  wait_for "Welcome, Alice"

● I fixed tests/sign-in.mob and it now passes: all 8 steps succeeded on the local iPhone 17 Pro simulator.

* Worked for 38s · done 8:29 AM
.mob scripts

Want full control? Script it.

.mob files are deterministic scripts for flows that must run the same way every time. One file can cover iOS and Android when both apps use the same labels.

text
tap "Sign in"
type "Email" → "[email protected]"
tap "Continue"
wait_for "Welcome, Alice"
maestro

Keep your Maestro tests. Run them on a real iPhone.

Most Maestro YAML flows run without changes, including on a physical iPhone, from macOS, Linux or Windows. Bring your suite and add Workflows where they help.

exploratory

One prompt, a full bug report

Ask the agent to walk every flow in the app. It explores on its own, reads device logs as it goes, and writes up what it found. Save the run as a test to replay later.

performance

Catch the slow and the janky

Measure FPS, CPU, memory and battery on a real device while your agent uses the app. Record a screen transition frame by frame and catch jumps, flashes and stutters.

Write your first Workflow in a minute.