Maestro Studio overview

Maestro Studio is the desktop app for writing, running, and debugging mobile UI tests visually, using simple YAML files and a live connection to your device.

With Maestro Studio you can connect a device, build your tests by interacting directly with your app, and run them without switching tools.

Learn how to use Maestro Studio

To start using Maestro Studio, Explore the following path:

  1. Visit Run tests with Maestro Studio to install the Studio and create and run your first test.

  2. Explore Environments and variables to learn how to handle dynamic data and secrets directly within the visual editor.

  3. Use the Run cloud tests from Maestro Studio to run your tests on Maestro Cloud directly from Studio.

What you can do in Studio

Write tests faster

Type a hyphen in the YAML editor to see all available Maestro commands. Autocomplete suggests commands, arguments, and real selectors pulled from your connected device's screen, so you spend less time in the docs and fewer errors make it to run time.

Visual test creation

Right-click any element on your connected device to add YAML commands directly to your test. No need to manually look up element IDs or selectors.

Run and debug locally

Run your tests step by step and see exactly what happens on screen at each stage. Every run is recorded, so you can jump to any point and inspect what went wrong.

Maestro Studio vs. Maestro CLI

Maestro is also available via CLI. However, while the Maestro CLI is the core engine for executing tests and CI/CD integration, the Maestro Studio is a specialized layer designed for development and debugging.

Feature

Maestro Studio

Maestro CLI

Primary Interface

Visual GUI / Desktop App

Terminal / Command Line

Core Purpose

Writing, running, and debugging tests visually.

Executing test suites in CI/CD.

Setup Required

Requires Android SDK and/or Xcode to run against virtual devices.

Requires Java 17+, Android SDK, and Xcode.

Inspection Tool

Point-and-click interface to see what Maestro sees.

Uses maestro hierarchy for terminal output.

Last updated