🎯 What is OpenDroid?
OpenDroid isn't just another chatbot. It's a fully autonomous AI agent that lives on your Android phone and actually does things for you.
"Check if it's going to rain tomorrow, and if so, text my wife that I'll be late and set an alarm for 6 PM."
OpenDroid will plan this as 3 steps, execute each one, verify the results, and adapt if anything fails — all without you lifting a finger.
✨ Features
🧠 Autonomous Agent Engine
Capability Description
Self-Planning Breaks complex commands into sequential steps with dependency tracking
Habit & Routine Detection Mines recurring daily app sequences (e.g. Gmail $\to$ Calendar $\to$ Slack at 9 AM) and offers one-click automated routines
Re-Evaluation Monitors execution results and dynamically replans when steps fail
Compound Intent Guard Smart detection of multi-action commands (e.g. "open WhatsApp and send message")
Contact Disambiguation 4-tier contact resolution with fuzzy matching and relationship aliases ("call dad")
🛠️ On-Device Model Manager (LiteRT-LM)
Capability Description
Background Downloader Real network downloads (via WorkManager) with Pause/Resume, cellular support, speed tracking, and ETA
Secure Authentication Direct Android Keystore AES-GCM token storage to securely fetch gated Hugging Face models
Integrity Verification Computes SHA-256 hashes and verifies LiteRT engine loading compatibility before marking READY
Local Model Import
Direct offline importing of catalog or freestanding custom .task / .litertlm files with JNI verification checks
📱 Full Device Control
Action Examples
System Brightness, WiFi, Bluetooth, Flashlight, DND, Volume, Screenshot
Communication
WhatsApp messages, Telegram messages/channels (@user), Calls, SMS, Email drafts
Routines Morning briefings, agenda summaries, automated macro sequences
Productivity Screen extraction ("Read & Remember"), Alarms, Timers, Reminders, Calendar events, Notes
Navigation Google Maps directions, Uber/Ola booking
Media Play/pause music, YouTube search, camera
Finance UPI payments, bill splitting, currency conversion
Smart Home Google Home device control
👁️ Vision Engine & Screen Understanding
Captures screenshots via Accessibility API and feeds them to vision-capable LLMs for real-time screen analysis and "Read & Remember" multimodal meeting/note extraction. Falls back to accessibility tree text-scraping on older devices.
🗄️ 4-Tier Personal Knowledge Graph
┌─────────────────────────────────────────────────────────────┐
│ Personal Knowledge Graph │
├──────────────┬──────────────┬────────────────┬──────────────┤
│ ⚡ Level 1 │ 🧠 Level 2 │ 📈 Level 3 │ 🔒 Level 4 │
│ Temporary │ Long-Term │ Learned │ Sensitive │
│ (Active │ (Explicit │ Patterns │ (Keystore │
│ Plan) │ Facts) │ (Inferences) │ Encrypted) │
└──────────────┴──────────────┴────────────────┴──────────────┘
🎙️ Voice Interface
-
Offline wake word detection — say "OpenDroid" to activate
-
Speech-to-text for hands-free commands
-
Text-to-speech with ElevenLabs premium voice support
🎨 Premium UI
Built with Jetpack Compose featuring a futuristic glassmorphic design:
-
Deep navy (
#080C10) + Neon green (#00FF88) color system -
Pulsing audio orb animation during listening
-
Live latency benchmarks for each provider
-
Dark mode by default
🎬 Meet OpenDroid in 3D
Note: If the video doesn't play inline on GitHub, click here to download and watch it.
📸 Screenshots
🏗️ Architecture
Clean architecture with Dagger-Hilt dependency injection:
com.opendroid.ai
│
├── 🤖 accessibility/ App automators (WhatsApp, SMS, Calls)
├── ⚡ actions/ 60+ action executors across 10 modules
├── 🧠 core/
│ ├── agent/ AgentLoop, PlanManager, IntentClassifier, VisionEngine
│ ├── llm/ 12 LLM providers, fallback chain, prompt engine
│ ├── memory/ 4-tier memory system + notification intelligence
│ ├── security/ Direct Keystore provider credentials + legacy plaintext migration
│ ├── service/ Foreground service, notification listener, boot receiver
│ └── voice/ Wake word, speech recognition, TTS engine
│
├── 💾 data/
│ ├── db/ Room database (7 DAOs, 7 entities, 3 migrations)
│ ├── models/ Unified data models (Plan, Memory, ChatMessage)
│ └── repository/ Repositories backed by Room & DataStore
│
├── 💉 di/ Hilt modules (App, Database, LLM)
└── 🎨 ui/
├── theme/ Glassmorphic design system
├── screens/ 16 screens (Chat, Plan, Memory, Settings, etc.)
├── viewmodel/ 8 ViewModels
└── components/ Reusable Compose components
🔌 Supported LLM Providers
OpenDroid supports 12 LLM providers with automatic failover:
Provider Models Type
🟢 Google Gemini Gemini 2.0 Flash, Pro, Nano Cloud + On-device
🟣 Anthropic Claude Claude Sonnet 4, Opus 4 Cloud
🔵 OpenAI GPT-4o, GPT-4.1, o3 Cloud
⚡ Groq LLaMA 3, Mixtral (ultra-fast) Cloud
🔷 DeepSeek DeepSeek V3, R1 Cloud
🟠 Mistral AI Mistral Large, Medium Cloud
🌐 OpenRouter 200+ models via unified API Cloud
🤝 Together AI Open-source model hosting Cloud
🔴 Cohere Command R+ Cloud
🐙 GitHub Copilot GPT-4.1, Claude via Copilot API Cloud
🏠 Ollama Any local model (LLaMA, Phi, etc.) Local
🔧 Custom OpenAI Any OpenAI-compatible endpoint Self-hosted
Smart Fallback: If your primary provider fails, OpenDroid automatically tries the next available provider in the chain.
⚡️ Getting Started
Prerequisites
-
JDK 21 — not newer. The project compiles against Java 21 (
jvmToolchain(21)).gradle/gradle-daemon-jvm.propertiesmakes./gradlewselect an installed JDK 21 automatically, so you do not have to changeJAVA_HOME— but a JDK 21 must be installed. -
Android SDK 35 (Android 15)
Build & Install
# Clone the repository
git clone https://github.com/yashab-cyber/opendroid.git
cd opendroid
# Build debug APK
./gradlew assembleDebug
# APK output location
# → app/build/outputs/apk/debug/app-debug.apk
Required Permissions
On first launch, OpenDroid will guide you through granting:
Permission Why
🔓 Accessibility Service UI automation, screen reading, app control
⚙️ Write Settings Toggle WiFi, Bluetooth, brightness
🎤 Record Audio Wake word detection & voice commands
🔔 Notification Access Smart notification reading & auto-reply
📱 Post Notifications Foregr