CLI · Open source · MIT

v0.30.0

Conductor

Give Claude hands. Let it drive your app.

A token-efficient CLI for mobile and web UI testing, built for AI agents. A TypeScript reimplementation and partial fork of Maestro that bundles its own native drivers — no external CLI, no setup friction, no nonsense.

Install

npm install -g @houwert/conductor

That's it. Conductor is a pure CLI — no Claude Code plugin or skill is registered. Wire it into your agent through a custom CLAUDE.md, a project skill, or a slash command.

Highlights
🎯

Built for agents

Output is short and human-readable by default; opt into --json when you need machine-parseable results. Designed to be cheap on tokens.

📱

iOS, Android, and web

Drive iOS simulators, Android emulators, and Playwright-controlled browsers through one CLI. Same commands, three platforms.

👀

Inspect and assert

Read the live view hierarchy with accessibility metadata, take screenshots, and assert visibility — all without writing flow YAML.

🧵

Multi-device parallel testing

Run flows on every booted device at once with run-parallel, or hand each agent its own device through a shared pool with file-based locking.

📦

Drivers bundled

No Maestro CLI, no extra setup. Native iOS, Android, and web drivers are downloaded on first use into ~/.conductor/drivers — and Argus ships its own copy out of the box.

🪵

Logs out of the box

Stream React Native Metro logs, native simctl/logcat output, or browser console events with a single conductor logs command.

Companion app

v0.5.0

Conductor Studio

The CLI gives your coding agent hands. Studio points those same hands at your test suite: a Maestro workbench with a live device, an agent that writes and repairs flows, and test cases to track what they cover. Same drivers, same commands, same devices — agentic development and agentic QA on one API.

  1. v0.30.0

    Highlights

    • Add Roku support. Roku devices are driven over the network with the External Control Protocol (ECP): the view hierarchy comes from `/query/app-ui` and is re-emitted as uiautomator XML so the existing element resolver handles it, input goes out as `/keypress/<key>` D-pad presses, text as `LIT_` keypresses, and screenshots through the developer web server's `/plugin_inspect` (digest auth).
  2. v0.29.3

    Fixes

    • Corrections from release-build runs on a Fire TV Stick 4K Max.
  3. v0.29.2

    Fixes

    • Three corrections from a release-build run on a Fire TV Stick 4K Max.