Skip to content

Repository files navigation

MobileDroid

"ByteBot gave AI its own computer. MobileDroid gives AI its own phone."

Self-hosted AI mobile agent for Android automation — the mobile equivalent of ByteBot. Control Android devices via natural language with multi-profile antidetect support.

MobileDroid Demo

GitHub stars Discord License: MIT

Why MobileDroid?

60%+ of web traffic is mobile, yet most AI automation tools only work on desktop. MobileDroid fills that gap.

Challenge MobileDroid Solution
Mobile-only apps (Instagram, TikTok, banking) AI controls real Android apps
Account bans from browser automation Device fingerprinting + residential IPs
Expensive SaaS antidetect tools ($50-500/mo) Self-hosted, open source, free
No mobile RPA options Full Android automation via natural language

Who It's For

  • Social Media Managers — Automate mobile-only features (Stories, Reels, DMs)
  • QA & Testing Teams — Parallel automated mobile testing
  • Growth Hackers — Scale mobile workflows without detection
  • Researchers — Extract data from mobile apps programmatically
  • RPA Developers — Mobile automation that UiPath can't do

MobileDroid vs ByteBot

Feature ByteBot MobileDroid
Platform Linux Desktop Android Mobile
Container Docker + Ubuntu Docker + Redroid
AI Backend Claude, GPT, Gemini Claude, GPT, Gemini (LiteLLM)
Use Cases Desktop RPA, web scraping Mobile automation, app testing
Anti-detect ✅ Device fingerprinting
Residential IP ✅ Tailscale home proxy
Self-hosted
License Apache 2.0 MIT

One-Click Deploy

Deploy MobileDroid to your own cloud infrastructure:

Platform Deploy
AWS Launch Stack
DigitalOcean Deploy to DO
Vultr Deploy on Vultr

For more regions and detailed instructions, see deploy/README.md.

Features

  • AI Agent Control: Natural language task execution on Android devices
  • Multi-Profile Management: Create and manage multiple device profiles
  • Device Fingerprint Spoofing: Antidetect capabilities with real device fingerprints
  • Per-Profile Proxy Support: Residential IP compatibility per profile
  • Web-Based Control: View and interact with devices via browser
  • Self-Hostable: Docker, Docker Compose, Kubernetes support

Cloud Version

Want managed infrastructure without the setup? Join the MobileDroid Cloud waitlist for early access.

Roadmap

See what's coming next: ROADMAP.md

Quick Start

Prerequisites

  • Docker & Docker Compose
  • Linux host with kernel 5.4+ (for redroid KVM support)
  • 8GB+ RAM recommended

Setup

# Clone the repository
git clone https://github.com/serup.ai/mobiledroid.git
cd mobiledroid

# Copy environment file
cp .env.example .env

# Edit .env and add your API keys
nano .env

# Start the platform
docker-compose -f docker/docker-compose.yml up -d

# Access the UI (default ports offset to avoid conflicts)
# UI:  http://<docker-host>:3100
# API: http://<docker-host>:8100

Default Ports

Service Port Description
Web UI 3100 Next.js frontend
API 8100 FastAPI backend
ws-scrcpy 8186 Device screen stream

Ports are configurable via environment variables (UI_PORT, API_PORT, SCRCPY_PORT).

Kernel Modules (Required for redroid)

# Load required kernel modules
sudo modprobe binder_linux devices="binder,hwbinder,vndbinder"
sudo modprobe ashmem_linux

Architecture

┌─────────────────────────────────────────────────────────────┐
│                     Web UI (Next.js)                        │
│                    http://<host>:3100                       │
└─────────────────────────┬───────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                   API Server (FastAPI)                       │
│                    http://<host>:8100                        │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐       │
│  │ Profiles │ │ Devices  │ │  Tasks   │ │ Proxies  │       │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘       │
└─────────────────────────┬───────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                    AI Agent Service                          │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐       │
│  │  Vision  │ │ Planner  │ │ Actions  │ │   ADB    │       │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘       │
└─────────────────────────┬───────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│              Device Containers (redroid)                     │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐           │
│  │Profile 1│ │Profile 2│ │Profile 3│ │Profile N│           │
│  │ Samsung │ │  Pixel  │ │ OnePlus │ │   ...   │           │
│  └─────────┘ └─────────┘ └─────────┘ └─────────┘           │
└─────────────────────────────────────────────────────────────┘

Project Structure

mobiledroid/
├── docker/                     # Docker configurations
│   ├── Dockerfile.redroid      # Custom redroid with fingerprint injection
│   ├── Dockerfile.agent        # AI agent service
│   ├── Dockerfile.api          # Backend API
│   ├── Dockerfile.ui           # Next.js UI
│   └── docker-compose.yml      # Full stack compose
├── packages/
│   ├── agent/                  # AI agent (Python)
│   ├── api/                    # Backend API (FastAPI)
│   ├── ui/                     # Next.js frontend
│   └── shared/                 # Shared types/utils
├── config/
│   ├── fingerprints/           # Device fingerprint database
│   └── proxies.example.json    # Proxy configuration example
├── scripts/                    # Utility scripts
└── helm/                       # Kubernetes deployment

Development

Running Services Individually

# API Server
cd packages/api
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn src.main:app --reload --port 8000

# UI
cd packages/ui
npm install
npm run dev

# Agent (typically runs within API context)
cd packages/agent
pip install -r requirements.txt

API Documentation

Once the API is running, access:

  • Swagger UI: http://:8100/docs
  • ReDoc: http://:8100/redoc

Configuration

Device Fingerprints

Edit config/fingerprints/devices.json to add custom device profiles:

{
  "id": "custom-device",
  "name": "Custom Device",
  "model": "MODEL-123",
  "brand": "brand",
  "manufacturer": "Manufacturer",
  "build_fingerprint": "...",
  "android_version": "13",
  "screen": {"width": 1080, "height": 2400, "dpi": 420}
}

Proxy Configuration

Each profile can have its own proxy configuration:

  • HTTP/HTTPS proxies
  • SOCKS5 proxies
  • Residential proxy support

Community

License

MIT License - see LICENSE file for details.

Contributing

Contributions welcome! Please read CONTRIBUTING.md for guidelines.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages