Skip to content

About

Source-available visual IDE for Maestro mobile tests — inspect, build, and run flows locally from one desktop window.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

18 stars

Watchers

1 watching

Forks

Latest commit

 

History

145 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maestro Deck

Maestro Deck

The visual IDE for Maestro tests.
Inspect, build and run flows locally from one desktop window.

Download · Website · Docs · FAQ · Discussions

Latest release CI Quality gate License: BUSL-1.1 PRs welcome

Maestro Deck: workspace, device mirror with the inspector menu, YAML editor and run console in one window


What is it?

Maestro Deck mirrors your device, lets you click on an element to get a selector, and runs the flow with each step lit up as it executes. You write tests by using your app instead of guessing at selectors.

  • Android, iOS and Web — USB phones, emulators, iOS simulators and Chromium, from the same window.
  • Local first. Everything runs on your machine, and no account is needed. Anonymous usage statistics are strictly opt-in — see Privacy and usage statistics.
  • Zero setup. On first launch the app installs Java, the Maestro CLI (2.10.0) and ADB in its own folder.
  • Native and light. Built on Tauri 2 (Rust + system webview), not Electron.
  • Source-available under BUSL-1.1. It becomes Apache-2.0 on 2030-05-15.

Features

Mirror and inspect

  • Live device mirror. Low-latency scrcpy stream for Android, ScreenCaptureKit for iOS simulators, CDP screencast for the web.
  • Drive the device from the preview: tap, swipe, type, Home and Back.
  • Inspector with element overlay and smart selectors (id → text → content-desc → point), portable between Android and iOS.
  • One device picker for everything: phones plugged into this machine, simulators, the web browser, device-farm phones and cloud devices, filterable by source and type. Plugged-in phones and booted simulators show up on their own, and a simulator boots in one click.

The device picker: local simulators, device-farm phones and cloud devices, filtered by source and type

Build and run

  • YAML editor (CodeMirror) with Maestro syntax highlighting and autocomplete for every command, dark mode commands from Maestro 2.9 included.
  • Insert from the inspector: pick an element and an action, and the step lands at your cursor.
  • One-click run with a live console: the gutter follows each step, failures point to the line that broke, and you can switch between a simple view and raw logs.
  • Run all over a workspace, with a file tree, folders and a right-click menu.

Visual regression

  • Image bank. Store baselines from takeScreenshot, compare later runs against them and review side-by-side diffs. Tolerances live in Settings → Visual Regression.

Billy, the AI assistant

  • A chat agent that sees the screen and acts on it. It can read the hierarchy, take screenshots, tap and type, launch apps, read and write flows, and run them to fix a failing test.
  • Works with your Maestro Deck account (no key needed, voice input included), or bring your own key: Anthropic or Google Vertex AI.

Maestro Deck Cloud (optional)

  • Sign in to run flows on hosted devices: an Android emulator, an iOS simulator, or a real phone from the device farm. All of them sit in the same device picker as your local devices.
  • Live preview of the remote device while the flow runs, with clear results.
  • The label next to Run always tells you whether a flow runs locally or in the cloud, and a session bar under the device header shows the farm phone you're connected to.
  • Your Account page shows your plan and the device-farm minutes left, live.

Everything else

  • Guided first test with a sample app, auto-update with release notes, native macOS menu bar, dark and light themes, and custom tool paths in Settings → Toolchain for locked-down machines.

Platform support

Target Status
Android (USB, emulator) ✅ Stable, Android 8.0 (API 26)+ with USB debugging
iOS simulator ✅ Stable, macOS with Xcode
Web (Chromium) 🧪 Beta, turn it on in Settings → Devices & Performance
Physical iPhone ⚠️ Needs the patched Maestro 2.5.1 bridge, not yet compatible with Maestro 2.10.0
Desktop OS Build
macOS 12+ Apple Silicon (.dmg, signed and notarized)
Windows 10+ x64 (.msi / .exe)
Linux Not packaged yet, build from source

Quickstart

  1. Download the installer for your OS from Releases.
  2. Launch it. The first-run setup installs Java, Maestro and ADB. Progress shows next to Run. Already have them? The app finds the ones on your PATH, or you can point to them in Settings → Toolchain.
  3. Connect a device: plug in an Android phone with USB debugging on, start an emulator, or boot an iOS simulator. It appears in the device picker.
  4. Follow the guided first test, or open a folder of flows and press Run.

