Native Maestro reporter: a step per command, with screenshots
qualflare-maestro reports every Maestro command as its own step in Qualflare, with screenshots, flow tags and runs that failed before Maestro wrote output.

Maestro results used to reach Qualflare as JUnit XML — one line per flow, with a status, a duration and a failure message. Everything Maestro actually did was left on the CI worker. qualflare-maestro changes that: it wraps maestro test, reads what Maestro leaves behind, and reports a step for every command, named from your flow's own YAML.
brew install qualflare/tap/qualflare-maestro
qualflare-maestro -- maestro test .maestro/
qf my-project collect ./qualflare-results
Maestro's exit code passes through unchanged, so the command drops into CI in place of maestro test.
What lands in a report that JUnit XML could not carry:
- A step per command, nested under
runFlow,repeatandretryon Maestro 2.10+. An optional command that did not succeed becomes a skipped step. - Maestro's own screenshots, attached to the step that took them.
- Tags and metadata read from the flow file, including
qualflare.*properties. - Runs that died before Maestro wrote anything — invalid YAML, no device — which previously produced no file at all, and so no launch.
Values passed with --env and MAESTRO_* environment variables are replaced with ${NAME} in report text, so values handed to a flow that way are not carried along with its results. The reporter makes no network calls of its own, and it works with both of Maestro's debug-output layouts (2.6.x and 2.10+).
It needs Maestro 2.6.0 or newer, and qf 0.1.24 or newer for screenshots. Full setup is on the Maestro test reporting page, and the limitations are listed in the repository.