Androperator
Your agent decides. Androperator executes and reports.
Free and fully open source. Licensed under Apache 2.0.
Androperator (“Android Operator”) gives your agent visibility and control inside Android apps. UI snapshots, screenshots, taps, text entry, and more, through a deterministic API.
The loop is simple. Your agent chooses a command. Androperator executes it on a device or emulator and reports the result. Your agent can inspect the updated screen, check what changed, and choose its next move. That's how a plan becomes work you can see in the running app.
Connect through the CLI, MCP server, or HTTP API. Put your coding agent to work building features, turning vague bug reports into repeatable steps, and checking fixes with evidence to back up its conclusions.
Give every PR an automated QA pass
Pull request ready? Let your agent try the fix in the running app. Androperator gives it the controls and visibility to replay the bug and check what changed. You get a QA report with screenshots before you review.
Ask your agent: “Check the display-setting fix against these reproduction steps. Verify that the preference survives closing and reopening the app. Write a report with pass/fail results, screenshots, and anything you couldn't verify.”

Your agent reports what passed, what failed, and what it couldn't verify, with evidence for you to review. Run the same checks again for the next fix, or give it your broader QA checklist.
Turn “it sometimes breaks” into a proper bug report
“The appearance setting is broken.” That's a starting point, but it's hard to fix a bug you can't reproduce. Ask your agent to investigate in the running app, try the likely paths, and narrow down what triggers it. Androperator runs the requested actions and observations, giving the agent fresh evidence to decide which path to try next.
Put Androperator on the case:
Use `androperator` to investigate a user bug report: "The appearance setting is broken."
The agent will try and output reliable steps to reproduce the bug for handoff for the ticket. If the agent can't reproduce the bug, it can record what it tried and what's still unknown.
Give your coding agent eyes and hands
A fix can look right in code and still be wrong on screen. Let your agent open the app, reproduce the bug, and check its work where you'll actually use it. Screenshots show the layout; UI snapshots give the agent controls to target.
Ask your agent: “Reproduce the settings bug, fix it, then use Androperator to check the updated screen on the emulator.”
flowchart LR
accTitle: Android development feedback loop
accDescr: The agent changes code, the development tools build and launch the app, and Androperator returns UI evidence for the agent to check.
A[Agent changes code] --> B[Build and launch app]
B --> C[Androperator reports UI state]
C --> D[Agent checks the result]
D --> A
Your development tools build and install the app. Androperator lets your agent interact with it and inspect the result. That feedback brings the running app into the coding loop: change the code, try it on the device, see what needs work.
How it works
Androperator connects your agent's decisions to what's happening on the device. It validates and executes explicit commands, reports action results and errors, and exposes the UI through snapshots and screenshots. Your agent uses that feedback to plan the next step, check an outcome, or investigate a failure.
flowchart TB
accTitle: Decide, execute, report, repeat
accDescr: The agent decides what to do and calls Androperator through the CLI, MCP server, or HTTP API. Androperator uses adb and the Androperator Operator App to execute commands and report results and UI evidence for the next decision.
A[Your agent decides] -->|CLI / MCP / HTTP| B[androperator]
B -->|adb| C[Androperator Operator App on Android]
C -->|Accessibility actions| D[Your app]
D -->|UI state| C
C -->|Structured results| B
B -->|Results and UI evidence for the next decision| A
classDef cli font-family:monospace;
class B cli;
The Node.js CLI runs on your computer. The Androperator Operator App uses accessibility to inspect and interact with apps on a connected phone or emulator. Screenshots capture the device display. No app-specific SDK integration is required; UI hierarchy visibility depends on what the app exposes through Android accessibility.
- Observe: XML UI snapshots and compact JSON hierarchies, node queries, screenshots, and recordings.
- Act: open apps, tap, type, scroll, swipe, and drag.
- Report: structured action results and explicit errors give your agent feedback it can check alongside UI observations.
Your agent can use the API directly or follow a reusable skill for a familiar workflow. Either way, the decisions stay with your agent.
Quick Start
Instruct your agent:
Read https://androperator.com/skill.md and get me set up with Androperator.
curl -fsSL https://androperator.com/install.sh | bash
brew install androperator/tap/cli
androperator install
Homebrew installs the CLI and Node.js. Upgrade with
brew upgrade androperator/tap/cli.
npm install -g @androperator/cli
androperator install
No Android device handy? Have Androperator create an emulator for you:
androperator emulator provision
Emulator provisioning needs a supported host and Android SDK emulator tools. For a physical phone, enable USB debugging and authorize the computer. Follow the setup guide for prerequisites and permissions, and emulator guidance for host requirements.
Take a look around
Check your device is ready, open Settings, and grab a snapshot and screenshot:
androperator doctor
androperator open com.android.settings
androperator snapshot --compact
androperator screenshot --path /tmp/android-screen.png
Pass --device explicitly when multiple targets are connected.
Keep going
- Quickstart - your first device interaction.
- Setup - host requirements and Android permissions.
- API overview - CLI, HTTP, actions, and results.
- MCP server - connect an agent through MCP.
- Recording - capture a flow and its evidence.
- Troubleshooting - diagnose setup and runtime failures.
Androperator was formerly known as Clawperator. See the migration guide and release notes.