ARTEMIS is an open-source project by Google, with the goal of turning natural language instructions into reliable Android automation operations. It targets the scenario of "letting AI assistants and test suites use real phones like humans," can execute end-to-end workflows, collect logs, and integrate with AI coding assistants such as Antigravity, Codex, and Claude Code. Google states that it achieves a 99%+ task completion rate on Google Research's AndroidWorld benchmark (covering 20+ apps and 100+ multi-step tasks).
Main capabilities Cross-app automation: execute test workflows and daily tasks on Android according to natural language instructions. Multimodal targeting: prioritize element indices, and fall back to coordinate-based targeting and visual targeting on custom interfaces. IDE diagnostics: through MCP (Model Context Protocol) integration, allow Antigravity, Claude Code, Windsurf, and others to drive test devices and collect Logcat output and screenshots. Two execution modes: Flash is a responsive "observe-act" loop with asynchronous history summarization, typically 3-5 seconds per step; Pro checks the target before executing a single action and hands blocked actions back to the Operator for recovery, supporting long-duration exploration and stability testing.
Usage and integration entry points Web visual test console (uv run artemis ui): provides real-time screen mirroring and an interactive panel, supporting natural language test dispatch, real-time telemetry of the reasoning process, action trajectories, and execution replay. MCP server: connects MCP clients such as Antigravity, Claude Code, and Windsurf to real devices for defect reproduction and test execution. Developer CLI (uv run artemis run): directly executes automated test cases, exploratory stability checks, or the AndroidWorld benchmark in the terminal, and outputs structured results. Python SDK: integrates as a standard Python library into existing automated testing frameworks such as pytest or CI/CD pipelines, supporting strongly typed Pydantic structured output and assertions. One-click startup script (./start.sh for macOS/Linux, start.bat for Windows): detects and automatically installs ADB, scrcpy, FFmpeg, and Python (uv) dependencies, and prompts to install the global MCP configuration and the Artemis mobile testing rules (rules.md) into the detected AI IDE; then opens in the browser http://localhost:8000,提供设备连接向导、实时投屏、提示词沙箱与执行回放。 Manual configuration: you can run uv run artemis mcp --generate-config <client> (such as codex or antigravity) to output the corresponding TOML or JSON snippet; you can also configure MCP interactively via uv run artemis init. Behavior rule mounting: the project provides mcp_server/rules.md, covering "actively explore before coding", "Flash and Pro routing strategy", "latency and timing compensation", "dynamic-first, coordinate fallback" localization modes, etc., and can be mounted to Antigravity, Claude Code, Cursor, Codex, Windsurf, and other IDEs.
Device-side notes The first task installs Artemis Accessibility Helper on the device, a small accessibility service that reads the screen layout and does not occupy a UiAutomation connection. The first task has about a 3-second delay; it can be installed in advance with uv run artemis helper install; to check status, use uv run artemis helper status or uv run artemis doctor; to uninstall, use uv run artemis helper uninstall. You can set ARTEMIS_HIERARCHY_BACKEND=uiautomator in .env to switch to UIAutomator2, or set ARTEMIS_HELPER_AUTO_INSTALL=false to prevent automatic installation. If the accessibility service fails during a task, ARTEMIS falls back to UIAutomator2 and explains this in the task timeline, mobile_manage_task status, and final report. This accessibility service only listens locally on the phone and does not send data anywhere else.
Architecture highlights Before executing a single action, Pro checks the target against the live UI tree and pixels; action bursts can handle transient controls consecutively without waiting for another model turn. Element localization combines the accessibility hierarchy, OCR, and vision models, covering custom Canvas, Compose, and Flutter interfaces. Flash and Pro share a history compression mechanism, replacing earlier screenshots with visual summaries and compressing completed steps intosearchable history fragments, with context thresholds controlling when replacement occurs.
Applicability and limitations of Flash and Pro Flash (--profile flash): a fast, token-saving reactive loop, about 3–5 seconds per step, in which a single model observes the live screen, thinks, and acts, with no graph orchestration. Suitable for routine, deterministic UI tasks. The loop is unlimited by default (agent.flash.max_turns, 0 means unlimited), because history is compressed rather than truncated; it can share the session record ledger with Pro (session-relative T+mm:ss timing, screenshots folded into visual summaries, earlier steps chunked and recallable on demand via search_history / replay_steps), and can query session recordings via video_analyzer. For transient UI (auto-fading control bars, Toasts), click_sequence can chain multiple clicks into one operation. Limitations: no task plan or notes, no pre-execution safety net, no checkpoint verification or final report, and no ADB shell support. Pro (--profile pro): a planning and verification workflow, about 15–40 seconds per step, based on a multi-agent graph. The Planner maintains a Markdown task plan with milestones and verify / assert check items; the Operator executes with the full toolset (Explorer grounding, whose flash / pro / ultra tiers are set by the user in configuration per profile, such as pro.explorer.mode / flash.explorer_mode in config/artemis.jsonc or --explorer-pro-mode; the agent does not choose on its own; it also includes notes, history recall, video analysis, and ADB diagnostics). Every action goes through a pre-execution safety net (XML first, pixel fallback), and rapid multi-action bursts can be triggered consecutively to handle transient UI. Blocked or failed actions open an execution event that remains in the Operator context until a subsequent action succeeds, and the Operator handles recovery itself; there is no separate repair agent. A read-only Checker verifies plan checkpoints and performs a final exit review against the original goal (--verification-level: off / final (default) / checkpoints / strict), modifications to planned milestones will receive advisory review. Suitable for long-term workflows of 100+ steps, [Loop:continuous] monitoring, and optional written reports.
Roadmap (officially listed) Android Studio integration: native IDE plugin and workflow integration, debugging within the editor, recording tests, and automatically controlling devices. iOS platform expansion: extending multimodal perception and mobile automation to iOS devices and simulators. On-device lightweight VLM: using edge lightweight vision models for local execution, achieving low-latency, privacy-first automation. Real-time full-duplex voice interaction: voice-driven task dispatch, supporting real-time conversational control and interruption handling.
Community and License The project welcomes contributions; you can Star the repository, join the Discord community, submit Issues or Pull Requests. It is licensed under the Apache License 2.0. Third-party code not owned by Google is located under third_party/, with one directory per upstream project, each with its own LICENSE and METADATA; for example, some code in third_party/mobile_use comes from Minitap, Inc., under the Apache License 2.0.
Limitations and additions: The official documentation does not provide specific pricing or cost information; other features and effects not described here are not yet available in the materials.