sootsim maestro

run existing Maestro YAML flows against sootsim

sootsim maestro

Drop-in replacement for the Maestro CLI. Runs real .maestro/*.yaml flows against a sim — supports all three Maestro shapes (plain array, frontmatter, multi-doc). Flag surface mirrors the Maestro CLI for easy migration.

terminal

sootsim maestro [test] <flow-or-dir> [options]
sootsim maestro # auto-discovers ./.maestro/
sootsim maestro init # scaffold a starter flow
sootsim maestro --list-compat

Options

flagdescription
--env KEY=VALUEset env vars for ${KEY} interpolation (repeatable)
--continuousre-run the flow on file changes (alias for —watch)
--format <fmt>accepted for maestro cli compat (not used)
--newforce a fresh sim for this run
--recordrecord a webm while the flow runs
--previewrecord events+video, upload, and print /preview/<id>
--preview-openopen the uploaded preview link after a successful run
--preview-origin <url>upload target for —preview
--preview-public-origin <url>public link origin for —preview
--slow <ms>delay between steps for natural pacing
--list-compatprint supported and unsupported Maestro verbs

Examples

terminal

sootsim maestro test .maestro/login.yaml
sootsim maestro --env USERNAME=alice test .maestro/login.yaml
sootsim maestro test .maestro/flow.yaml --record
sootsim maestro --list-compat

Drop-in Maestro

sootsim maestro runs existing Maestro YAML flows against sootsim. Point it at your .maestro/ directory and it works:

terminal

bun sootsim maestro # discover .maestro/ and run all
bun sootsim maestro test .maestro/login.yaml # single flow
bun sootsim maestro init # scaffold .maestro/login.yaml
bun sootsim maestro --list-compat # verb support matrix

Supports: tapOn, assertVisible, inputText, scrollUntilVisible, launchApp, stopApp, clearState, copyTextFrom, evalScript, openLink, when:/optional:, onFlowStart/onFlowComplete, repeat, runFlow, env var interpolation. Device-only verbs (setLocation, addMedia, killApp) throw a clear error.

Ready to build?

Run your React Native app in the browser. No simulators, no native toolchain, no waiting.

npm i -g sootsim