Tip
Great things happen when testers connect — Join the Maestro Community
Maestro is an open-source framework that makes UI and end-to-end testing for Android, iOS, and web apps simple and fast.
Write your first test in under five minutes using YAML flows and run them on any emulator, simulator, or browser.
plexinc/Maestro tracks upstream Maestro and layers on the capabilities we need ahead of upstream:
- Apple TV (tvOS) support — a tvOS driver, device management (
start-device --platform tvos), an RN Expo tvOS demo app, and tvOS e2e flows. - Amazon Vega (Fire TV) support — a driver for Amazon's Vega OS (a Linux/React Native OS, not Android), driven through the
vega/vdaCLI: view hierarchy from the on-device automation toolkit, D-pad/touch/swipe/text input, and screenshots. - Canvas-based UI (web) support — for D-pad-driven TV web apps (e.g. Lightning/WebGL):
data-testid-first element selection, D-pad/arrow-key mapping (with Menu→back), URL-shapedappIddetection, afocused:selector, and--platform webdevice selection. - Bundled Maestro Studio, restored and TV-aware — re-adds the local
maestro studioweb IDE that upstream removed, plus a "TV mode" (auto-on for tvOS, toggleable for web) where taps/swipes and physical arrow keys / Enter / Esc drive the D-pad / select / back. major.minor.patch.buildversioning —CLI_VERSIONtracks upstream Maestro; a fork-ownedPLEX_BUILDsegment lets us ship fork-only builds without drifting from the inherited version.- GitHub-direct distribution — install/uninstall scripts, CLI self-update, and releases all resolve straight from
plexinc/Maestroreleases (no external proxy).
Install with the one-liner in Getting Started below.
- What this fork adds
- Why Maestro?
- Getting Started
- Resources & Community
- Contributing
- Maestro Studio – Test IDE
- Maestro Cloud – Parallel Execution & Scalability
Maestro is built on learnings from its predecessors (Appium, Espresso, UIAutomator, XCTest, Selenium, Playwright) and allows you to easily define and test your Flows.
By combining a human-readable YAML syntax with an interpreted execution engine, it lets you write, run, and scale cross-platform end-to-end tests for mobile and web with ease.
- Cross-platform coverage – test Android, iOS, and web apps (React Native, Flutter, hybrid) on emulators, simulators, or real devices.
- Human-readable YAML flows – express interactions as commands like
launchApp,tapOn, andassertVisible. - Resilience & smart waiting – built-in flakiness tolerance and automatic waiting handle dynamic UIs without manual
sleep()calls. - Fast iteration & simple install – flows are interpreted (no compilation) and installation is a single script.
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"
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 this fork's Maestro CLI on macOS, Linux or Windows (WSL):
curl -fsSL "https://raw.githubusercontent.com/plexinc/Maestro/main/scripts/install.sh" | bash
To uninstall:
curl -fsSL "https://raw.githubusercontent.com/plexinc/Maestro/main/scripts/uninstall.sh" | bash
The links below will guide you through the next steps.
- Installing Maestro (includes regular Windows installation)
- Build and install your app
- Run a sample flow
- Writing your first flow
Maestro is open-source under the Apache 2.0 license — contributions are welcome!
- Check good first issues
- Read the Contribution Guide
- Fork, create a branch, and open a Pull Request.
If you find Maestro useful, ⭐ star the repository to support the project.
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.
- Simple setup – just download the native app for macOS, Windows, or Linux.
- Visual flow builder & inspector – record interactions, inspect elements, and build flows visually.
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.
Built with ❤️ by Maestro.dev
