Desktop app · macOS (Apple Silicon)

v0.5.0

Conductor Studio

Agentic QA, on the same rails.

A desktop workbench for Maestro tests, built on the Conductor CLI. Write flows by hand or hand them to an agent, run them against a live device, and track them as test cases — driving the same devices, the same drivers, and the same commands your coding agent already uses.

Built on Conductor

Studio bundles the Conductor CLI — nothing to install globally, and a stray conductor on your PATH is never used. Your coding agent taps and inspects through the CLI; Studio runs the suite through the same one. A flow an agent wrote in a terminal is a flow Studio can open, run, and file against a test case.

Highlights
🔗

One CLI, two jobs

Studio ships its own copy of Conductor and drives it directly — the same drivers, the same commands, the same devices your coding agent uses. Agentic development and agentic QA against one API, not two stacks that disagree.

🎛️

The Maestro workbench

Flow tree, editor, and live device in three resizable columns. Run a flow, a folder, or a single step, and watch each command land on the device as it executes.

🤖

Agents write the tests

Hand a flow to an agent that can see the view hierarchy, drive the device, and iterate until the test passes — then read the diff before you keep it.

✍️

An editor that knows Maestro

Autocomplete across all 45 commands, 27 selector keys, env variables, and subflow paths. Renaming a subflow repoints every caller in the style that call site used.

🗂️

Tests as test cases

Flows carry the case they cover. Mirror a Qase project — or keep cases purely local — filter them into test plans, and record what actually ran, per project in a monorepo.

🍎

A real Mac app

Signed, notarized, light and dark, and auto-updating. Apple Silicon, no global install to keep in sync — the bundled CLI is pinned and upgradable from Settings.

  1. v0.5.0

    Highlights

    • Flows own the link to their test case, and Studio stops managing cases.
  2. v0.4.0

    Highlights

    • Support several projects in one repo. A monorepo holding a mobile app and a tv app can now mirror a Qase project for each: the Cases toolbar switches between them, and "all projects" merges them into one read-only matrix.
    • Pick the Qase project from a list instead of typing its code. Once an API token is entered (or already stored), Studio fetches every project that token can see and offers them as a dropdown; the plain text field remains as the fallback when the token is missing or Qase can't be reached.

    Fixes

    • Keep mirrored and hand-written cases in separate stores, and put the repo first on disk. A sub-project's cases now live under `~/.conductor/studio/<repo>/<store>/<sub-project>/<local|qase>/`, so everything Studio keeps about a checkout sits in one directory, and switching a sub-project between local and Qase no longer buries what it was authoring. Reports moved to the same layout; existing directories are moved on first read.
    • Stop reporting every synced case as updated. A pull counted a case as "updated" whenever a file for it already existed, so syncing twice in a row claimed it had rewritten everything. It now compares what Qase returned against what is on disk, writes only what actually differs, and reports the rest as unchanged — which also stops an identical sync churning every file's mtime.
    • Name Studio's GitHub releases `Studio v<version>` so they match the CLI's `CLI v<version>` instead of showing a bare version number.
  3. v0.3.0

    Highlights

    • Adopt Qase's model for test cases, and remove test cases from the CLI.