Migrate from Maestro
Maestro is already close to where TesterArmy starts: flows are declarative YAML (tapOn, inputText, assertVisible) instead of imperative code. The friction that remains is the matching layer - flows still reference text, IDs, and indexes that drift as your UI changes, and you maintain a tree of .yaml files plus the local Maestro runtime.
TesterArmy replaces the YAML flow with natural-language steps executed by an AI agent that sees the screen, running on cloud simulators and emulators. Because Maestro flows already read like instructions, this is close to a one-to-one conversion. The fastest path is letting your coding agent (Claude Code, Cursor, Codex) read your flow files and convert them with the TesterArmy CLI.
How concepts map
What translates and what doesn’t
This is the easiest mobile migration: each YAML command maps almost directly onto a TesterArmy step. tapOn/inputText/scroll become act steps, assertVisible/assertNotVisible become assert steps, and selector details (text, id, index) are simply dropped because the agent works from intent.
Things to leave behind:
- Low-level commands like
pressKey, rawtapOnby point, orrunScriptJavaScript - express the user-visible intent as a step instead. - Physical-device-only features - camera and biometrics (Face ID, Touch ID) are not available on simulators. Contact us if you need real devices.
- Device-build artifacts (
.ipa,.aab,.xapk) - TesterArmy needs an iOS Simulator.appor an Android.apk/.apks. See App Uploads.
Prerequisites
Get an API key from the dashboard. For non-interactive agent sessions, set TESTERARMY_API_KEY instead. You also need a mobile build: an iOS Simulator .app or an Android .apk/.apks - see App Uploads.
The migration prompt
Paste this into your coding agent in the repository that contains your Maestro flows:
After the migration
- Open each migrated test in the dashboard, select your uploaded build in the App Upload tab, and run it to confirm it passes - see App Uploads.
- Add credentials for the logins your sub-flows handled.
- Wire the suite into CI with GitHub Actions or Expo EAS, replacing your
maestro testjob. - Retire the
.maestroflow files and local runtime once TesterArmy runs are green.
