
एक प्राकृतिक-भाषा Android ऑटोमेशन एजेंट जो ADB के माध्यम से वास्तविक उपकरणों को नियंत्रित करता है, Logcat और स्क्रीनशॉट कैप्चर करता है, और AI IDEs तथा CI टेस्ट पाइपलाइनों के लिए एक MCP सर्वर प्रदान करता है।
AI सहायकों और परीक्षण सूटों को असली फ़ोन का उपयोग मानव की तरह करने दें।
English • 中文文档 • Workflow Showcase • Quick Start • MCP for IDEs • Benchmarks • Discord Community
लाइव डेमो: Google Maps में ड्राइविंग रूट सेट करें और कुल अवधि की गणना करें, फिर Coldplay का गाना चलाने के लिए YouTube खोलें।
Antigravity MCP के माध्यम से ARTEMIS का उपयोग करके एक परीक्षण अनुरोध को योजना, डिवाइस निष्पादन और डायग्नोस्टिक रिपोर्ट में बदलता है:
सुनिश्चित करें कि एक Android डिवाइस (USB Debugging सक्षम के साथ) या एमुलेटर कनेक्टेड है। वन-क्लिक स्टार्टअप स्क्रिप्ट स्वचालित रूप से:
uv) निर्भरताओं का पता लगाकर स्वतः इंस्टॉल करेगी।rules.md) को स्वचालित रूप से इंस्टॉल करने का संकेत देगी।# 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 डिफ़ॉल्ट रूप से निष्पादन योग्य स्क्रिप्ट के लिए वर्तमान निर्देशिका को नहीं खोजता, इसलिए बिना ट्रेलिंग
\के.\start.batका उपयोग करें। Command Prompt (CMD) में इसके बजायstart.batका उपयोग करें।
सुझाव: डिफ़ॉल्ट ब्राउज़र में
http://localhost:8000खोलता है जिसमें डिवाइस कनेक्शन विज़ार्ड, लाइव स्क्रीन मिररिंग, प्रॉम्प्ट सैंडबॉक्स, और निष्पादन रीप्ले शामिल हैं। आप सीधे CLI से भी चला सकते हैं:uv run artemis run "Open Settings, find Battery and tell me current level" --profile flash.
ARTEMIS में एक नेटिव Model Context Protocol (MCP) सर्वर शामिल है। अपने असली फ़ोन को सीधे AI IDEs में कनेक्ट करें:
./start.sh (macOS/Linux) या .\start.bat (Windows PowerShell) चलाने पर आपको पता लगाए गए IDEs के लिए ग्लोबल MCP और परीक्षण नियम कॉन्फ़िगर करने का संकेत मिलेगा (या आप नीचे दिए गए कमांड का उपयोग करके कभी भी मैन्युअल रूप से इंस्टॉल/अपडेट कर सकते हैं):
# 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
सुझाव: आप
uv run artemis initके माध्यम से पहली बार सेटअप के दौरान MCP को इंटरैक्टिव रूप से भी कॉन्फ़िगर कर सकते हैं। प्रो टिप: यदि आप किसी भी निर्देशिका मेंuv runके बिनाartemisकमांड का ग्लोबल रूप से उपयोग करना चाहते हैं, तो प्रोजेक्ट रूट में एक बारuv tool install -e .चलाएँ।
डेवलपमेंट मशीन पर शून्य-रनटाइम-निर्भरता क्लाइंट इंस्टॉल करें। ADB, एजेंट, मॉडल, और इमेज प्रोसेसिंग डिवाइस होस्ट पर ही रहते हैं:
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())
कंसोल अवलोकन: ① View Switcher (Home / Workspace) · ② Model & Replay (Flash/Pro स्थिति और वीडियो रीप्ले) · ③ Live Agent Stream (एक्शन अवधारण, लक्ष्य निर्देशांक और संरचित परिणाम) · ④ Prompt Dock (प्राकृतिक भाषा प्रेषण) · ⑤ Task Queue & Dashboard (लाइफसाइकल और इतिहास)
uv run artemis ui): रीयल-टाइम स्क्रीन प्रोजेक्शन और इंटरैक्टिव पैनल, जो प्राकृतिक भाषा परीक्षण प्रेषण, लाइव रीज़निंग टेलीमेट्री, एक्शन ट्रैजेक्टरी, और निष्पादन रीप्ले का समर्थन करता है; किसी भी टर्मिनल से कभी भी uv run artemis restart, uv run artemis stop, और uv run artemis status का उपयोग करके सर्वर लाइफसाइकल प्रबंधित करें;uv run artemis run): स्वचालित परीक्षण मामलों, एक्सप्लोरेटरी स्थिरता निरीक्षण, या AndroidWorld बेंचमार्क के लिए उच्च-निष्ठा संरचित टर्मिनल आउटपुट के साथ सीधा टर्मिनल निष्पादन;किसी डिवाइस पर पहला कार्य Artemis Accessibility Helper इंस्टॉल करता है, एक छोटी
एक्सेसिबिलिटी सेवा जो UiAutomation कनेक्शन लिए बिना स्क्रीन लेआउट पढ़ती है। UiAutomation का उपयोग करने वाले टूल्स helper को दबा सकते हैं जब तक
वे FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES सक्षम न करें। आपको
एक संकुचित "Artemis test helper is running" नोटिफ़िकेशन और Settings > Accessibility के अंतर्गत एक नई प्रविष्टि दिखेगी; दोनों वही helper हैं। यह केवल फ़ोन पर ही सुनता है
और कहीं और कुछ नहीं भेजता।
uv run artemis helper installuv run artemis helper status / uv run artemis doctoruv run artemis helper uninstall.env में ARTEMIS_HIERARCHY_BACKEND=uiautomator.env में ARTEMIS_HELPER_AUTO_INSTALL=falseयदि helper कभी कार्य के बीच में विफल हो जाता है, तो ARTEMIS UIAutomator2 पर वापस चला जाता है और
यह कार्य टाइमलाइन में, mobile_manage_task स्थिति में, और अंतिम रिपोर्ट में बताता है।
Artemis ने AndroidWorld पर 99%+ पूर्णता दर प्राप्त की, जो Google Research का बेंचमार्क है जिसमें 20+ ऐप्स और 100+ मल्टी-स्टेप कार्य शामिल हैं।
ARTEMIS विभिन्न ऑटोमेशन आवश्यकताओं के लिए दो निष्पादन प्रोफ़ाइल का समर्थन करता है:
--profile flash): तेज़ और टोकन-कुशल रिएक्टिव लूप (~प्रति चरण 3–5 सेकंड): एक मॉडल लाइव स्क्रीन का निरीक्षण करता है, सोचता है, और कार्य करता है, बिना किसी ग्राफ़ ऑर्केस्ट्रेशन के। नियमित, नियतात्मक UI कार्यों के लिए आदर्श। लूप डिफ़ॉल्ट रूप से अनबाउंड है (agent.flash.max_turns, 0 = असीमित) क्योंकि हिस्ट्री को कैप करने के बजाय संपीड़ित किया जाता है: Flash Pro सेशन ट्रांसक्रिप्ट लेजर साझा करता है (सेशन-सापेक्ष T+mm:ss घड़ी, स्क्रीनशॉट विज़ुअल सारांश में मोड़े गए, पुराने चरण eras में खंडित और search_history / replay_steps के माध्यम से माँग पर स्मरणीय) और video_analyzer के माध्यम से सेशन रिकॉर्डिंग क्वेरी कर सकता है। क्षणिक UI (स्वतः-फेडिंग कंट्रोल बार, टोस्ट) को एक click_sequence में टैप्स को श्रृंखलाबद्ध करके संभाला जाता है। सीमाएँ: कोई कार्य योजना या नोट्स नहीं, कोई पूर्व-निष्पादन सुरक्षा जाल नहीं, कोई चेकपॉइंट सत्यापन या अंतिम रिपोर्ट नहीं, और कोई ADB shell नहीं।--profile pro): एक योजना और सत्यापन वर्कफ़्लो (~प्रति चरण 15–40 सेकंड), जो एक मल्टी-एजेंट ग्राफ़ के रूप में बनाया गया है। एक Planner माइलस्टोन और verify / assert जाँच आइटम के साथ एक जीवंत Markdown कार्य योजना बनाए रखता है; इसे पूर्ण टूलसेट के साथ निष्पादित करता है (Explorer grounding जिसका / / टियर प्रति प्रोफ़ाइल एक उपयोगकर्ता सेटिंग है — में / या — एजेंट द्वारा कभी नहीं चुना जाता; नोट्स, हिस्ट्री रिकॉल, वीडियो विश्लेषण, ADB डायग्नोस्टिक्स)। प्रत्येक एकल क्रिया एक पूर्व-निष्पादन (XML-प्रथम, पिक्सेल फ़ॉलबैक) से गुज़रती है, जबकि मल्टी-एक्शन क्षणिक UI पर टर्न लेटेंसी को हराने के लिए एक के बाद एक फायर होते हैं। एक अवरुद्ध या विफल क्रिया एक खोलती है जो Operator के context में तब तक रहती है जब तक कोई बाद की क्रिया सफल न हो जाए, इसलिए रिकवरी Operator द्वारा ही संभाली जाती है, बिना किसी अलग मरम्मत एजेंट के। एक read-only योजना चेकपॉइंट सत्यापित करता है और मूल लक्ष्य के विरुद्ध एक exit final review चलाता है (: / (डिफ़ॉल्ट) / / ), और योजना माइलस्टोन संपादनों को एक सलाहकार समीक्षा मिलती है। 100+ चरण के लंबे-क्षितिज वर्कफ़्लो, निगरानी, और एक वैकल्पिक लिखित रिपोर्ट को संभालता है।योगदान का हार्दिक स्वागत है!
यह प्रोजेक्ट Apache License 2.0 के अंतर्गत लाइसेंस प्राप्त है।
इस प्रोजेक्ट में Minitap, Inc. द्वारा विकसित स्रोत कोड शामिल है।
|
1. प्रॉम्प्ट इनपुट (कार्य प्रेषण) Antigravity में अपने परीक्षण परिदृश्य और लक्ष्य मेट्रिक्स का वर्णन करें
|
2. परीक्षण योजना निर्माण समीक्षा के लिए चरण-दर-चरण परीक्षण योजना और आर्किटेक्चर तैयार करता है
|
|
3. स्वायत्त परीक्षण निष्पादन असली डिवाइस चलाता है, UI नेविगेट करता है, और प्रदर्शन प्रोफ़ाइल करता है
|
4. अंतिम रिपोर्ट संरचित ऑडिट निष्कर्ष, मेट्रिक तालिकाएँ, और कच्चे डेटासेट प्रदान करता है
|
यदि आप मैन्युअल रूप से कॉन्फ़िगर करना पसंद करते हैं, तो उपयुक्त TOML या JSON स्निपेट आउटपुट करने के लिए uv run artemis mcp --generate-config <client> (उदाहरण के लिए, codex या antigravity) चलाएँ। /path/to/artemis को अपने वास्तविक repo पथ से बदलें और command को अपने .venv Python executable पर इंगित करें:
~/.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"
}
}
}
यह सुनिश्चित करने के लिए कि आपका AI कोडिंग सहायक एक वरिष्ठ मोबाइल टेस्ट इंजीनियर की कठोरता के साथ कार्य करे और UI इंटरैक्शन को कभी भी मनगढ़ंत न बनाए, हम mcp_server/rules.md पर एक समर्पित परीक्षण मानसिकता नियम फ़ाइल प्रदान करते हैं (जिसमें कोडिंग से पहले सक्रिय एक्सप्लोरेशन, Flash बनाम Pro रूटिंग रणनीति, लेटेंसी और टाइमिंग क्षतिपूर्ति, और "Dynamic-First, Coordinate-Fallback" लोकेटर पैटर्न शामिल हैं)।
आप mcp_server/rules.md को अपने AI IDE के नियम कॉन्फ़िगरेशन में माउंट या कॉपी कर सकते हैं:
rules.md की सामग्री को अपने Workspace Rules, Global Rules सेटिंग्स, या एजेंट निर्देशों में जोड़ें।~/.claude/rules/artemis.md में इंस्टॉल करने के लिए artemis mcp --install claude चलाएँ (ठीक एक स्थान पर इंस्टॉल करें — Claude Code ~/.claude/CLAUDE.md और ~/.claude/rules/*.md दोनों लोड करता है, इसलिए नियमों को डुप्लिकेट करने से context बर्बाद होता है)।.cursorrules में कॉपी करें या .cursor/rules/artemis.mdc पर एक नियम फ़ाइल बनाएँ।~/.codex/AGENTS.md (या सक्रिय AGENTS.override.md) में जोड़ें।परीक्षण मानसिकता और MCP आर्किटेक्चर पर अधिक विवरण के लिए, MCP Server README देखें।
Codex, Antigravity, या Claude Code में, बस प्रॉम्प्ट करें:
"नवीनतम परिवर्तनों को APK में बिल्ड करें, इसे कनेक्टेड डिवाइस पर इंस्टॉल करें, एक टेस्ट अकाउंट के साथ लॉगिन स्क्रीन खोलें, सत्यापित करें कि लॉगिन के बाद कोई अप्रत्याशित पॉपअप हैं या नहीं, और अंतिम पृष्ठ के स्क्रीनशॉट लौटाएँ।"
flashproultraconfig/artemis.jsoncpro.explorer.modeflash.explorer_mode--explorer-pro-mode--verification-levelofffinalcheckpointsstrict[Loop:continuous]