Baton

Run Maestro E2E flows for React Native apps from every git worktree at once, with no collisions.

Download for macOS Free · macOS · All releases
Baton - Maestro + RN apps + worktrees, with no collisions. | Product Hunt

Install

With one command

curl -fsSL https://lmcjt37.github.io/baton-releases/install.sh | sh

Downloads the latest release, checks its checksum and signature, installs Baton to Applications and puts the baton command on your PATH. Nothing else to do.

Or with Homebrew

brew install --cask lmcjt37/tap/baton

Installs the app and puts the baton command on your PATH. Then open Baton from Applications once: macOS asks before running an app downloaded from the internet, and baton waits for that.

Or download

  1. Download the DMG with the button above.
  2. Open it, accept the licence, and drag Baton to Applications.
  3. Open Baton and click Open if macOS asks. It lives in the menu bar, not the Dock.
  4. From the menu bar icon, choose Install 'baton' Command… to put baton on your PATH.

Whichever you choose, Baton updates itself, and only when no test run is in progress.

To remove it, run brew uninstall --zap --cask baton, or see uninstalling and troubleshooting.

Get started

From your React Native project:

baton init # detect your project, write baton.config.ts baton perform # run your Maestro flows baton ui # open the dashboard

Let your AI agents run flows too:

claude mcp add --scope user baton -- baton mcp

Why Baton

Requirements

macOS with Xcode and an iOS simulator runtime · Maestro 2.11+ and Java · a bare React Native or Expo dev-client app · for Android, the Android SDK with an arm64 system image.

Learn more