Maestro
About
Maestro is an open-source framework that makes UI and end-to-end testing for Android, iOS, and web apps simple and fast. It uses human-readable YAML flows and runs on any emulator, simulator, or browser.
Details
- License
- Apache-2.0
Explore
- Cross-platform coverage for Android, iOS, and web apps.
- Human-readable YAML flows for test authoring.
- Built-in flakiness tolerance and automatic waiting.
- No compilation needed – flows are interpreted instantly.
- Simple one‑command installation.
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
MaestroCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
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.
- Installing Maestro (includes regular Windows installation)
- Build and install your app
- Run a sample flow
- Writing your first flow
---
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"maestro": {
"maestro": {
"command": "maestro",
"args": [
"mcp"
]
}
}
}
}
McpServers
{
"maestro": {
"command": "maestro",
"args": [
"mcp"
]
}
}
Why Maestro?
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, and assertVisible.
- 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:
```
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



