Open Source MIT Licensed — free forever

Summon a Ghost
Into Your Android

It sees the screen. It taps the buttons. It never sleeps. Open-source Python framework for controlling real phones via ADB. No root required. No cloud dependency. Pure automation.

Works with LangChain ·LlamaIndex ·MCP
Runs on iOS ·Android ·Android Emulator ·Your PC
On-device llama.cpp ·MediaPipe ·MLX
Ghost tapping a phone
main.py
from android_agent import Device

ghost = Device() # summon the ghost
ghost.tap(540, 1200) # tap the screen

xml = ghost.dump_xml() # read what's on screen
ghost.tap_text(xml, "Search") # the ghost finds & taps

Wire up your agent — one command per client

62 MCP tools — tap, swipe, type, screenshot, OCR, launch apps, run skills. Pick your client:

CLI — one command
JSON config
install
claude mcp add android-agent -- uvx --from ghost-in-the-droid android-agent-mcp
codex mcp add android-agent -- uvx --from ghost-in-the-droid android-agent-mcp
agy mcp add android-agent -- uvx --from ghost-in-the-droid android-agent-mcp
opencode mcp add android-agent -- uvx --from ghost-in-the-droid android-agent-mcp
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%\Claude\claude_desktop_config.json

  "mcpServers":
    "android-agent":
      "command": "uvx",
      "args": ["--from", "ghost-in-the-droid", "android-agent-mcp"]
    
  
# Save as .cursor/mcp.json in your project (or ~/.cursor/mcp.json globally)

  "mcpServers":
    "android-agent":
      "command": "uvx",
      "args": ["--from", "ghost-in-the-droid", "android-agent-mcp"]
    
  
# Save as mcp_config.json in your Windsurf config directory

  "mcpServers":
    "android-agent":
      "command": "uvx",
      "args": ["--from", "ghost-in-the-droid", "android-agent-mcp"]
    
  
# Save as .vscode/mcp.json — note the "servers" key

  "servers":
    "android-agent":
      "command": "uvx",
      "args": ["--from", "ghost-in-the-droid", "android-agent-mcp"]
    
  

First time? uvx installs on demand — no clone needed. Plug in a phone with USB debugging and your agent can control it immediately. Other clients →

Give any AI agent a real phone

The 32-second master reel. Real devices, real agents, one voiceover. Hover for sound.

See the ghost in action

Nine demos. Real phones, real agents. No scripted mockups.

MCP Clients
Interfaces
On-Device + iOS
Claude Code drives the phone. Type in the TUI, watch it act.

The ghost sees. The ghost taps. The ghost never stops.

From a single tap to a full phone farm. Android or iPhone. Cloud brain or the phone itself.

Ghost tapping a phone screen
Device Control

The ghost taps what you'd tap

62 MCP tools — tap, swipe, type, clipboard, screenshots, browser primitives, TTS, camera. Works on any Android 5.0+ phone via USB or Wi-Fi ADB. Works on iPhone via WebDriverAgent. The ghost doesn't install anything on your device. It possesses through the debug bridge (Android) or the WDA tunnel (iOS).

Ghost watching a phone screen
Screen Reading

The ghost sees what you see

Read the screen via UIAutomator XML on Android, XCTest accessibility tree on iPhone, OCR, or a live MJPEG / WebRTC stream in your browser. Find any element by text, id, or position. The ghost reads every pixel — whichever platform.

Ghost forging a skill
Skill System

Forge reusable skills for any app

YAML-defined UI elements per platform (elements.yaml for Android, elements_ios.yaml for iOS). Python actions with precondition checks. Multi-step workflows that chain. Ships with TikTok, Play Store, Chrome News. Crack any app. Forge a skill. Share it on the Skill Hub.

Multiple ghosts on a phone farm
Phone Farm

One ghost is useful. A hundred are unstoppable.

Multi-device management with per-phone job queues, priority scheduling, WebRTC streaming, and a full dashboard. USB, wireless, Docker+KVM Android emulator pools, Tailscale-driven iPhone fleets. One box. Ten phones. Zero cloud.

Ghost in stealth mode
Stealth

No root. No cloud. No trace. Airplane mode works.

Gaussian tap jitter, variable-speed swipes, character-by-character typing. No root, no accessibility service, nothing installed by default. Optional companion app on Android for WebRTC + 30x quicker reads. On-device mode runs the model INSIDE the phone — the model file, the tool loop, the agent — nothing leaves. Airplane mode is a supported deployment.

Ghost possessing a phone
AI Agent Body

Your agent can think. Now it can touch.

MCP server exposes 62 tools. LangChain + LlamaIndex adapters wrap the same surface behind a fail-closed allow-list. Point Claude Code, Codex, Antigravity, Cursor, Opencode, or a model running inside the phone itself at it — your agent grows hands. The ghost is the bridge between thought and tap.

Ghost sharing a skill package
Skill Hub

Build once. Share with everyone.

Community skill registry — install with one command. Every skill you build makes the haunting stronger. npm for Android automation.

Ghost flexing — free and open source
Free Forever

Open source. Free forever.

MIT licensed. No cloud. No subscription. No per-action fees. $55 of hardware, zero monthly cost. The ghost is free. The ghost is open source. The ghost is yours.

Three steps to summon the ghost

01

Plug in a phone

USB cable + developer mode. One command: adb devices. The ghost is ready.

02

Teach the ghost

Write Python, record macros, or install a community skill. The ghost learns the app. The ghost remembers.

03

Scale the haunting

Add more phones. Schedule jobs. The ghost multiplies across every device you own.

62
MCP tools
6
LLM backends
2
Platforms — Android + iOS
3
On-device engines

Ready to summon the ghost?

From zero to your first haunted phone in five minutes. Free. Open source. Yours.

Get Started