maestro vs midscene
Two of the top projects in Code review and testing, side by side: who leads on each score part and who each one suits, then setup, license, activity and what each review found.
maestro
YAML-based UI and end-to-end test framework for Android, iOS and web
midscene
Vision-based E2E testing in natural language for web, mobile and desktop
Verdict
Both score 87; maestro ranks higher on stars, 16,381 to 15,585. Of the 4 score parts we measure for both, maestro leads on 2, midscene on 1 and 1 is even.
- Adoptionmaestro leads by 5 points, 79 to 74.
- FreshnessEven at 100.
- Maintenancemidscene leads by 10 points, 93 to 83.
- Agent-readymaestro leads by 15 points, 85 to 70: a wide gap.
Pick maestro if you are
Mobile and web developers and QA engineers automating UI tests
- Single binary install; no drivers or SDK needed in the app under test
- One YAML syntax covers Android, iOS, web, React Native, Flutter and hybrid apps
Pick midscene if you are
QA and frontend engineers writing E2E tests for web, mobile or desktop apps
- Locates elements from screenshots, so canvas, icon-only buttons and cross-origin iframes need no selectors
- Same agent API across web, Android, iOS, HarmonyOS and desktop
| What we compare | maestro | midscene |
|---|---|---|
| Score parts, out of 100 | ||
| Adoption | 79, popular | 74, popular |
| Momentum | Not scored for this kind | Not scored for this kind |
| Freshness | 100, active | 100, active |
| Maintenance | 83, healthy | 93, healthy |
| Agent-ready | 85, ready | 70, partly |
| Facts from GitHub and the README | ||
| Stars | 16.4k | 15.6k |
| License | Apache-2.0 (permissive) | MIT (permissive) |
| Last commit | Nov 2026 | Nov 2026 |
| Last release | Nov 2026 | Nov 2026 |
| Language | Kotlin | TypeScript |
| Docker | No | No |
| GPU | Not needed | Not stated |
| arm64 or Apple Silicon | Not stated | Mentioned |
maestro
Maestro runs UI and end-to-end tests written as flat YAML command lists (launchApp, tapOn, assertVisible) against Android, iOS and web apps, driving them through the platform accessibility layer. It installs as a single CLI binary and also ships an MCP server (`maestro mcp`) so coding agents can control a live device and write flows. Flows run on emulators, simulators, browsers and physical Android devices.
Who it is for: Mobile and web developers and QA engineers automating UI tests
Strengths
- Single binary install; no drivers or SDK needed in the app under test
- One YAML syntax covers Android, iOS, web, React Native, Flutter and hybrid apps
- Built-in MCP server in the CLI works with Claude Code, Cursor, Codex and others
- Automatic waiting and flakiness tolerance remove manual sleep calls
Weaknesses
- Physical iOS devices are not supported
- Requires Java 17 or higher on the host
- Maestro Studio IDE is free but closed source
- Parallel execution at scale needs paid Maestro Cloud
- no GPU
- Needs Java 17+
midscene
Midscene.js drives web, Android, iOS, HarmonyOS and desktop UIs from screenshots using a vision model, so tests are written as natural-language steps and assertions instead of selectors. Tests can be YAML cases run by Midscene Test (@midscene/test) or agent calls such as aiAct and aiAssert inside Playwright, Puppeteer, Vitest or Rstest. It produces HTML reports with screenshots and the model's decisions.
Who it is for: QA and frontend engineers writing E2E tests for web, mobile or desktop apps
Strengths
- Locates elements from screenshots, so canvas, icon-only buttons and cross-origin iframes need no selectors
- Same agent API across web, Android, iOS, HarmonyOS and desktop
- Step-level HTML reports with screenshots, plus summary.json for scripts and AI agents
- Works with GPT, Qwen, Doubao, DeepSeek, Gemini, Kimi, including self-hostable models
Weaknesses
- Requires a configured vision-capable model; runs depend on model API calls or self-hosting
- Python and Java SDKs are community projects, not part of the main repo
- Assertions are model judgments, so results can vary between runs and models
- iOS needs WebDriverAgent and Android needs ADB, adding device setup
- Needs Vision-language model API or self-hosted model, Playwright or Puppeteer (web), ADB (Android), WebDriverAgent (iOS), HDC (HarmonyOS)
- Models: GPT, Qwen, Doubao Seed, DeepSeek, Gemini
More in Code review and testing
Building with these?
We help teams pick an open-source AI stack and run it in production. Client work never changes a rank.