sootsim maestro
sootsim maestro
The single YAML test surface. Run existing .maestro/*.yaml suites unchanged, generate a flow from a plain-language goal, or author one from live CLI actions. Playback, recording, profiling, and hosted results all use the same runner.
terminal
Options
| flag | description |
|---|---|
--env KEY=VALUE | set env vars for ${KEY} interpolation (repeatable) |
--continuous | re-run the flow on file changes (alias for —watch) |
--format <fmt> | accepted for maestro cli compat (not used) |
--profile | capture performance stats while the flow runs |
--out <dir> | write recordings and screenshots to this directory |
--url <url> | load this target before running the flow |
--output <path> | write a live-authored flow on maestro end |
--validate | replay a live-authored flow before clearing its draft |
--video | record while validating a live-authored flow |
--new | force a fresh sim for this run |
--headed | force a fresh, VISIBLE window (implies —new, overrides —headless) to watch the flow run live |
--record | record a webm while the flow runs |
--preview | record events+video, upload, and print /preview/<id> |
--preview-open | open 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-compat | print supported and unsupported Maestro verbs |
Examples
terminal
One Maestro Surface
sootsim maestro owns every YAML test: existing suites, generated tests, and live-authored drafts. Existing Maestro projects remain drop-in compatible:
terminal
Supports: tapOn, longPressOn, 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.
For live authoring, only the last successful write action becomes the pending
candidate; maestro keep commits it to the draft. maestro end --validate
replays from a clean run before clearing the draft, and preserves the draft if
validation fails.
Existing flow files still support frontmatter like:
That lets a flow file encode which target it opens and whether the desktop companion is the preferred runtime for that flow.
When you want frame timing for a full scripted path, run the same file with
--profile. Maestro playback, recording, and profiling stay on the same bridge-backed sim/action surface as the rest of the CLI.
