
Natürlichsprachiger Android-Automatisierungsagent, der echte Geräte über ADB steuert, Logcat und Screenshots erfasst und einen MCP-Server für KI-IDEs und CI-Testpipelines bereitstellt.
Lass KI-Assistenten und Test-Suites echte Telefone wie ein Mensch nutzen.
English • 中文文档 • Workflow-Präsentation • Schnellstart • MCP für IDEs • Benchmarks • Discord-Community
Live-Demo: Routen in Google Maps einrichten und Gesamtdauer berechnen, dann YouTube öffnen, um einen Coldplay-Song abzuspielen.
Antigravity nutzt ARTEMIS über MCP, um eine Testanfrage in einen Plan, eine Geräteausführung und einen Diagnosebericht zu verwandeln:
Stelle sicher, dass ein Android-Gerät (mit aktiviertem USB-Debugging) oder ein Emulator verbunden ist. Das Ein-Klick-Startskript wird automatisch:
uv-)Abhängigkeiten erkennen und automatisch installieren.rules.md) in deine KI-IDEs (Antigravity, Cursor, Claude Code, Codex, Windsurf, VS Code, Cline/Roo, OpenClaw).# 1. Clone repo & navigate to directory
git clone https://github.com/google/artemis.git && cd artemis
# 2. One-click launch
./start.sh
# 1. Clone repo & navigate to directory
git clone https://github.com/google/artemis.git
cd artemis
# 2. One-click launch
.\start.bat
PowerShell durchsucht standardmäßig nicht das aktuelle Verzeichnis nach ausführbaren Skripten, verwende daher
.\start.batohne abschließenden\. In der Eingabeaufforderung (CMD) verwende stattdessenstart.bat.
Tipp: Öffnet
http://localhost:8000in deinem Standardbrowser mit einem Geräteverbindungs-Assistenten, Live-Bildschirmspiegelung, Prompt-Sandbox und Ausführungswiedergaben. Du kannst auch direkt über die CLI ausführen:uv run artemis run "Open Settings, find Battery and tell me current level" --profile flash.
ARTEMIS enthält einen nativen Model Context Protocol (MCP)-Server. Verbinde dein echtes Telefon direkt mit KI-IDEs:
Das Ausführen von ./start.sh (macOS/Linux) oder .\start.bat (Windows PowerShell) fordert dich auf, globale MCP- und Testregeln für erkannte IDEs zu konfigurieren (oder du kannst sie jederzeit später manuell mit den folgenden Befehlen installieren/aktualisieren):
# 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
Tipp: Du kannst MCP auch interaktiv während der Ersteinrichtung über
uv run artemis initkonfigurieren. Pro-Tipp: Wenn du den Befehlartemisglobal ohneuv runin jedem Verzeichnis verwenden möchtest, führe einmaliguv tool install -e .im Projektstammverzeichnis aus.
Installiere den Client ohne Laufzeitabhängigkeiten auf dem Entwicklungsrechner. ADB, Agenten, Modelle und Bildverarbeitung verbleiben auf dem Gerätehost:
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())
Konsolenübersicht: ① Ansichtswechsler (Home / Workspace) · ② Modell & Wiedergabe (Flash/Pro-Status & Video-Wiedergabe) · ③ Live-Agent-Stream (Aktionswahrnehmung, Zielkoordinaten & strukturierte Ergebnisse) · ④ Prompt-Dock (Versand per natürlicher Sprache) · ⑤ Aufgabenwarteschlange & Dashboard (Lebenszyklus & Verlauf)
uv run artemis ui): Echtzeit-Bildschirmprojektion und interaktives Panel, das Versand von Tests per natürlicher Sprache, Live-Reasoning-Telemetrie, Aktionsverläufe und Ausführungswiedergabe unterstützt; verwalte den Server-Lebenszyklus jederzeit von jedem Terminal aus mit uv run artemis restart, uv run artemis stop und uv run artemis status;uv run artemis run): Direkte Terminal-Ausführung für automatisierte Testfälle, explorative Stabilitätsprüfung oder AndroidWorld-Benchmarks mit hochauflösender strukturierter Terminal-Ausgabe;Die erste Aufgabe auf einem Gerät installiert den Artemis Accessibility Helper, einen kleinen
Barrierefreiheitsdienst, der das Bildschirmlayout liest, ohne die
UiAutomation-Verbindung zu belegen. Tools, die UiAutomation verwenden, können den Helper unterdrücken, es sei denn,
sie aktivieren FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES. Du siehst
eine eingeklappte Benachrichtigung "Artemis test helper is running" und einen neuen Eintrag unter
Einstellungen > Barrierefreiheit; beides ist dieser Helper. Er lauscht nur auf dem Telefon
selbst und sendet nichts andernorts hin.
uv run artemis helper installuv run artemis helper status / uv run artemis doctoruv run artemis helper uninstallARTEMIS_HIERARCHY_BACKEND=uiautomator in .envARTEMIS_HELPER_AUTO_INSTALL=false in .envWenn der Helper jemals mitten in einer Aufgabe ausfällt, fällt ARTEMIS auf UIAutomator2 zurück und teilt dies
in der Aufgaben-Timeline, im mobile_manage_task-Status und im Abschlussbericht mit.
Artemis erreichte eine Abschlussrate von 99 %+ bei AndroidWorld, dem Benchmark von Google Research, der 20+ Apps und 100+ mehrstufige Aufgaben umfasst.
ARTEMIS unterstützt zwei Ausführungsprofile, die auf unterschiedliche Automatisierungsanforderungen zugeschnitten sind:
--profile flash): Schnelle und token-effiziente reaktive Schleife (~3–5 s pro Schritt): Ein Modell beobachtet den Live-Bildschirm, denkt nach und handelt, ohne Graph-Orchestrierung. Ideal für routinemäßige, deterministische UI-Aufgaben. Die Schleife ist standardmäßig unbegrenzt (agent.flash.max_turns, 0 = unbegrenzt), da der Verlauf komprimiert statt begrenzt wird: Flash teilt das Pro-Session-Transkript-Ledger (sitzungsrelative T+mm:ss-Uhr, Screenshots in visuelle Zusammenfassungen gefaltet, ältere Schritte in Epochen aufgeteilt und bei Bedarf über search_history / replay_steps abrufbar) und kann die Sitzungsaufzeichnung über video_analyzer abfragen. Kurzlebige UI (automatisch ausblendende Steuerleisten, Toasts) wird durch Verkettung von Taps in eine click_sequence behandelt. Einschränkungen: Kein Aufgabenplan oder Notizen, kein Sicherheitsnetz vor der Ausführung, keine Checkpoint-Verifizierung oder Abschlussbericht und keine ADB-Shell.--profile pro): Ein Planungs- und Verifizierungs-Workflow (~15–40 s pro Schritt), aufgebaut als Multi-Agent-Graph. Ein Planner pflegt einen lebendigen Markdown-Aufgabenplan mit Meilensteinen und verify / assert-Prüfelementen; der führt ihn mit dem vollständigen Toolset aus (Explorer-Grounding, dessen / / -Stufe eine Benutzereinstellung pro Profil ist — / in oder — niemals vom Agenten gewählt; Notizen, Verlaufsabruf, Videoanalyse, ADB-Diagnose). Jede einzelne Aktion durchläuft ein vor der Ausführung (XML-first, Pixel-Fallback), während Multi-Action- direkt hintereinander ausgeführt werden, um die Turn-Latenz bei kurzlebiger UI zu schlagen. Eine blockierte oder fehlgeschlagene Aktion eröffnet einen , der im Kontext des Operators bleibt, bis eine spätere Aktion erfolgreich ist, sodass die Wiederherstellung vom Operator selbst ohne separaten Reparatur-Agenten gehandhabt wird. Ein schreibgeschützter verifiziert Plan-Checkpoints und führt eine abschließende Exit-Überprüfung gegen das ursprüngliche Ziel durch (: / (Standard) / / ), und Änderungen an Plan-Meilensteinen erhalten eine beratende Überprüfung. Bewältigt 100+ Schritte umfassende Langhorizont-Workflows, -Überwachung und einen optionalen schriftlichen Bericht.Beiträge sind herzlich willkommen!
Dieses Projekt ist unter der Apache License 2.0 lizenziert.
Dieses Projekt enthält Quellcode, der von Minitap, Inc. entwickelt wurde.
|
1. Prompt-Eingabe (Aufgabenverteilung) Beschreibe dein Testszenario und deine Zielmetriken in Antigravity
|
2. Testplan-Generierung Erstellt einen schrittweisen Testplan und eine Architektur zur Überprüfung
|
|
3. Autonome Testausführung Steuert ein echtes Gerät, navigiert durch die UI und erstellt Leistungsprofile
|
4. Abschlussbericht Liefert strukturierte Audit-Ergebnisse, Metriktabellen und Rohdatensätze
|
Wenn du die Konfiguration lieber manuell vornimmst, führe uv run artemis mcp --generate-config <client> aus (zum Beispiel codex oder antigravity), um das passende TOML- oder JSON-Snippet auszugeben. Ersetze /path/to/artemis durch deinen tatsächlichen Repo-Pfad und richte command auf deine .venv-Python-Executable aus:
~/.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"
~/.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_config.json):{
"mcpServers": {
"artemis": {
"command": "/path/to/artemis/.venv/bin/python",
"args": ["-m", "mcp_server"],
"cwd": "/path/to/artemis"
}
}
}
Um sicherzustellen, dass dein KI-Coding-Assistent mit der Gründlichkeit eines Senior Mobile Test Engineers agiert und niemals UI-Interaktionen halluziniert, stellen wir eine dedizierte Testing-Mindset-Regeldatei unter mcp_server/rules.md bereit (mit Active Exploration before coding, Flash- vs. Pro-Routing-Strategie, Latenz- und Timing-Kompensation und dem "Dynamic-First, Coordinate-Fallback"-Locator-Muster).
Du kannst mcp_server/rules.md in die Regelkonfiguration deiner KI-IDE einbinden oder kopieren:
rules.md zu deinen Workspace Rules, Global Rules-Einstellungen oder Agent-Anweisungen hinzu.artemis mcp --install claude aus, um die Regeln nach ~/.claude/rules/artemis.md zu installieren (installiere sie an genau einem Ort — Claude Code lädt sowohl ~/.claude/CLAUDE.md als auch ~/.claude/rules/*.md, sodass duplizierte Regeln Kontext verschwenden)..cursorrules oder erstelle eine Regeldatei unter .cursor/rules/artemis.mdc.~/.codex/AGENTS.md hinzu (oder zur aktiven AGENTS.override.md).Weitere Details zum Testing-Mindset und zur MCP-Architektur findest du in der MCP Server README.
In Codex, Antigravity oder Claude Code gib einfach folgenden Prompt ein:
"Baue die neuesten Änderungen in eine APK, installiere sie auf dem verbundenen Gerät, öffne den Login-Bildschirm mit einem Testkonto, überprüfe, ob nach dem Login unerwartete Popups erscheinen, und gib Screenshots der finalen Seite zurück."
flashproultrapro.explorer.modeflash.explorer_modeconfig/artemis.jsonc--explorer-pro-mode--verification-levelofffinalcheckpointsstrict[Loop:continuous]