artemis README

The project's README from github.com/google/artemis. As one markdown file: README.md.

ARTEMIS Banner

Let AI assistants and test suites use real phones like a human.

English • 中文文档 • Workflow Showcase • Quick Start • MCP for IDEs • Benchmarks • Discord Community

Python 3.12+ License: Apache-2.0 MCP Native Multi-Model AndroidWorld SOTA

Artemis in Action
Live Demo: Setup driving routes and calculate total durations in Google Maps, then open YouTube to play a Coldplay song.

Key Highlights

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

Step 1: Prompt Input in Antigravity
2. Test Plan Generation
Formulates a step-by-step test plan & architecture for review

Step 2: Test Plan Generation
3. Autonomous Test Execution
Drives real device, navigates UI, and profiles performance

Step 3: Autonomous Test Execution
4. Final Report
Delivers structured audit findings, metric tables, and raw datasets

Step 4: Final Report

Quick Start

Ensure an Android device (with USB Debugging enabled) or emulator is connected. The one-click startup script will automatically:

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.bat without a trailing \. In Command Prompt (CMD), use start.bat instead.

Tip: Opens http://localhost:8000 in 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.

MCP Setup for Codex / Antigravity / Claude Code / Windsurf (Click to expand)

ARTEMIS includes a native Model Context Protocol (MCP) server. Connect your real phone directly into AI IDEs:

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

Tip: You can also configure MCP interactively during first-time setup via uv run artemis init. Pro Tip: If you want to use the artemis command globally without uv run in any directory, run uv tool install -e . once in the project root.

2. Manual Configuration (Optional)

If you prefer to configure manually, run uv run artemis mcp --generate-config <client> (for example, codex or antigravity) to output the appropriate TOML or JSON snippet. Replace /path/to/artemis with your actual repo path and point command to your .venv Python executable:

  • Codex (~/.codex/config.toml):
[mcp_servers.artemis]
command = "/path/to/artemis/.venv/bin/python"
args = ["-m", "mcp_server"]
cwd = "/path/to/artemis"

[mcp_servers.artemis.env]
PYTHONUNBUFFERED = "1"
PYTHONPATH = "/path/to/artemis"
  • Antigravity (~/.gemini/jetski/mcp_config.json):
{
  "mcpServers": {
    "artemis": {
      "command": "/path/to/artemis/.venv/bin/python",
      "args": ["-m", "mcp_server"],
      "cwd": "/path/to/artemis",
      "env": {
        "PYTHONUNBUFFERED": "1"
      },
      "tools": {
        "mobile_run_task": { "eager": true },
        "mobile_manage_task": { "eager": true },
        "mobile_get_device_state": { "eager": true },
        "mobile_inspect_trace": { "eager": true },
        "mobile_diagnose": { "eager": true }
      }
    }
  }
}
  • Claude Desktop (claude_desktop_config.json):
{
  "mcpServers": {
    "artemis": {
      "command": "/path/to/artemis/.venv/bin/python",
      "args": ["-m", "mcp_server"],
      "cwd": "/path/to/artemis"
    }
  }
}

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 (covering Active Exploration before coding, Flash vs. Pro routing strategy, Latency & Timing compensation, and the "Dynamic-First, Coordinate-Fallback" locator pattern).

