
Agent d'automatisation Android en langage naturel qui pilote de vrais appareils via ADB, capture Logcat et des captures d'écran, et expose un serveur MCP pour les IDE d'IA et les pipelines de tests CI.
Permettez aux assistants IA et aux suites de tests d'utiliser de vrais téléphones comme un humain.
English • 中文文档 • Workflow Showcase • Quick Start • MCP for IDEs • Benchmarks • Discord Community
Démo en direct : configurer des itinéraires dans Google Maps et calculer les durées totales, puis ouvrir YouTube pour lire une chanson de Coldplay.
Antigravity utilise ARTEMIS via MCP pour transformer une demande de test en un plan, une exécution sur appareil et un rapport de diagnostic :
Assurez-vous qu'un appareil Android (avec le débogage USB activé) ou un émulateur est connecté. Le script de démarrage en un clic va automatiquement :
uv).rules.md) dans vos IDE IA (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 ne recherche pas le répertoire courant pour les scripts exécutables par défaut, utilisez donc
.\start.batsans barre oblique finale. Dans l'invite de commandes (CMD), utilisez plutôtstart.bat.
Astuce : ouvre
http://localhost:8000dans votre navigateur par défaut avec un assistant de connexion d'appareil, une mise en miroir d'écran en direct, un bac à sable de prompts et des replays d'exécution. Vous pouvez aussi exécuter directement depuis la CLI :uv run artemis run "Open Settings, find Battery and tell me current level" --profile flash.
ARTEMIS inclut un serveur Model Context Protocol (MCP) natif. Connectez votre téléphone réel directement dans les IDE IA :
L'exécution de ./start.sh (macOS/Linux) ou .\start.bat (Windows PowerShell) vous proposera de configurer le MCP global et les règles de test pour les IDE détectés (ou vous pouvez installer/mettre à jour manuellement à tout moment avec les commandes ci-dessous) :
# 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
Astuce : vous pouvez aussi configurer MCP de manière interactive lors de la première installation via
uv run artemis init. Astuce pro : si vous souhaitez utiliser la commandeartemisglobalement sansuv rundans n'importe quel répertoire, exécutezuv tool install -e .une fois à la racine du projet.
Installez le client sans dépendance d'exécution sur la machine de développement. ADB, les agents, les modèles et le traitement d'images restent sur l'hôte de l'appareil :
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())
Aperçu de la console : ① Sélecteur de vue (Accueil / Espace de travail) · ② Modèle et replay (statut Flash/Pro et replay vidéo) · ③ Flux d'agent en direct (perception des actions, coordonnées cibles et résultats structurés) · ④ Dock de prompts (envoi en langage naturel) · ⑤ File de tâches et tableau de bord (cycle de vie et historique)
uv run artemis ui) : projection d'écran en temps réel et panneau interactif, prenant en charge l'envoi de tests en langage naturel, la télémétrie de raisonnement en direct, les trajectoires d'action et le replay d'exécution ; gérez le cycle de vie du serveur à tout moment depuis n'importe quel terminal avec uv run artemis restart, uv run artemis stop et uv run artemis status ;uv run artemis run) : exécution directe en terminal pour les cas de test automatisés, l'inspection exploratoire de stabilité ou les benchmarks AndroidWorld avec une sortie terminal structurée haute fidélité ;La première tâche sur un appareil installe l'Artemis Accessibility Helper, un petit
service d'accessibilité qui lit la disposition de l'écran sans prendre la
connexion UiAutomation. Les outils utilisant UiAutomation peuvent supprimer l'helper sauf
s'ils activent FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES. Vous verrez
une notification réduite « Artemis test helper is running » et une nouvelle entrée sous
Paramètres > Accessibilité ; les deux correspondent à cet helper. Il écoute uniquement sur le téléphone
lui-même et n'envoie rien ailleurs.
uv run artemis helper installuv run artemis helper status / uv run artemis doctoruv run artemis helper uninstallARTEMIS_HIERARCHY_BACKEND=uiautomator dans .envARTEMIS_HELPER_AUTO_INSTALL=false dans .envSi l'helper échoue en cours de tâche, ARTEMIS se rabat sur UIAutomator2 et l'indique
dans la chronologie de la tâche, dans le statut mobile_manage_task et dans le rapport final.
Artemis a atteint un taux de réussite de 99 %+ sur AndroidWorld, le benchmark de Google Research couvrant plus de 20 applications et plus de 100 tâches multi-étapes.
ARTEMIS prend en charge deux profils d'exécution adaptés à différents besoins d'automatisation :
--profile flash) : boucle réactive rapide et économe en tokens (~3–5 s par étape) : un modèle observe l'écran en direct, réfléchit et agit, sans orchestration de graphe. Idéal pour les tâches d'interface routinières et déterministes. La boucle est illimitée par défaut (agent.flash.max_turns, 0 = illimité) car l'historique est compressé plutôt que plafonné : Flash partage le registre de transcription de session Pro (horloge T+mm:ss relative à la session, captures d'écran repliées en résumés visuels, étapes plus anciennes regroupées en ères et rappelables à la demande via search_history / replay_steps) et peut interroger l'enregistrement de session via video_analyzer. L'interface transitoire (barres de contrôle à disparition automatique, toasts) est gérée en enchaînant les taps dans un seul click_sequence. Limitations : pas de plan de tâche ni de notes, pas de filet de sécurité pré-exécution, pas de vérification de point de contrôle ni de rapport final, et pas de shell ADB.--profile pro) : un workflow de planification et de vérification (~15–40 s par étape), construit comme un graphe multi-agents. Un Planner maintient un plan de tâche Markdown vivant avec des jalons et des éléments de vérification verify / ; l' l'exécute avec l'ensemble complet d'outils (ancrage Explorer dont le niveau / / est un paramètre utilisateur par profil — / dans ou — jamais choisi par l'agent ; notes, rappel d'historique, analyse vidéo, diagnostics ADB). Chaque action individuelle passe par un pré-exécution (XML d'abord, repli sur les pixels), tandis que les multi-actions s'enchaînent pour battre la latence des tours sur l'interface transitoire. Une action bloquée ou échouée ouvre un qui reste dans le contexte de l'Operator jusqu'à ce qu'une action ultérieure réussisse, de sorte que la récupération est gérée par l'Operator lui-même sans agent de réparation séparé. Un en lecture seule vérifie les points de contrôle du plan et exécute une revue finale de sortie par rapport à l'objectif initial ( : / (par défaut) / / ), et les modifications de jalons du plan font l'objet d'une revue consultative. Gère les workflows à long horizon de plus de 100 étapes, la surveillance et un rapport écrit facultatif.Les contributions sont chaleureusement bienvenues !
Ce projet est sous licence Apache License 2.0.
Ce projet inclut du code source développé par Minitap, Inc..
|
1. Saisie du prompt (envoi de la tâche) Décrivez votre scénario de test et vos métriques cibles dans Antigravity
|
2. Génération du plan de test Formule un plan de test étape par étape et une architecture à valider
|
|
3. Exécution autonome du test Pilote un appareil réel, navigue dans l'interface et profile les performances
|
4. Rapport final Fournit des conclusions d'audit structurées, des tableaux de métriques et des jeux de données brutes
|
Si vous préférez configurer manuellement, exécutez uv run artemis mcp --generate-config <client> (par exemple, codex ou antigravity) pour générer l'extrait TOML ou JSON approprié. Remplacez /path/to/artemis par le chemin réel de votre dépôt et pointez command vers l'exécutable Python de votre .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"
}
}
}
Pour garantir que votre assistant de codage IA agisse avec la rigueur d'un ingénieur de test mobile senior et n'invente jamais d'interactions d'interface, nous fournissons un fichier de règles dédié à l'état d'esprit de test à mcp_server/rules.md (couvrant l'exploration active avant le codage, la stratégie de routage Flash vs Pro, la compensation de latence et de timing, et le modèle de localisation « Dynamic-First, Coordinate-Fallback »).
Vous pouvez monter ou copier mcp_server/rules.md dans la configuration des règles de votre IDE IA :
rules.md à vos Workspace Rules, paramètres Global Rules ou instructions d'agent.artemis mcp --install claude pour installer les règles dans ~/.claude/rules/artemis.md (installez à un seul emplacement — Claude Code charge à la fois ~/.claude/CLAUDE.md et ~/.claude/rules/*.md, donc dupliquer les règles gaspille du contexte)..cursorrules ou créez un fichier de règles à .cursor/rules/artemis.mdc.~/.codex/AGENTS.md (ou au AGENTS.override.md actif).Pour plus de détails sur l'état d'esprit de test et l'architecture MCP, consultez le README du serveur MCP.
Dans Codex, Antigravity ou Claude Code, promptez simplement :
« Compile les derniers changements en APK, installe-le sur l'appareil connecté, ouvre l'écran de connexion avec un compte de test, vérifie s'il y a des popups inattendus après la connexion, et renvoie des captures d'écran de la page finale. »
assertflashproultrapro.explorer.modeflash.explorer_modeconfig/artemis.jsonc--explorer-pro-mode--verification-levelofffinalcheckpointsstrict[Loop:continuous]