An AI agent testing framework that runs natural-language test goals on Android, iOS, and Web apps via a UI or CLI.
mobile-dev-inc/Maestro
Open-source framework for UI and end-to-end testing of Android, iOS, and web apps using plain YAML flows.
Open-source alternative to:Appium
- Stars
- 16,343
- Forks
- 1,019
- Open issues
- 454
- Last commit
- 16 hours ago
What is it?
Maestro is an open-source framework for writing UI and end-to-end tests for Android, iOS, and web apps. Tests are flat lists of YAML commands such as launchApp, tapOn, inputText, and assertVisible, so a flow can be read and written without deep knowledge of a specific testing SDK.
Maestro drives apps through the platform's accessibility layer and installs as a single CLI binary with no drivers or SDK to set up. Flows are interpreted rather than compiled, and built-in waiting handles dynamic screens without manual sleep calls. The same command syntax works across React Native, Flutter, native iOS and Android, Ionic, and hybrid apps, on emulators, simulators, browsers, and physical Android devices. Physical iOS devices are not yet supported.
The Maestro MCP server ships inside the CLI, letting coding agents such as Claude Code or Cursor inspect a live device, interact with the app, and check their own work. Maestro Studio, a desktop visual test builder, is available as a free separate download, and Maestro Cloud offers parallel test execution.
Key features
- 01Tests written as readable YAML commands like tapOn and assertVisible
- 02Single-binary CLI install with no drivers or SDK required
- 03Automatic waiting and flakiness tolerance for dynamic UIs
- 04One syntax across Android, iOS, web, and React Native, Flutter, and native apps
- 05MCP server lets coding agents control and test apps on a live device
Use cases
- End-to-end regression tests for a mobile app run in CI
- Smoke tests for a React Native or Flutter app on Android emulators
- Letting a coding agent verify a UI change on a device before committing
- Browser-based E2E checks for a web app using the same flow syntax
Quick start
- 1
Check that Java 17 or higher is installed
java -version - 2
Run the official install script from the README (macOS, Linux, or Windows WSL)
- 3
Follow the docs to run your first test with the Maestro CLI
Things to know
- Physical iOS devices are not yet supported.
- Requires Java 17 or higher.
- Maestro Studio is free but its code is not open source.
In collections
Topics
FAQ
- What is Maestro?
- Open-source framework for UI and end-to-end testing of Android, iOS, and web apps using plain YAML flows. Maestro is an open-source framework for writing UI and end-to-end tests for Android, iOS, and web apps. Tests are flat lists of YAML commands such as launchApp, tapOn, inputText, and assertVisible, so a flow can be read and written without deep knowledge of a specific testing SDK.
- Is Maestro free to use? What license does it have?
- Maestro is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is Maestro still maintained?
- Actively maintained. The last commit to Maestro was on Nov 6, 2026.
- What can I use Maestro for?
- End-to-end regression tests for a mobile app run in CI Smoke tests for a React Native or Flutter app on Android emulators Letting a coding agent verify a UI change on a device before committing Browser-based E2E checks for a web app using the same flow syntax
- How do I install Maestro?
- Check that Java 17 or higher is installed: java -version Run the official install script from the README (macOS, Linux, or Windows WSL) Follow the docs to run your first test with the Maestro CLI
- Where can I get Maestro?
- The source code and installation instructions are on GitHub: https://github.com/mobile-dev-inc/Maestro
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A free, open-source macOS app that shows Android emulators, Android phones, iOS simulators and iPhones side by side for mirroring, control and settings changes.
Midscene.js is a vision-driven E2E testing framework that lets you write UI test steps and assertions in natural language for web, mobile, and desktop apps.
An end-to-end testing framework for web and mobile apps that lets you describe test goals in natural language and drive the app with an agent.
An MCP server that lets AI agents and LLMs automate iOS and Android apps on simulators, emulators and real devices.
Automate real Android phones from your code for app testing, repeated tasks, phone farms, or AI agents, with no ADB, USB cable or root.