Skip to main content
Maestro is already declarative YAML, so most commands map one-to-one. A flow.yaml becomes a *.test.yaml; tapOn becomes tap; runFlow becomes a module call. The main differences: Momentic adds natural-language targets and AI assertions, runs through its own runner instead of a Maestro CLI device session, and hosts emulators and simulators for you.

Before and after

A representative Maestro flow:
checkout.yaml
The same test in Momentic:
checkout.test.yaml
EMAIL comes from environments[].envVariables in momentic-mobile.config.yaml or the shell, not a flow-level env: block.

Command mapping

What does not map

  • Maestro Studio / element inspection. Momentic’s equivalent is the local editor’s element picker plus debugState; there is no separate inspector app.
  • Jest/JS scripting inside flows beyond runScript. javascript covers data and API work; it is not a general inline scripting runtime for UI logic.
  • maestro test --device physical devices. Remote execution is emulators and simulators only; real devices are not supported.
  • Maestro’s tolerance and optional-element flags. Momentic resolves targets with AI against the live view hierarchy instead of fuzzy matching rules. If you depended on optional: true, use an if: step around a check.
  • Cloud Maestro (maestro cloud). Scheduling and CI live in your pipeline or Momentic’s scheduled runs, not a per-flow upload.

Incremental strategy

  1. Install momentic-mobile and keep Maestro installed: nothing conflicts.
  2. Port one flow end to end, including its subflows as modules. Run it on a local emulator, then on a Momentic-hosted emulator by selecting a region.
  3. Move env values into environments in momentic-mobile.config.yaml so the same test file runs against dev, staging, and prod.
  4. Port flows in order of pain: the flows that break most on locator changes gain the most from natural-language targets and auto-heal.
  5. Delete the .maestro directory when the Momentic suite covers the same critical paths and has passed for a few consecutive runs.

Porting at scale with a coding agent

Paste this prompt into your coding agent. It reads the Momentic skills, ports each flow, and runs the result.