
Ghost in the Droid
io.github.ghost-in-the-droid由 GitHub 帳號 ghost-in-the-droid 發布v1.3.2更新於 Oct 24, 2026
Give any LLM agent a real Android or iPhone as its body. 62 MCP tools for mobile automation.
發布方自己的服務:droid.monster — specs
概覽
為 AI 助理提供 62 個 MCP 工具,用來查看並操作真實的 Android 或 iPhone 螢幕:點擊、滑動、輸入、啟動應用程式並執行已儲存的技能。
- 可以做什麼
- Ghost in the Droid 提供 62 個用於真機行動自動化的 MCP 工具。工具涵蓋螢幕讀取(截圖、介面樹、OCR、元素尋找)、觸控輸入(點擊、滑動、長按、輸入文字、硬體按鍵)、應用程式控制(啟動、列出、強制停止、intent)、瀏覽器與 iOS 操作、剪貼簿與通知,以及技能和批次流程。Android 透過 ADB 驅動,iOS 透過 Appium XCUITest 與 WebDriverAgent 驅動。它還附帶本機儀表板、排程器和技能倉庫。
- 適用情境
- 當助理需要操作真實手機而不是模擬網頁時使用:重複的應用程式操作流程、介面測試、擷取應用程式畫面內容,或在單一裝置或裝置群上執行多步腳本任務。如果只需要網頁瀏覽,或沒有可用手機與 Mac,則不適合。
- 執行需求
- 本機 Python 3.10+ 程序,透過 uvx 或 pipx 從 ghost-in-the-droid 的 PyPI 套件安裝。Android 需要開啟 USB 偵錯的手機,且 ADB 在 PATH 中;iOS 需要 macOS 與 Xcode、Appium 2 及 XCUITest 驅動,以及已信任的裝置或已啟動的模擬器,並以 GITD_ENABLE_IOS=1 啟用。前端開發伺服器需要 Node.js 18+。選用 LLM 金鑰包括 ANTHROPIC_API_KEY、OPENAI_API_KEY 和 OPENROUTER_API_KEY;iOS 設定使用 IOS_DEVICE_UDID、IOS_APPIUM_URL、IOS_BUNDLE_ID 和 IOS_MJPEG_SERVER_PORT。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Ghost in the Droid,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Ghost in the Droid
Summon a ghost into your phone.
It sees the screen. It taps the buttons. It never sleeps.
Website · Docs · Skill Hub · Releases
[License: MIT] [Python 3.10+] [62 MCP tools] [Android + iOS] [cloud or on-device] [MCP Toplist: Top 1% of 95K]
[Ghost driving nine real phones]
▶ Watch full HD with sound on YouTube · Download mp4
Nine agents. Nine real devices. One ghost. (Click to watch.)
The pitch, in one breath
Every AI agent can think. Almost none can touch a phone.
Ghost is the body. It gives any LLM agent a real Android phone or iPhone: it reads the screen, taps, swipes, and types through a clean tool surface, and it scales from one device on your desk to a whole phone farm. Point Claude Code, Codex, Antigravity, Cursor, your LangChain app, or a model running inside the phone itself at it, and your agent grows hands.
Bring your own brain. Keep the same body. MIT, forever.
Mix and match: the Ghost matrix
Ghost 1.3 is the only Android + iOS agent framework where platform, brain, and driver are all swappable. Pick one from each column. They all compose.
The Docker + KVM emulator pool is Android-only; iOS uses Apple's own simulator and Xcode signing, which are macOS-native.
The body stays the same 62 MCP tools no matter what you plug in. Every new model release is a free upgrade to your phone agent.
See it in action
Nine demos, one per feature, each recorded on real devices. Click any clip for the full mp4.
What It Does
Open-source Python framework for controlling Android and iOS devices from one agent harness. Android runs through ADB. iOS runs through Appium XCUITest and WebDriverAgent, with real iPhones as the target path and simulators for development and CI.
Define skills for any app, run them from the dashboard or API, scale across a phone farm.
The ghost taps what you'd tap
- Android control through ADB: tap, swipe, type, clipboard, shell, intents, and stealth variants
- iOS control through WebDriverAgent: screenshot, accessibility tree, tap, swipe, type, app launch, clipboard, browser actions
- Live phone screen streaming: Android MJPEG/WebRTC, iOS WDA MJPEG with screenshot fallback
- Interactive touch-to-tap on the streamed screen
- Multi-device phone farm with per-device job queues
Forge reusable skills for any app
- YAML-based UI element definitions per app
- Platform-specific selectors with
elements.yamlfor Android andelements_ios.yamlfor iOS - Python action classes with precondition checks
- Multi-step workflows that chain actions together
- Built-in skills for TikTok and Play Store
- iOS browser/news demo skill and smoke-level TikTok iOS workflows
- Skill Hub: browse, search, and install skills from the community registry
- Install from CLI:
android-agent skill install tiktok
Teach the ghost new tricks
- BFS-based auto app explorer: discovers every screen and transition
- LLM-assisted Skill Creator: chat with AI while viewing the live device stream
- The AI identifies UI elements and generates action/workflow code
Scale the haunting
- Multi-device phone farm with per-device job queues
- Bot runner: queue, schedule, and monitor automation jobs
- Per-device integration tests with Android screen recording or iOS WDA MJPEG recording
Platform Support
Why it is built this way
Skills cost $0. Thinking costs tokens. An agent should not pay an LLM to tap a button it has tapped a thousand times. Known workflows compile to skills: deterministic YAML + Python recipes that replay in seconds with zero LLM calls. Use AI for the unknown task, replay for the known one.
The phone is the easiest sandbox there is. Give the ghost an old Android with its own SIM and its own accounts, physically separate from your life. You already know how to set up a phone.
Zero-app by default. A fresh install touches nothing on the Android device: screen reads go through uiautomator, actions through adb shell input, no root, no accessibility service. Want it faster? The optional Portal companion app gives roughly 30x quicker UI reads. Want it private? On-device mode runs the whole loop inside the phone, nothing leaves it. All opt-in.
Local-first, cloud-optional. The server and dashboard run on your machine. With a local or on-device brain, your screenshots never leave your network. Pick a cloud brain and prompts go to that provider, same as any tool. Your call, always.
Requirements
- Python 3.10+
- Android: Android phone with USB debugging enabled and ADB on PATH (
adb devicesshould list your phone) - iOS: macOS with Xcode, Appium 2 + XCUITest driver, and a trusted iPhone or booted simulator
- Node.js 18+ (for the frontend dev server)
iOS Support
Ghost drives iPhones through Appium/WebDriverAgent with the same tool
surface: ios:<udid> device refs route tap/swipe/type/screenshot to WDA, and
iOS-aware browser primitives (open_url, read_news, extract_visible_text)
cover web tasks. Android-only tools (shell, launch_intent, Portal overlay)
return a clear platform error instead of failing silently.
iOS is opt-in: enable it with GITD_ENABLE_IOS=1 (or ios_platform_enabled=true
in .env). Wireless drive rides your Tailscale tailnet, so treat the tailnet as
the trust boundary. See docs/SETUP_IOS.md for Appium/WDA
setup, and on-device on iPhone
to run the model on the iPhone itself.
Quick Start
Zero-install with uvx (or pipx):
doctor prints a checklist with fix hints instead of a stack trace when something is missing (e.g. adb not on PATH). Prefer pipx? pipx install ghost-in-the-droid gives you the ghost-in-the-droid / android-agent commands.
Sign in with your Claude subscription (no API key)
If you have a Claude Max/Pro subscription, you don't need an API key. android-agent login signs you in through the claude CLI's own Anthropic OAuth flow and points Ghost at the claude-code provider:
Ghost never handles or stores your token; the claude CLI owns it, refresh included. doctor shows a green Claude subscription check once you are signed in. To use an API key instead, set ANTHROPIC_API_KEY (or OPENAI_API_KEY / OPENROUTER_API_KEY) and pick that provider.
Run fully local with Ollama (no keys, no cloud)
Select Ollama in the Phone Agent tab. Runs entirely on your machine with Ollama:
From a clone (for development)
iOS Quick Start
iOS support requires a Mac because Appium uses Xcode's XCUITest/WebDriverAgent stack. Real iPhones also require trust, Developer Mode, UI Automation permission when prompted, and WDA signing with an Apple development team.
For full real-device signing, simulator, WDA MJPEG, health recovery, scheduler, and MCP setup details, see docs/SETUP_IOS.md.
Environment Variables
Copy .env.example to .env (if provided) or create a .env file in the project root. The server reads configuration via Pydantic Settings. Optional variables include:
Give any AI agent a mobile body (MCP)
Ghost ships an MCP server with 62 tools for real-device control. Any MCP-compatible client can use them. Android serials receive the Android implementation; ios:<udid> refs route to the iOS backend where supported and return stable unsupported-platform errors for Android-only tools. One command wires it up:
uvx installs the package, builds an isolated env, and runs the server. No clone, no venv.
Other clients (Codex, Claude Desktop, Cursor, VS Code, Windsurf)
Claude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json), Windsurf (mcp_config.json):
VS Code Copilot (.vscode/mcp.json) uses the same block under a "servers" key. Contributors who clone the repo get a ready .mcp.json, all 62 tools live on first claude launch.
The 62 tools, by category:
toggle_overlay, launch_intent, Android shell helpers, wireless ADB, and Play Store helpers remain Android-only and return stable platform errors on iOS.
Run the brain inside the phone
New in 1.3: the model can live on the device. The Ghost companion app embeds real inference engines, so the phone is both the body and the brain. Airplane mode on, agent still working, nothing leaving the device.
On iPhone, Qwen2.5 1.5B runs through llama.cpp on Metal and drives the phone's own UI, with an opt-in MLX engine for faster decode on Apple Silicon. Small models are kept honest with grammar-constrained decoding so tool calls always parse. Full detail on the on-device LLM page.
Skill Hub CLI
The skill registry lives in registry/ in this repo. Community skills are auto-discovered nightly from repos tagged android-agent-skill.
Teach the Ghost a New App
Two ways to forge a skill:
Community skill (your own repo): create a repo with skill.yaml, elements.yaml, actions, and workflows, tag it android-agent-skill, and it appears on the Skill Hub automatically (nightly scraper).
Official skill (PR to this repo): build and test as a community skill first, then open a PR adding it to registry/. CI validates, a maintainer reviews, and it gets the "Official" badge.
Each skill needs:
skill.yaml: metadata (name, version, app package or iOS bundle ID, supported platforms, actions, workflows)elements.yaml: Android UI element resource IDs and descriptionselements_ios.yaml: optional iOS selectors for XCTest accessibility treesactions/: Python classes extendingActionwithprecondition()andexecute()workflows/: Python classes extendingWorkflowwithsteps()
Prefer to let AI do it? The Skill Creator watches a live device stream and generates the action and workflow code while you narrate. Full guide in CONTRIBUTING.md.
The dashboard
A local-first control room at http://localhost:5055 (or :6175 in dev). WebRTC and MJPEG live streams, tap-on-screen, tracing, and every tab below.
Architecture
The flow: FastAPI backend on :5055 exposes device control, skills, bots, scheduling, and streaming. The Vue SPA talks to it over /api/*. Skills define per-app interaction (elements + actions + workflows). Device backends route by ref: bare serials use bots/common/adb.py, ios:<udid> refs use bots/common/ios.py and Appium/WDA. State lives in SQLite via SQLAlchemy 2.0 and Alembic.
Benchmark (sneak peek)
Early result, with the full methodology writeup still cooking: driven by Claude Code, Ghost completes 115 of 116 tasks (99.1%) on AndroidWorld, Google Research's benchmark for Android agents, on the unmodified upstream harness. Treat this as a preview rather than a citable number. The detailed writeup and trajectories are coming. Watch the releases.
Tech Stack
Running Tests
Most tests are unit/API tests and run without a live device. Live Android and iOS integration tests require the relevant device stack.
For iOS live smoke tests:
Get your Android device serial from adb devices.
Database Migrations
The project uses Alembic for schema migrations:
Contributing
The ghost gets stronger with every skill. See CONTRIBUTING.md for adding app skills (highest impact), writing actions and workflows, backend architecture, and the PR process. Join the community on the Skill Hub.
License
MIT. The ghost is free. The ghost is open source. The ghost is yours.
來源:README.md,提交 7c09f6c
工具
0版本歷史
1- v1.3.2最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Droid 整合
droid.monster — specs
monster.droid官方發布者
遠端 MCP 伺服器,用來查詢有來源依據的商用機器人規格、比較機型,並尋找相容的備用零件。
CodeDroid
由 GitHub 帳號 codedroid-team 發布
讓 MCP 用戶端操作你的真實 Android 手機:讀取螢幕、點擊、輸入、滑動、截圖、安裝 APK 並執行 adb 指令。

ZennoDroid: tasks
com.zennolab
本機 Windows MCP 伺服器,讓助理建立、設定、啟動並監控 ZennoDroid 自動化任務及其工作階段。

ZennoDroid: ProjectMaker
com.zennolab
讓 AI 助理連接 ZennoDroid ProjectMaker,讀取與編輯目前開啟的專案、執行專案並錄製操作。

ZennoDroid: devices of running tasks
com.zennolab
ZennoLab 的配套伺服器,讓助理檢視並操作 ZennoDroid 執行中任務的 Android 裝置:螢幕、元素、應用程式與手勢。