The Problem
Traditional Android UI automation relies on brittle selectors (XPath/ID) that break with interface revisions, requiring constant maintenance. ARTEMIS addresses this fragility with a "Dynamic-First, Coordinate-Fallback" multimodal locating engine designed to remain resilient to UI redesigns and resolution drift.
What This Does
The core artemis/ package (531 Python files) processes natural-language instructions into executable test plans. It integrates via the Model Context Protocol (mcp_server/, 24 files), enabling assistants like Antigravity to drive physical test devices. A key architectural feature is the "Optimistic Asynchronous Pipeline," routed through artemis/__main__.py, which decouples UI interaction from heavy LLM reasoning to achieve 3–5s step execution. The system captures logcat stacks and keyframe screenshots for debugging and achieved 99%+ task completion on the AndroidWorld benchmark.
How It Is Wired
Control flows from an MCP request into the artemis execution engine. The mcp_server/ receives the natural language prompt and triggers plan generation. Execution is managed by the pipeline in artemis/, which interacts with the device and writes results to the database managed by apps/admin_console/database/repositories/. The apps/admin_console provides the administrative UI for task management, routing through apps/admin_console/routers/ and handling state via apps/admin_console/core/state.py. The mcp_server acts as the primary hub connecting external AI assistants to this internal flow, touching the device, the filesystem (screenshots), and the network (logcat capture).
How To Use It
Setup:
git clone https://github.com/moses-y/artemis.git
cp .env.example .env
Configuration: Required environment variables and keys are defined in .env.example. The playground/artemis_container/docker-compose.yml provides a pre-configured Docker setup for rapid deployment.
Running it:
# Via Docker Compose
docker compose up --build -d
# Or directly from source
python -m artemis
The entry point is artemis/__main__.py.
Real-World Use
A QA engineer describes a multi-app workflow via Antigravity: "Navigate to Google Maps, set a driving route to the airport, then open YouTube and play a specific artist." ARTEMIS generates a step-by-step plan, executes the actions across the Android device, and returns a diagnostic report containing logcat stacks and keyframe screenshots, enabling immediate triage without manual script maintenance.
Code Health & Issues
Static analysis of the repository structure found no red flags. The project includes 217 test files, a CI configuration at .github/workflows/ci.yml, an Apache 2.0 license (LICENSE), and package lockfiles (package-lock.json, pyproject.toml). All expected SDLC artifacts are present.
The Bottom Line
ARTEMIS is a capable framework for autonomous Android automation with strong benchmark performance and unique MCP integration for AI assistant workflows. The Python/TypeScript split and dual-container deployment profile indicate an enterprise-ready tool, though the setup complexity may be overkill for simple scripting needs. It is well-suited for teams requiring reliable cross-app testing without selector maintenance.