
Agente di automazione Android in linguaggio naturale che controlla dispositivi reali tramite ADB, cattura Logcat e screenshot ed espone un server MCP per IDE basati su AI e pipeline di test CI.
Consenti agli assistenti AI e alle suite di test di usare telefoni reali come farebbe un umano.
English • 中文文档 • Workflow Showcase • Quick Start • MCP for IDEs • Benchmarks • Discord Community
Demo dal vivo: configura percorsi di guida e calcola le durate totali in Google Maps, poi apri YouTube per riprodurre una canzone dei Coldplay.
Antigravity usa ARTEMIS tramite MCP per trasformare una richiesta di test in un piano, esecuzione sul dispositivo e un report diagnostico:
Assicurati che un dispositivo Android (con USB Debugging abilitato) o un emulatore sia connesso. Lo script di avvio one-click eseguirà automaticamente:
uv).rules.md) nei tuoi IDE AI (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 non cerca gli script eseguibili nella directory corrente per impostazione predefinita, quindi usa
.\start.batsenza il backslash finale. Nel Prompt dei comandi (CMD), usa invecestart.bat.
Suggerimento: Apre
http://localhost:8000nel browser predefinito con una procedura guidata di connessione al dispositivo, mirroring dello schermo in tempo reale, sandbox per i prompt e replay delle esecuzioni. Puoi anche eseguire direttamente da CLI:uv run artemis run "Open Settings, find Battery and tell me current level" --profile flash.
ARTEMIS include un server nativo Model Context Protocol (MCP). Collega il tuo telefono reale direttamente negli IDE AI:
Eseguire ./start.sh (macOS/Linux) o .\start.bat (Windows PowerShell) ti chiederà di configurare MCP globale e le regole di testing per gli IDE rilevati (oppure puoi installare/aggiornare in qualsiasi momento manualmente usando i comandi seguenti):
# 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
Suggerimento: Puoi anche configurare MCP in modo interattivo durante il setup iniziale tramite
uv run artemis init. Pro Tip: Se vuoi usare il comandoartemisglobalmente senzauv runin qualsiasi directory, eseguiuv tool install -e .una volta nella root del progetto.
Installa il client a zero dipendenze runtime sulla macchina di sviluppo. ADB, gli agenti, i modelli e l'elaborazione delle immagini rimangono sull'host del dispositivo:
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())
Panoramica della Console: ① View Switcher (Home / Workspace) · ② Model & Replay (stato Flash/Pro e replay video) · ③ Live Agent Stream (percezione delle azioni, coordinate target e risultati strutturati) · ④ Prompt Dock (invio in linguaggio naturale) · ⑤ Task Queue & Dashboard (ciclo di vita e cronologia)
uv run artemis ui): Proiezione dello schermo in tempo reale e pannello interattivo, con supporto all'invio di test in linguaggio naturale, telemetria del ragionamento live, traiettorie delle azioni e replay delle esecuzioni; gestisci il ciclo di vita del server in qualsiasi momento da qualsiasi terminale usando uv run artemis restart, uv run artemis stop e uv run artemis status;uv run artemis run): Esecuzione diretta da terminale per casi di test automatizzati, ispezione esplorativa della stabilità o benchmark AndroidWorld con output strutturato ad alta fedeltà;La prima attività su un dispositivo installa l'Artemis Accessibility Helper, un piccolo
servizio di accessibilità che legge il layout dello schermo senza occupare la
connessione UiAutomation. Gli strumenti che usano UiAutomation possono sopprimere l'helper a meno che
non abilitino FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES. Vedrai
una notifica compressa "Artemis test helper is running" e una nuova voce sotto
Impostazioni > Accessibilità; entrambe sono quell'helper. Ascolta solo sul telefono
stesso e non invia nulla altrove.
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 .envSe l'helper dovesse fallire a metà attività, ARTEMIS ripiega su UIAutomator2 e lo segnala
nella timeline dell'attività, nello stato di mobile_manage_task e nel report finale.
Artemis ha raggiunto un tasso di completamento del 99%+ su AndroidWorld, il benchmark di Google Research che copre 20+ app e 100+ attività multi-step.
ARTEMIS supporta due profili di esecuzione pensati per diverse esigenze di automazione:
--profile flash): Ciclo reattivo veloce ed efficiente in token (~3–5s per step): un modello osserva lo schermo live, ragiona e agisce, senza orchestrazione a grafo. Ideale per attività UI routinarie e deterministiche. Il ciclo è illimitato per impostazione predefinita (agent.flash.max_turns, 0 = illimitato) perché la cronologia viene compressa anziché limitata: Flash condivide il registro della trascrizione di sessione di Pro (orologio relativo alla sessione T+mm:ss, screenshot ripiegati in riepiloghi visivi, step più vecchi raggruppati in ere e richiamabili su richiesta tramite search_history / replay_steps) e può interrogare la registrazione della sessione tramite video_analyzer. La UI transitoria (barre di controllo a dissolvenza automatica, toast) viene gestita concatenando i tap in un unico click_sequence. Limitazioni: Nessun piano di attività o note, nessuna rete di sicurezza pre-esecuzione, nessuna verifica dei checkpoint o report finale, e nessuna shell ADB.--profile pro): Un workflow di pianificazione e verifica (~15–40s per step), costruito come grafo multi-agente. Un Planner mantiene un piano di attività Markdown vivo con milestone e voci di controllo verify / assert; l' lo esegue con il set completo di strumenti (grounding dell'Explorer il cui tier / / è un'impostazione utente per profilo — / in o — mai scelto dall'agente; note, richiamo della cronologia, analisi video, diagnostica ADB). Ogni singola azione passa attraverso una pre-esecuzione (XML-first, fallback sui pixel), mentre i multi-azione vengono lanciati consecutivamente per battere la latenza dei turni sulla UI transitoria. Un'azione bloccata o fallita apre un che rimane nel contesto dell'Operator finché un'azione successiva non riesce, così il recupero è gestito dall'Operator stesso senza un agente di riparazione separato. Un in sola lettura verifica i checkpoint del piano ed esegue una revisione finale in uscita rispetto all'obiettivo originale (: / (predefinito) / / ), e le modifiche alle milestone del piano ricevono una revisione consultiva. Gestisce workflow a lungo orizzonte di 100+ step, monitoraggio e un report scritto opzionale.I contributi sono calorosamente benvenuti!
Questo progetto è distribuito sotto la Apache License 2.0.
Questo progetto include codice sorgente sviluppato da Minitap, Inc..
|
1. Prompt Input (Task Dispatch) Descrivi il tuo scenario di test e le metriche target in Antigravity
|
2. Test Plan Generation Formula un piano di test passo-passo e un'architettura da revisionare
|
|
3. Autonomous Test Execution Pilota un dispositivo reale, naviga la UI e profila le prestazioni
|
4. Final Report Fornisce risultati di audit strutturati, tabelle di metriche e dataset grezzi
|
Se preferisci configurare manualmente, esegui uv run artemis mcp --generate-config <client> (ad esempio, codex o antigravity) per ottenere lo snippet TOML o JSON appropriato. Sostituisci /path/to/artemis con il percorso effettivo del tuo repo e punta command all'eseguibile Python del tuo .venv:
~/.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"
}
}
}
Per assicurarti che il tuo assistente di coding AI agisca con il rigore di un senior mobile test engineer e non allucini mai le interazioni UI, forniamo un file dedicato di regole per la mentalità di testing in mcp_server/rules.md (che copre Active Exploration before coding, strategia di routing Flash vs. Pro, compensazione di Latenza e Timing e il pattern di locator "Dynamic-First, Coordinate-Fallback").
Puoi montare o copiare mcp_server/rules.md nella configurazione delle regole del tuo IDE AI:
rules.md alle tue Workspace Rules, alle impostazioni Global Rules o alle istruzioni dell'agente.artemis mcp --install claude per installare le regole in ~/.claude/rules/artemis.md (installa in una sola posizione — Claude Code carica sia ~/.claude/CLAUDE.md sia ~/.claude/rules/*.md, quindi duplicare le regole spreca contesto)..cursorrules o crea un file di regole in .cursor/rules/artemis.mdc.~/.codex/AGENTS.md (o nell'AGENTS.override.md attivo).Per maggiori dettagli sulla mentalità di testing e sull'architettura MCP, consulta il MCP Server README.
In Codex, Antigravity o Claude Code, basta scrivere:
"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."
flashproultrapro.explorer.modeflash.explorer_modeconfig/artemis.jsonc--explorer-pro-mode--verification-levelofffinalcheckpointsstrict[Loop:continuous]