whatisgithub

What is maestro?

mobile-dev-inc/maestro — explained in plain English

Analysis updated 2026-06-24

14,035KotlinAudience · developerComplexity · 2/5LicenseSetup · moderate

In one sentence

An open-source tool for writing mobile app tests as simple YAML files, describe taps, swipes, and text input in plain text and Maestro runs them automatically on Android, iOS, or web.

Mindmap

mindmap
  root((maestro))
    How it works
      YAML flow files
      No build step
      Auto-wait for elements
    Platforms
      Android devices
      iOS devices
      Web browsers
    Tools
      Maestro Studio
      MaestroGPT AI
      Maestro Cloud
    Installation
      Single CLI command
      Java 17 required
      Cross-platform
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Write automated UI tests for an Android or iOS app using readable YAML instead of learning a testing framework

USE CASE 2

Run tests without a build step, edit a YAML flow file and execute it immediately

USE CASE 3

Use Maestro Cloud to run your test suite in parallel across many devices to reduce CI wait time

USE CASE 4

Test React Native or Flutter apps on real devices and simulators without manual device setup

What is it built with?

KotlinYAMLJava

How does it compare?

mobile-dev-inc/maestroiamgio/quarkdownkotlin/kotlinx.coroutines
Stars14,03513,96013,750
LanguageKotlinKotlinKotlin
Setup difficultymoderatemoderatemoderate
Complexity2/52/53/5
Audiencedeveloperwriterdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Java 17 or higher must be installed before running the Maestro CLI, the installer does not bundle it.

Free to use, modify, and distribute for any purpose, including commercial projects, as long as you keep the license notice.

So what is it?

Maestro is an open-source framework for writing and running automated UI tests for Android, iOS, and web apps. It lets you describe user interactions in plain YAML files rather than code, which makes tests easier to read and maintain without deep programming knowledge. A basic test might say: launch the app, tap a button labeled "Create new contact", type a name, and tap Save. Maestro runs that file and checks whether the app behaves as expected. Tests in Maestro are called flows. Each flow is a YAML file that lists a sequence of steps using commands like launchApp, tapOn, inputText, and assertVisible. Because the flows are interpreted line by line rather than compiled, you can run them immediately after writing without a build step. The framework handles dynamic screens well: instead of requiring explicit wait commands, it detects when elements are not yet visible and waits automatically. Maestro runs on Android emulators and real devices, iOS simulators and real devices, and web browsers. It is designed to work with apps built using React Native, Flutter, and hybrid frameworks, as well as native apps. Installation is a single command that downloads the CLI, and Java 17 or higher must already be installed. Maestro Studio is a separate desktop app (available for macOS, Windows, and Linux) that provides a visual interface for building and inspecting flows, with an AI assistant called MaestroGPT for generating commands. Studio is free but is not open source. Maestro Cloud is a paid service that runs your test suite in parallel across many machines, reducing execution time. The main framework is open source under the Apache 2.0 license. Community support is available via a Slack workspace.

Copy-paste prompts

Prompt 1
Write a Maestro YAML flow to test a login screen: launch the app, type an email address, type a password, tap the Login button, and assert the home screen is visible.
Prompt 2
How do I install the Maestro CLI and run my first test on an Android emulator? Give me the exact steps including the Java requirement.
Prompt 3
My Maestro test sometimes fails because a button hasn't loaded yet. How does Maestro handle elements that appear slowly or load dynamically?
Prompt 4
Show me how to use Maestro to test a React Native app on an iOS simulator, step by step from CLI install to running the flow.

Frequently asked questions

What is maestro?

An open-source tool for writing mobile app tests as simple YAML files, describe taps, swipes, and text input in plain text and Maestro runs them automatically on Android, iOS, or web.

What language is maestro written in?

Mainly Kotlin. The stack also includes Kotlin, YAML, Java.

What license does maestro use?

Free to use, modify, and distribute for any purpose, including commercial projects, as long as you keep the license notice.

How hard is maestro to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is maestro for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.