Build from source

Requires Node 20+, pnpm 10+, Rust (via rustup) and the Tauri 2 prerequisites.

git clone https://github.com/BlueShork/maestro-deck.git
cd maestro-deck
pnpm install
pnpm tauri:dev

Build a release bundle:

pnpm tauri:build

Installers are written to src-tauri/target/release/bundle/.

Useful checks before a PR: pnpm lint, pnpm typecheck, pnpm test, and cargo test in src-tauri/.


How it works

A single-window Tauri 2 app. The React + TypeScript frontend handles the UI (device canvas, inspector, editor, console, Billy). The Rust backend does the device work: ADB and a bundled scrcpy server for Android, ScreenCaptureKit and simctl for iOS simulators, and long-lived maestro mcp sessions for the inspector, input and live preview. Flows run through the Maestro CLI.

  React (webview)  <── IPC ──>  Rust (Tauri)  ──>  ADB / scrcpy      ──>  Android
                                               ──>  simctl / SCK      ──>  iOS simulator
                                               ──>  maestro mcp / CDP ──>  Chromium
                                               ──>  maestro test      ──>  any target

More details in docs/ARCHITECTURE.md. Release notes are in CHANGELOG_EN.md.


Contributing

Contributions of any size are welcome.

Contributions are accepted under a Contributor License Agreement. For security issues, see SECURITY.md.


License

Maestro Deck is licensed under the Business Source License 1.1. Copyright 2026 Ethan Morisset.

  • The source is public: you may read, copy, modify and redistribute it.
  • You may use Maestro Deck in production for the internal business operations of your organization (Additional Use Grant in the LICENSE).
  • You may not offer it as a hosted or embedded service to third parties, or sell it (original or modified) as, or as part of, a commercial product. Those uses need a commercial license. Contact the author.
  • On 2030-05-15 the license automatically becomes Apache-2.0.

BUSL-1.1 is a source-available license (not OSI-approved), like the ones used by Sentry, MariaDB, CockroachDB and HashiCorp.


Privacy and usage statistics

On first launch, Maestro Deck asks whether you want to share anonymous usage statistics. Nothing is sent unless you say yes, and you can change your mind at any time in Settings → Privacy.

These statistics exist for one reason: Maestro Deck is built by an independent developer, and they are the only way to know how many people use it, on which platforms, and which features matter — so we can decide what to build next. They are not used to track, profile or advertise to anyone, and they are never sold or shared.

  • Collected: app version, operating system, a random install ID (not tied to your machine or account), and usage — screens opened, device platform connected, runs finished (passed / failed / stopped), inspector opened, Billy message sent, cloud run started, image bank check.
  • Never collected: flow contents, file paths, selectors, app IDs, screenshots, device names or serials, prompts or anything you type, your name, email or Maestro Deck Cloud account.
  • Where: PostHog EU Cloud (servers in the European Union), the same analytics used on maestrodeck.cloud. No person profiles are created, and development builds never report.

Every event the app can send is listed in src/lib/telemetry.ts. Details are in the privacy policy.


Trademark and legal notice

Maestro Deck™ is a trademark of Ethan Morisset, filed with the French INPI on 2026-05-19 (application n°5259782, Nice classes 9 and 42, under examination).

Maestro Deck is an independent project. It is not affiliated with, endorsed by, or sponsored by mobile.dev Inc., the maintainers of Maestro. "Maestro" is used only to describe interoperability, and related marks belong to their owners.

Maestro Deck is published by Ethan Morisset, entrepreneur individuel registered in France. The desktop app runs locally. Anonymous usage statistics and signing in to Maestro Deck Cloud are both optional and covered by the policies below.

Mentions légales · Terms of use (CGU) · Terms of sale (CGV) · Privacy · Cookies


Acknowledgements

Thanks to everyone who has contributed code, issues, ideas and feedback. This project is shaped by its contributors.

About

Source-available visual IDE for Maestro mobile tests — inspect, build, and run flows locally from one desktop window.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

18 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages