ARTEMIS (GitHub Repo)
ARTEMIS is an open-source tool that allows AI coding assistants to interact with real Android devices by interpreting natural language as UI actions.
Decoder
- Model Context Protocol (MCP): A standard developed by Anthropic to help AI assistants connect to local data sources and tools.
- UIAutomator: A testing framework for Android to interact with UI components regardless of the app being tested.
- Scrcpy: A utility for mirroring Android screens and controlling devices via ADB.
- Logcat: A command-line tool that dumps a log of system messages, including stack traces and app output.
Original article
Let AI assistants and test suites use real phones like a human.
Key Highlights
- Cross-App Automation: Executes testing workflows and everyday tasks on Android from natural language instructions.
- Multimodal Targeting: Uses element indices when available, with coordinate and visual locating fallbacks for custom interfaces.
- IDE Diagnostics: Model Context Protocol (MCP) integration lets Antigravity, Claude Code, and Windsurf drive test devices and collect Logcat output and screenshots.
- Flash Execution: A reactive observe-and-act loop with asynchronous history summaries, typically 3–5s per step.
- Pro Exploration: Checks targets before individual actions and returns blocked actions to the Operator for recovery. Supports long-running exploratory and stability tests.
- AndroidWorld Results: 99%+ task completion on Google Research's AndroidWorld benchmark (100+ multi-step tasks).
Antigravity × ARTEMIS: Autonomous Testing Workflow
Antigravity uses ARTEMIS through MCP to turn a test request into a plan, device execution, and a diagnostic report:
| 1. Prompt Input (Task Dispatch) Describe your test scenario and target metrics in Antigravity |
2. Test Plan Generation Formulates a step-by-step test plan & architecture for review |
| 3. Autonomous Test Execution Drives real device, navigates UI, and profiles performance |
4. Final Report Delivers structured audit findings, metric tables, and raw datasets |
Quick Start
Ensure an Android device (with USB Debugging enabled) or emulator is connected. The one-click startup script will automatically:
- Install System Toolchains: Detect and auto-install ADB, scrcpy, FFmpeg, and Python (
uv) dependencies. - Mount Global MCP Server & AI Agent Rules: Prompt to automatically install global MCP configurations and the Artemis Mobile Testing Mindset (
rules.md) into your AI IDEs (Antigravity, Cursor, Claude Code, Codex, Windsurf, VS Code, Cline/Roo, OpenClaw).
macOS and Linux
# 1. Clone repo & navigate to directory
git clone https://github.com/google/artemis.git && cd artemis
# 2. One-click launch
./start.sh
Windows PowerShell
# 1. Clone repo & navigate to directory
git clone https://github.com/google/artemis.git
cd artemis
# 2. One-click launch
.\start.bat
PowerShell does not search the current directory for executable scripts by default, so use
.\start.batwithout a trailing\. In Command Prompt (CMD), usestart.batinstead.
Tip: Opens
http://localhost:8000in your default browser with a device connection wizard, live screen mirroring, prompt sandbox, and execution replays. You can also run directly from CLI:uv run artemis run "Open Settings, find Battery and tell me current level" --profile flash.
ARTEMIS includes a native Model Context Protocol (MCP) server. Connect your real phone directly into AI IDEs:
1. One-Click Auto Install (Recommended)
Running ./start.sh (macOS/Linux) or .\start.bat (Windows PowerShell) will prompt you to configure global MCP and testing rules for detected IDEs (or you can install/update anytime later manually using the commands below):
# Auto-install MCP server & global rules for Antigravity / Jetski:
uv run artemis mcp --install antigravity
# Or install for all supported AI IDEs (including Codex):
uv run artemis mcp --install all
2. Manual Configuration (Optional)
If you prefer to configure manually, run uv run artemis mcp --generate-config <client> to output the appropriate TOML or JSON snippet.
3. Mount Behavioral Rules for AI Agents (Highly Recommended)
To ensure your AI coding assistant acts with the rigor of a senior mobile test engineer and never hallucinates UI interactions, we provide a dedicated testing mindset rules file at mcp_server/rules.md.
4. Prompt Your Phone in the IDE Chat
"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."
Python SDK Integration
uv add "artemis-client @ git+https://github.com/google/artemis.git#subdirectory=packages/artemis-client"
import asyncio
from artemis_client import ArtemisClient
async def main():
client = ArtemisClient(
"http://artemis-host:8000",
device_serial="emulator-5554",
default_profile="flash",
)
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())
Usage Modes
- Web Visual Test Console (
uv run artemis ui): Real-time screen projection and interactive panel. - MCP Server: Connects Antigravity, Claude Code, Windsurf, and other MCP clients to real devices for bug reproduction and test execution.
- Developer CLI (
uv run artemis run): Direct terminal execution for automated test cases. - Python SDK: Integrates as a standard Python library into existing automated testing frameworks (e.g., pytest) or CI/CD pipelines.
What ARTEMIS Installs on Your Phone
The first task on a device installs the Artemis Accessibility Helper, a small accessibility service that reads the screen layout.
Benchmarks: AndroidWorld (SOTA 99%+)
Artemis achieved a 99%+ completion rate on AndroidWorld, Google Research's benchmark spanning 20+ apps and 100+ multi-step tasks.
How ARTEMIS is Architected
- Pre-Execution Checks and Action Bursts: Pro checks the target against the live UI tree and pixels before dispatching an individual action.
- Element Locating: Combines accessibility hierarchies and OCR with visual models for custom Canvas, Compose, and Flutter interfaces.
- Shared History Compression: Flash and Pro replace older screenshots with visual summaries and compress completed steps into searchable history chunks.
Execution Profiles: Flash vs. Pro
- Flash Profile (
--profile flash): Fast and token-efficient reactive loop (~3–5s per step). Ideal for routine, deterministic UI tasks. - Pro Profile (
--profile pro): A planning and verification workflow (~15–40s per step), built as a multi-agent graph. Handles 100+ step long-horizon workflows.
Roadmap
- Android Studio Integration: Native IDE plugin and workflow integration.
- iOS Platform Expansion: Extending multimodal perception to iOS.
- On-Device Lightweight VLMs: Local execution with edge vision models.
- Real-time Duplex Voice Interaction: Voice-driven task dispatch.
License
This project is licensed under the Apache License 2.0.
Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi