yashab-cyber/opendroid

Your Open Autonomous Android Agent — A production-ready, self-planning AI assistant powered by local/remote LLMs and accessibility-driven screen automation.

Kotlin

1,149

343 commits

updated Sep 4, 2026

See the code

README

OpenDroid Logo

OpenDroid

🤖 The Open-Source Autonomous AI Agent for Android

Your phone. Your rules. Your AI.

CA: 4AonAtnT2WpjD25s1JJbNuxS1DNq9WBe7dTME2jWpump

Release Stars License Discord

Opendroid  - Autonomous A.I agent for Android. | Product Hunt

Features • Architecture • Get Started • Providers • License


🎯 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

CapabilityDescription
Self-PlanningBreaks complex commands into sequential steps with dependency tracking
Habit & Routine DetectionMines recurring daily app sequences (e.g. Gmail $\to$ Calendar $\to$ Slack at 9 AM) and offers one-click automated routines
Re-EvaluationMonitors execution results and dynamically replans when steps fail
Compound Intent GuardSmart detection of multi-action commands (e.g. "open WhatsApp and send message")
Contact Disambiguation4-tier contact resolution with fuzzy matching and relationship aliases ("call dad")

🛠️ On-Device Model Manager (LiteRT-LM)

CapabilityDescription
Background DownloaderReal network downloads (via WorkManager) with Pause/Resume, cellular support, speed tracking, and ETA
Secure AuthenticationDirect Android Keystore AES-GCM token storage to securely fetch gated Hugging Face models
Integrity VerificationComputes SHA-256 hashes and verifies LiteRT engine loading compatibility before marking READY
Local Model ImportDirect offline importing of catalog or freestanding custom .task / .litertlm files with JNI verification checks

📱 Full Device Control

ActionExamples
SystemBrightness, WiFi, Bluetooth, Flashlight, DND, Volume, Screenshot
CommunicationWhatsApp messages, Telegram messages/channels (@user), Calls, SMS, Email drafts
RoutinesMorning briefings, agenda summaries, automated macro sequences
ProductivityScreen extraction ("Read & Remember"), Alarms, Timers, Reminders, Calendar events, Notes
NavigationGoogle Maps directions, Uber/Ola booking
MediaPlay/pause music, YouTube search, camera
FinanceUPI payments, bill splitting, currency conversion
Smart HomeGoogle 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

OpenDroid 3D Greeting

OpenDroid saying hi — rendered in 3D!

Note: If the video doesn't play inline on GitHub, click here to download and watch it.

📸 Screenshots

Chat Screen    Plan Engine    Persistent Memory    Set Alarm

Chat • Plan Engine • Memory System • Alarm Control


🏗️ 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:

ProviderModelsType
🟢 Google GeminiGemini 2.0 Flash, Pro, NanoCloud + On-device
🟣 Anthropic ClaudeClaude Sonnet 4, Opus 4Cloud
🔵 OpenAIGPT-4o, GPT-4.1, o3Cloud
⚡ GroqLLaMA 3, Mixtral (ultra-fast)Cloud
🔷 DeepSeekDeepSeek V3, R1Cloud
🟠 Mistral AIMistral Large, MediumCloud
🌐 OpenRouter200+ models via unified APICloud
🤝 Together AIOpen-source model hostingCloud
🔴 CohereCommand R+Cloud
🐙 GitHub CopilotGPT-4.1, Claude via Copilot APICloud
🏠 OllamaAny local model (LLaMA, Phi, etc.)Local
🔧 Custom OpenAIAny OpenAI-compatible endpointSelf-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.properties makes ./gradlew select an installed JDK 21 automatically, so you do not have to change JAVA_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:

PermissionWhy
🔓 Accessibility ServiceUI automation, screen reading, app control
⚙️ Write SettingsToggle WiFi, Bluetooth, brightness
🎤 Record AudioWake word detection & voice commands
🔔 Notification AccessSmart notification reading & auto-reply
📱 Post NotificationsForeground service status

Configure LLM

In Settings, add your API key for any supported provider. OpenDroid works best with:

  • Gemini (free tier available)
  • Groq (fastest inference)
  • Ollama (fully offline)

🔒 Security

Found a vulnerability? Please report it responsibly. See SECURITY.md for details.


⭐ Star History

Star History Chart

📜 License

Copyright 2026 OpenDroid Contributors
Last Updated: August 18, 2026

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Made with ❤️ by Yashab Alam

⭐ Star this repo if OpenDroid has helped you!

accessibility
ai-agent
android
automation
autonomous
kotlin
llm
multimodal-ai

yashab-cyber/opendroid

Your Open Autonomous Android Agent — A production-ready, self-planning AI assistant powered by local/remote LLMs and accessibility-driven screen automation.

Kotlin

1,149

343 commits

updated Sep 4, 2026

See the code

README

OpenDroid Logo

OpenDroid

🤖 The Open-Source Autonomous AI Agent for Android

Your phone. Your rules. Your AI.

CA: 4AonAtnT2WpjD25s1JJbNuxS1DNq9WBe7dTME2jWpump

Release Stars License Discord

Opendroid  - Autonomous A.I agent for Android. | Product Hunt

Features • Architecture • Get Started • Providers • License


🎯 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

CapabilityDescription
Self-PlanningBreaks complex commands into sequential steps with dependency tracking
Habit & Routine DetectionMines recurring daily app sequences (e.g. Gmail $\to$ Calendar $\to$ Slack at 9 AM) and offers one-click automated routines
Re-EvaluationMonitors execution results and dynamically replans when steps fail
Compound Intent GuardSmart detection of multi-action commands (e.g. "open WhatsApp and send message")
Contact Disambiguation4-tier contact resolution with fuzzy matching and relationship aliases ("call dad")

🛠️ On-Device Model Manager (LiteRT-LM)

CapabilityDescription
Background DownloaderReal network downloads (via WorkManager) with Pause/Resume, cellular support, speed tracking, and ETA
Secure AuthenticationDirect Android Keystore AES-GCM token storage to securely fetch gated Hugging Face models
Integrity VerificationComputes SHA-256 hashes and verifies LiteRT engine loading compatibility before marking READY
Local Model ImportDirect offline importing of catalog or freestanding custom .task / .litertlm files with JNI verification checks

📱 Full Device Control

ActionExamples
SystemBrightness, WiFi, Bluetooth, Flashlight, DND, Volume, Screenshot
CommunicationWhatsApp messages, Telegram messages/channels (@user), Calls, SMS, Email drafts
RoutinesMorning briefings, agenda summaries, automated macro sequences
ProductivityScreen extraction ("Read & Remember"), Alarms, Timers, Reminders, Calendar events, Notes
NavigationGoogle Maps directions, Uber/Ola booking
MediaPlay/pause music, YouTube search, camera
FinanceUPI payments, bill splitting, currency conversion
Smart HomeGoogle 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

OpenDroid 3D Greeting

OpenDroid saying hi — rendered in 3D!

Note: If the video doesn't play inline on GitHub, click here to download and watch it.

📸 Screenshots

Chat Screen    Plan Engine    Persistent Memory    Set Alarm

Chat • Plan Engine • Memory System • Alarm Control


🏗️ 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:

ProviderModelsType
🟢 Google GeminiGemini 2.0 Flash, Pro, NanoCloud + On-device
🟣 Anthropic ClaudeClaude Sonnet 4, Opus 4Cloud
🔵 OpenAIGPT-4o, GPT-4.1, o3Cloud
⚡ GroqLLaMA 3, Mixtral (ultra-fast)Cloud
🔷 DeepSeekDeepSeek V3, R1Cloud
🟠 Mistral AIMistral Large, MediumCloud
🌐 OpenRouter200+ models via unified APICloud
🤝 Together AIOpen-source model hostingCloud
🔴 CohereCommand R+Cloud
🐙 GitHub CopilotGPT-4.1, Claude via Copilot APICloud
🏠 OllamaAny local model (LLaMA, Phi, etc.)Local
🔧 Custom OpenAIAny OpenAI-compatible endpointSelf-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.properties makes ./gradlew select an installed JDK 21 automatically, so you do not have to change JAVA_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:

PermissionWhy
🔓 Accessibility ServiceUI automation, screen reading, app control
⚙️ Write SettingsToggle WiFi, Bluetooth, brightness
🎤 Record AudioWake word detection & voice commands
🔔 Notification AccessSmart notification reading & auto-reply
📱 Post NotificationsForeground service status

Configure LLM

In Settings, add your API key for any supported provider. OpenDroid works best with:

  • Gemini (free tier available)
  • Groq (fastest inference)
  • Ollama (fully offline)

🔒 Security

Found a vulnerability? Please report it responsibly. See SECURITY.md for details.


⭐ Star History

Star History Chart

📜 License

Copyright 2026 OpenDroid Contributors
Last Updated: August 18, 2026

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Made with ❤️ by Yashab Alam

⭐ Star this repo if OpenDroid has helped you!

accessibility
ai-agent
android
automation
autonomous
kotlin
llm
multimodal-ai

Significant stargazers

Damodar Lohani

2,091 followers · starred Aug 2026

Jeffrey (Dongkyu) Kim

416 followers · starred Jul 2026

Martin Honermeyer

79 followers · starred Sep 2026

Benson K B

32 followers · starred Aug 2026