maestro-parallel
Run Maestro flows on every connected iOS simulator, iOS device and Android device in parallel — with a single command.
maestro-parallel
What it does
- Discovers every booted iOS simulator, paired iOS device, and
adb-attached Android. - Builds release artifacts per platform group using auto-detected strategy (Rock → EAS local →
expo run:*). - Reuse-installs the same
.apk/.appon every additional device in the group — one build, many installs. - Foregrounds the app on each device (
simctl launch,adb monkey,devicectl launch). - Runs Maestro in parallel (Android: one process per device; iOS: sequential by default; opt-in
iosShardAllfor--shard-all). Note: on Maestro 2.5–2.6 several concurrent Android processes can race on driver/adb setup — for reliable multi-Android use--shard-split, or run one device at a time with--device. - Merges JUnit reports and prints a per-device summary.
Why
Maestro itself can target only one device per process. Running 5 devices means launching 5 Maestro CLIs by hand, building the app 5 times, copy-pasting commands, juggling logs.
maestro-parallel does the orchestration so you don't.
Status
Alpha. Tested daily against real Expo projects (RN 0.81 + Expo 54). API may break before 1.0 — pin a version if you depend on stability.
Source
github.com/TomKalina/maestro-parallel — Apache-2.0.