
ADB를 통해 실제 기기를 제어하고, Logcat과 스크린샷을 캡처하며, AI IDE와 CI 테스트 파이프라인을 위한 MCP 서버를 제공하는 자연어 기반 Android 자동화 에이전트입니다.
AI 어시스턴트와 테스트 스위트가 사람처럼 실제 휴대폰을 사용할 수 있게 합니다.
English • 中文文档 • 워크플로 쇼케이스 • 빠른 시작 • IDE용 MCP • 벤치마크 • Discord 커뮤니티
라이브 데모: Google Maps에서 경로를 설정하고 총 소요 시간을 계산한 뒤, YouTube를 열어 Coldplay 노래를 재생합니다.
Antigravity는 MCP를 통해 ARTEMIS를 사용하여 테스트 요청을 계획, 기기 실행, 진단 보고서로 전환합니다:
Android 기기(USB 디버깅 활성화) 또는 에뮬레이터가 연결되어 있는지 확인하세요. 원클릭 시작 스크립트가 자동으로 다음을 수행합니다:
uv) 의존성을 감지하고 자동 설치합니다.rules.md)**을 AI IDE(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은 기본적으로 현재 디렉터리에서 실행 가능한 스크립트를 검색하지 않으므로, 뒤에
\없이.\start.bat을 사용하세요. 명령 프롬프트(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 IDE에 직접 연결하세요:
./start.sh(macOS/Linux) 또는 .\start.bat(Windows PowerShell)을 실행하면 감지된 IDE에 대해 글로벌 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 .를 한 번 실행하세요.
수동으로 구성하려면 uv run artemis mcp --generate-config <client>(예: 또는 )를 실행하여 적절한 TOML 또는 JSON 스니펫을 출력하세요. 를 실제 저장소 경로로 바꾸고 를 Python 실행 파일로 지정하세요:
개발 머신에 런타임 의존성이 없는 클라이언트를 설치하세요. 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())
콘솔 개요: ① 뷰 전환기 (Home / Workspace) · ② 모델 및 리플레이 (Flash/Pro 상태 및 비디오 리플레이) · ③ 라이브 에이전트 스트림 (작업 인식, 대상 좌표 및 구조화된 결과) · ④ 프롬프트 독 (자연어 디스패치) · ⑤ 작업 큐 및 대시보드 (수명 주기 및 기록)
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을 사용하는 도구는
FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES를 활성화하지 않으면 이 헬퍼를 억제할 수 있습니다.
축소된 "Artemis test helper is running" 알림과
설정 > 접근성 아래의 새 항목이 표시됩니다. 둘 다 해당 헬퍼입니다. 이 헬퍼는
휴대폰 자체에서만 수신하며 다른 곳으로 아무것도 전송하지 않습니다.
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헬퍼가 작업 중간에 실패하면 ARTEMIS는 UIAutomator2로 대체하며,
작업 타임라인, mobile_manage_task 상태, 최종 보고서에 이를 명시합니다.
Artemis는 20개 이상의 앱과 100개 이상의 다단계 작업을 아우르는 Google Research의 벤치마크인 AndroidWorld에서 99%+ 완료율을 달성했습니다.
ARTEMIS는 다양한 자동화 요구 사항에 맞춘 두 가지 실행 프로필을 지원합니다:
--profile flash): 빠르고 토큰 효율적인 반응형 루프(단계당 약 3–5초): 하나의 모델이 라이브 화면을 관찰하고, 사고하고, 행동하며, 그래프 오케스트레이션이 없습니다. 일상적이고 결정적인 UI 작업에 이상적입니다. 이 루프는 기본적으로 무제한입니다(agent.flash.max_turns, 0 = 무제한). 히스토리가 제한되는 대신 압축되기 때문입니다: Flash는 Pro 세션 트랜스크립트 원장(세션 기준 T+mm:ss 시계, 스크린샷이 시각적 요약으로 접히고, 오래된 단계가 시대별로 청크되어 search_history / replay_steps를 통해 필요 시 회상 가능)을 공유하며, video_analyzer를 통해 세션 녹화를 쿼리할 수 있습니다. 일시적 UI(자동으로 사라지는 컨트롤 바, 토스트)는 탭을 하나의 click_sequence로 연결하여 처리합니다. 제한 사항: 작업 계획이나 노트 없음, 실행 전 안전망 없음, 체크포인트 검증이나 최종 보고서 없음, ADB 셸 없음.--profile pro): 계획 및 검증 워크플로(단계당 약 15–40초)로, 멀티 에이전트 그래프로 구축되었습니다. Planner는 마일스톤과 verify / assert 검사 항목이 포함된 살아있는 Markdown 작업 계획을 유지합니다. Operator는 전체 툴셋(Explorer 그라운딩 — flash / pro / 티어는 프로필별 사용자 설정으로, 의 / 또는 이며 에이전트가 선택하지 않음 — 노트, 히스토리 회상, 비디오 분석, ADB 진단)으로 이를 실행합니다. 모든 개별 작업은 실행 전 (XML 우선, 픽셀 대체)을 통과하며, 다중 작업 는 일시적 UI에서 턴 지연을 극복하기 위해 연속으로 발동됩니다. 차단되거나 실패한 작업은 를 열어 이후 작업이 성공할 때까지 Operator의 컨텍스트에 남으므로, 별도의 복구 에이전트 없이 Operator 자체가 복구를 처리합니다. 읽기 전용 는 계획 체크포인트를 검증하고 원래 목표에 대해 종료 최종 검토를 실행하며(: / (기본값) / / ), 계획 마일스톤 편집에는 권고 검토가 제공됩니다. 100단계 이상의 장기 워크플로, 모니터링, 선택적 서면 보고서를 처리합니다.기여를 진심으로 환영합니다!
이 프로젝트는 Apache License 2.0에 따라 라이선스가 부여됩니다.
이 프로젝트는 Minitap, Inc.가 개발한 소스 코드를 포함합니다.
|
1. 프롬프트 입력 (작업 디스패치) Antigravity에서 테스트 시나리오와 목표 지표를 설명하세요
|
2. 테스트 계획 생성 검토를 위한 단계별 테스트 계획 및 아키텍처를 수립합니다
|
|
3. 자율 테스트 실행 실제 기기를 제어하고, UI를 탐색하며, 성능을 프로파일링합니다
|
4. 최종 보고서 구조화된 감사 결과, 지표 테이블, 원시 데이터셋을 제공합니다
|
codexantigravity/path/to/artemiscommand.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"
}
}
}
AI 코딩 어시스턴트가 시니어 모바일 테스트 엔지니어의 엄격함으로 행동하고 UI 상호작용을 절대 환각하지 않도록, mcp_server/rules.md에 전용 테스트 마인드셋 규칙 파일을 제공합니다(코딩 전 능동적 탐색, Flash vs. Pro 라우팅 전략, 지연 및 타이밍 보정, "동적 우선, 좌표 대체" 로케이터 패턴 포함).
mcp_server/rules.md를 AI IDE의 규칙 구성에 마운트하거나 복사할 수 있습니다:
rules.md의 내용을 Workspace Rules, Global Rules 설정 또는 에이전트 지침에 추가하세요.artemis mcp --install claude를 실행하여 규칙을 ~/.claude/rules/artemis.md에 설치하세요(정확히 한 위치에만 설치하세요 — Claude Code는 ~/.claude/CLAUDE.md와 ~/.claude/rules/*.md를 모두 로드하므로, 규칙을 중복하면 컨텍스트가 낭비됩니다)..cursorrules에 복사하거나 .cursor/rules/artemis.mdc에 규칙 파일을 생성하세요.~/.codex/AGENTS.md(또는 활성 AGENTS.override.md)에 추가하세요.테스트 마인드셋과 MCP 아키텍처에 대한 자세한 내용은 MCP Server README를 참조하세요.
Codex, Antigravity 또는 Claude Code에서 다음과 같이 프롬프트하세요:
"최신 변경 사항을 APK로 빌드하고, 연결된 기기에 설치하고, 테스트 계정으로 로그인 화면을 열고, 로그인 후 예상치 못한 팝업이 있는지 확인하고, 최종 페이지의 스크린샷을 반환해 줘."
ultraconfig/artemis.jsoncpro.explorer.modeflash.explorer_mode--explorer-pro-mode--verification-levelofffinalcheckpointsstrict[Loop:continuous]