You can mount or copy mcp_server/rules.md into your AI IDE's rule configuration:

  • Antigravity: Add the contents of rules.md to your Workspace Rules, Global Rules settings, or agent instructions.
  • Claude Code: Run artemis mcp --install claude to install the rules to ~/.claude/rules/artemis.md (install to exactly one location — Claude Code loads both ~/.claude/CLAUDE.md and ~/.claude/rules/*.md, so duplicating the rules wastes context).
  • Cursor: Copy the contents into .cursorrules or create a rule file at .cursor/rules/artemis.mdc.
  • Codex: Add the contents to ~/.codex/AGENTS.md (or the active AGENTS.override.md).
  • Windsurf / OpenClaw: Add the rules to your workspace rules or global system prompts.

For more details on the testing mindset and MCP architecture, see the MCP Server README.

4. Prompt Your Phone in the IDE Chat

In Codex, Antigravity, or Claude Code, simply 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."

Python SDK Integration (Click to expand)

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

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",  # 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())

Usage Modes

Artemis Web Console
Console Overview: ① View Switcher (Home / Workspace) · ② Model & Replay (Flash/Pro status & video replay) · ③ Live Agent Stream (Action perception, target coordinates & structured results) · ④ Prompt Dock (Natural language dispatch) · ⑤ Task Queue & Dashboard (Lifecycle & history)

Benchmarks: AndroidWorld (SOTA 99%+)

Artemis achieved a 99%+ completion rate on AndroidWorld, Google Research's benchmark spanning 20+ apps and 100+ multi-step tasks.

AndroidWorld Benchmark Comparison

How ARTEMIS is Architected

ARTEMIS System Architecture Diagram

Execution Profiles: Flash vs. Pro

ARTEMIS supports two execution profiles tailored for different automation requirements:

Roadmap

Community & Contributing

Contributions are warmly welcomed!

License

This project is licensed under the Apache License 2.0.

artemis (google/artemis)

Searching Database…

12.1K ·GitHub
这是什么?ARTEMIS 让 AI 助手和测试套件能够通过自然语言指令控制真实的 Android 手机,自动完成端到端的工作流程,同时记录日志和截图。
这是命令行工具、Python 库,还是别的什么?三者兼有:一个面向开发者的命令行工具(uv run artemis run)、一个带有 Pydantic 结构化输出的 Python SDK(可用于 pytest 等框架)、一个原生 MCP 服务器,以及一个网页版可视化测试控制台。
怎样才能让它运行起来?用已开启 USB 调试的 Android 设备(或模拟器)连接电脑,然后运行一键启动脚本:macOS/Linux 运行 start.sh,Windows 运行 start.bat。脚本会通过 uv 自动安装 ADB、scrcpy、FFmpeg 和 Python 依赖项。
ARTEMIS 的 MCP 服务器支持哪些 AI 编程助手?ARTEMIS 原生的 MCP 服务器可接入 Antigravity、Codex、Claude Code、Windsurf、Cursor、VS Code、Cline/Roo 和 OpenClaw,让它们直接操控已连接的手机。
Flash 和 Pro 两种执行模式之间有什么取舍?Flash 是快速的响应式循环(每步约 3–5 秒),适合日常界面任务,但没有任务计划、安全兜底机制、检查点验证,也不支持 ADB shell。Pro 是较慢(每步约 15–40 秒)的多智能体工作流,由 Planner、Operator 和 Checker 协作,其中 Checker 负责验证检查点并生成最终报告。
这个工具是为谁设计的?它面向移动端 QA 工程师和开发者,希望在真实 Android 设备上进行 AI 驱动的探索性测试和回归测试,并将其直接集成到他们的编程 IDE 工作流中。
ARTEMIS 在基准测试中表现如何?它在 Google Research 的 AndroidWorld 基准测试中任务完成率达到 99% 以上,该基准涵盖 20 多个应用和 100 多个多步骤任务。
它也支持 iOS 吗?暂不支持。iOS 平台的扩展已列入路线图,与 Android Studio 集成以及端侧轻量级 VLM 一同推进。
ARTEMIS 如何找到要交互的界面元素?它结合无障碍层级结构、OCR 和视觉模型。有元素索引时优先使用索引;对于自定义 Canvas、Compose 和 Flutter 界面,则回退到坐标或视觉定位。
为什么要把 rules.md 文件安装到我的 AI IDE 中?它会教 AI 助手资深移动测试工程师的测试思路(主动探索、Flash 与 Pro 的路由选择、延迟补偿),从而避免它凭空臆造界面操作。
Creator
google
Size
25.2 MB
Stars
12.1K
Updated
CommitSep 29
Age
2mo
Commits · 90 Days