Maestro README

The project's README from github.com/mobile-dev-inc/Maestro. As one markdown file: README.md.

[!TIP] Great things happen when testers connect — Join the Maestro Community

Maestro logo

Maestro is an open-source framework that makes UI and end-to-end testing for Android, iOS, and web apps simple and fast.

Hand-write your first YAML flow with the CLI in under 5 minutes, build flows visually in Maestro Studio, or add Maestro MCP to your coding agent for agentic UI testing.

Flows run on any emulator, simulator, browser, or physical Android device.

A Maestro flow in plain YAML running on the Twitch Android app in an emulator

 

Table of Contents

 

Why Maestro?

Maestro is built on learnings from its predecessors (Appium, Espresso, UIAutomator, XCTest, Selenium, Playwright), plus 3 decisions made early: drive the app through the platform's accessibility layer, install as a single binary with no drivers or SDK, and keep every test a flat list of YAML commands.

Simple Example:

# flow_contacts_android.yaml

appId: com.android.contacts
---
- launchApp
- tapOn: "Create new contact"
- tapOn: "First Name"
- inputText: "John"
- tapOn: "Last Name"
- inputText: "Snow"
- tapOn: "Save"

 

Getting Started

Maestro requires Java 17 or higher to be installed on your system. You can verify your Java version by running:

java -version

Installing the CLI:

Run the following command to install Maestro on macOS, Linux or Windows (WSL):

curl -fsSL "https://get.maestro.mobile.dev" | bash

The links below will guide you through the next steps.

 

Maestro MCP – Agentic UI Testing

A coding agent checking its work on an Android emulator through Maestro MCP, with every command shown live in the Maestro Viewer

Maestro MCP ships inside the Maestro CLI and works with Claude Code, Cursor, Codex, Gemini CLI, Copilot, Grok Build, or any MCP client. It gives your agent a live device (an emulator, simulator, or physical Android device), and Maestro Viewer embeds that device inside your coding agent, showing every MCP command as it runs.

With Maestro MCP, your agent can control the app directly: inspect the screen, tap, scroll, and assert. While it builds or changes a feature, it checks its own work on the device.

Your agent can also write tests. Ask for an end-to-end flow and it writes plain YAML, runs it until it passes, and the flow stays in your repo as a deterministic test for CI.

Setup for each coding agent is in the Maestro MCP docs.

 

Maestro Studio – Test IDE

Maestro Studio Desktop is a lightweight IDE that lets you design and execute tests visually — no terminal needed. It is also free, even though Studio is not an open-source project. So you won't find the Maestro Studio code here.

Download Maestro Studio

 

Maestro Cloud – Parallel Execution & Scalability

When your test suite grows, run hundreds of tests in parallel on dedicated infrastructure, cutting execution times by up to 90%. Includes built-in notifications, deterministic environments, and complete debugging tools.

Pricing for Maestro Cloud is completely transparent and can be found on the pricing page.

👉 Start your free 7-day trial

 

Resources & Community

 

Contributing

Maestro is open-source under the Apache 2.0 license — contributions are welcome!

If you find Maestro useful, ⭐ star the repository to support the project.

  Built with ❤️ by Maestro.dev

Maestro (mobile-dev-inc/Maestro)

Searching Database…

16.1K ·GitHub
What is this?Maestro is an open-source framework for UI and end-to-end testing of Android, iOS, and web apps. You describe flows as simple YAML commands and run them from the CLI, build them visually in Maestro Studio, or let an AI coding agent drive them through MCP.
How is it different from tools like Appium or Selenium?It builds on lessons from its predecessors: Maestro drives apps through the platform's accessibility layer, installs as a single binary with no drivers or SDK, and keeps every test a flat list of YAML commands that are interpreted — there is no compilation step.
How do I write my first test?Install the CLI with one install line on macOS, Linux, or Windows (WSL) — the docs also cover a regular Windows installation — then hand-write a YAML flow. The README says your first test takes under 5 minutes.
What do I need installed besides Maestro itself?Only Java 17 or higher. There are no drivers, SDKs, or other dependencies — everything ships inside the single CLI binary.
Is everything under the Maestro name open source?No. The framework is open source under Apache 2.0, but Maestro Studio Desktop is free yet closed-source (its code is not in this repo), and Maestro Cloud is a paid service.
Will it work with my React Native or Flutter app?Yes — it is framework agnostic: React Native, Flutter, native iOS and Android, Ionic, and hybrid apps all use the same commands. Meta uses Maestro to test React Native itself, and Expo supports it as its preferred E2E testing platform.
What can my flows actually run on?Any emulator or simulator, browser, or physical Android device — one flow syntax covers Android, iOS, and web.
Can an AI coding agent like Claude Code use Maestro?Yes. Maestro MCP ships inside the CLI — run 'maestro mcp', nothing else to install — and works with Claude Code, Cursor, Codex, Gemini CLI, Copilot, Grok Build, or any MCP client. The agent gets a live device to inspect, tap, scroll, and assert on, and can write YAML flows that stay in your repo as deterministic tests for CI.
Do I have to add sleeps for slow or animated screens?No — Maestro has built-in flakiness tolerance and automatic waiting, so dynamic UIs are handled without manual sleep() calls.
Can I build tests without touching the terminal?Yes — Maestro Studio Desktop is a free, lightweight IDE for macOS, Windows, and Linux where you record interactions, inspect elements, and build flows visually.
What happens when my test suite grows large?Maestro Cloud runs hundreds of tests in parallel on dedicated infrastructure, cutting execution times by up to 90%, with built-in notifications and debugging tools. It is a paid service with a free 7-day trial.
Size
1 GB
Stars
16.1K
Age
4y
Commits · 90 Days