google/artemis

Open-source Android automation tool that runs natural-language tasks on real devices via CLI, web console, Python SDK, or MCP, claiming 99%+ on AndroidWorld.

  • 11.2k GitHub stars
  • Python
  • ⚖️ Apache-2.0
  • 🎯 Advanced
uv add "artemis-client @ git+https://github.com/google/artemis.git#subdirectory=packages/artemis-client"
google/artemis preview image

What it is

ARTEMIS turns natural-language instructions into Android automation, running workflows across apps on real phones or emulators. It offers a web console, a developer CLI, a Python SDK, and a native MCP server so AI IDEs such as Antigravity, Claude Code, Codex, and Windsurf can drive devices and collect Logcat output and screenshots. It has two execution profiles, Flash (fast reactive) and Pro (planning and verification).

Who it's for

  • Developers who want AI coding assistants to test apps on real Android devices through MCP
  • QA and test engineers automating end-to-end, exploratory, or long-running stability tests
  • Teams integrating device automation into pytest or CI/CD pipelines via the Python SDK

Requirements

Requirements

  • Android device with USB Debugging enabled, or an emulator, connected
  • Python 3.12+ (per the README badge)
  • ADB, scrcpy, FFmpeg and uv dependencies (the start script detects and auto-installs them)
  • Permission to install the Artemis Accessibility Helper on the device (installed automatically on the first task)

Setup

  1. Clone and launch on macOS/Linux

    Connect a device or emulator, then clone the repo and run the one-click startup script. It installs toolchains and offers to install the global MCP server and agent rules into detected AI IDEs.

    bash
    git clone https://github.com/google/artemis.git && cd artemis
    ./start.sh
  2. Clone and launch on Windows PowerShell

    Use .\start.bat in PowerShell. In Command Prompt, use start.bat instead.

    powershell
    git clone https://github.com/google/artemis.git
    cd artemis
    .\start.bat
  3. Install the MCP server for an IDE

    Install the MCP server and global rules for Antigravity, or for all supported AI IDEs.

    bash
    uv run artemis mcp --install antigravity
    
    uv run artemis mcp --install all
  4. Install the Python SDK client

    Install the zero-runtime-dependency client on the development machine. ADB, agents, models, and image processing stay on the device host.

    powershell
    uv add "artemis-client @ git+https://github.com/google/artemis.git#subdirectory=packages/artemis-client"

Examples

Run a task from the CLI

bash
bash
uv run artemis run "Open Settings, find Battery and tell me current level" --profile flash

What it does: Runs a natural-language task directly from the terminal using the fast Flash profile.

Run a test with the Python SDK

python
python
import asyncio
from artemis_client import ArtemisClient


async def main():
    client = ArtemisClient(
        "http://artemis-host:8000",
        device_serial="emulator-5554",  # optional: target specific device serial
        default_profile="flash",  # "flash" (fast reactive) or "pro" (deep reasoning)
    )

    result = await client.run(
        "Open System Settings, go to 'Battery', verify battery percentage is displayed, and check for any crash dialogs.",
    )

    assert result.succeeded, f"Test failed: {result.error or result.status}"
    print(f"✅ Test Passed! Device: {result.device_serial} | Trace ID: {result.trace_id}")


if __name__ == "__main__":
    asyncio.run(main())

What it does: Connects to an ARTEMIS host, runs a task on a chosen device, and asserts that it succeeded.

Prompt the phone from an IDE chat

Prompt
prompt
Build the latest changes into an APK, install it on the connected device, open the login screen with a test account, verify if there are any unexpected popups after login, and return screenshots of the final page.

Expected output: Example prompt for Codex, Antigravity, or Claude Code once the MCP server is configured.

Pros & cons

Pros

  • Pro:Multiple interfaces: web console, CLI, Python SDK, and a native MCP server for AI IDEs
  • Pro:Flash and Pro profiles trade speed against planning and verification depth
  • Pro:Multimodal element locating (accessibility hierarchy, OCR, visual models) with coordinate fallbacks for custom UIs
  • Pro:Claims a 99%+ completion rate on the AndroidWorld benchmark

Cons

  • Con:Installs an Accessibility Helper service on the phone, which appears as a notification and a Settings > Accessibility entry
  • Con:Flash profile has no task plan or notes, no pre-execution safety net, no checkpoint verification or final report, and no ADB shell
  • Con:Pro profile is slower, at about 15–40s per step versus 3–5s for Flash

Images