CLI · Open source · MIT

v0.15.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.

  1. v0.15.0

    Highlights

    • `conductor start-device --platform android` can now auto-create an AVD when one

    Fixes

    • Fix Android foreground-app detection on API 29+. The `dumpsys activity activities` regex only matched the legacy `mResumedActivity:` label; modern Android prints `ResumedActivity:` / `topResumedActivity=`, causing `conductor foreground-app` to fail with "Could not determine foreground app" and `conductor memory` (without an explicit app id) to silently fall back to system-only output. The regex now matches all three forms. As a side fix, `conductor memory` no longer requires the gRPC driver daemon to be running just to resolve the foreground app — it queries adb directly — and emits a clear note when no app can be resolved.
  2. v0.14.0

    Highlights

    • Expand `conductor memory` into a real cross-platform memory debugger.

    Fixes

    • Fix `list-devices` and `start-device` missing Android AVDs when the SDK isn't on PATH. Conductor now resolves `emulator`, `adb`, `avdmanager`, and `sdkmanager` from `ANDROID_HOME`/`ANDROID_SDK_ROOT` and the OS-default install locations (e.g. `~/Library/Android/sdk`), and surfaces a warning when `emulator -list-avds` fails so the failure isn't silent.
  3. v0.13.1

    Fixes

    • Fix conductor memory using stale session appId