English
Ready to build the future of on-device AI on Android? You're in the right place!
BreezeApp Engine is a next-generation framework for creating powerful, modular, and extensible AI-driven experiences.
This repository contains two main components:
The AI inference service that runs as a background Android service. It manages AI models, routes requests to appropriate runners, and handles the heavy lifting of AI processing.
Key Features:
-
Multi-provider AI support (ExecuTorch, Sherpa, OpenRouter, LlamaStack)
-
Model management and download
-
Configuration UI for settings
The client-side SDK that provides an effortless, lightweight approach for apps to leverage AI features without embedding the entire engine. Apps simply bind to the engine service via AIDL and get a clean, type-safe API.
Key Features:
- Simple API:
EdgeAI.chat(),EdgeAI.asr(),EdgeAI.tts() - AIDL-based IPC for cross-process communication
- Streaming support for real-time responses
The engine accepts AIDL connections from client apps and routes requests to appropriate AI runners. Here's how the engine processes incoming requests:
%%{init: {'flowchart': {'useMaxWidth': false, 'width': 800}}}%%
graph TD
subgraph Client["Client App Process"]
A["📱 Client App<br/>(via EdgeAI SDK)"]
end
subgraph Engine["BreezeApp-engine Process"]
B["🔌 AIDL Service Binder"]
C["🎯 Request Router<br/>(AIEngineManager)"]
D["🤖 AI Runners"]
E["📊 Model Manager"]
end
A -- "1. bindService()" --> B
B -- "2. Route request" --> C
C -- "3. Select runner" --> D
C -- "Load model if needed" --> E
D -- "4. Return result" --> C
C -- "5. Stream/return response" --> B
B -- "6. Deliver to client" --> A
style B fill:#FFE0B2,stroke:#FF6F00
style C fill:#E1BEE7,stroke:#7B1FA2
style D fill:#B2DFDB,stroke:#00796B
style Client fill:#E8F5E9,stroke:#4CAF50,stroke-width:2px
style Engine fill:#E3F2FD,stroke:#2196F3,stroke-width:2px
This architecture allows the engine to manage multiple AI providers and route requests efficiently.
BreezeApp Engine integrates with multiple AI providers, each bringing unique capabilities:
| Provider | Type | LLM | VLM | ASR | TTS | Guardian | Streaming |
|---|---|---|---|---|---|---|---|
| MediaTek | Local NPU | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| ExecuTorch | Local | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| LlamaStack | Remote | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
| OpenRouter | Remote | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Sherpa | Local | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
Legend: ✅ Supported | 🚧 Experimental | ❌ Not Supported
For detailed technical implementation, see Engine Architecture →
Your path depends on your goal. Are you building an app with the engine, or building a new feature for the engine?
If you want to add AI features to your Android app, this is your path.
- Start Here: Our BreezeApp Client Guide is the best place to begin. It provides a step-by-step tutorial on how to integrate the
EdgeAISDK and make your first API call. - Explore the API: The
EdgeAISDK is the public API for the engine. You can explore its features and data models in the EdgeAI README.
If you want to add a new model or AI capability to the engine itself.
- Understand the Design: The Architecture Guide explains the internal design of the engine and how all the pieces fit together.
- Build a Runner: Follow the Runner Development Guide to learn how to implement a new
Runnerthat can be discovered by the engine.
⚠️ Development Note: After rebuilding the engine, you must also rebuild your client app to reconnect properly.
Whether you're fixing a bug, improving the docs, or adding a revolutionary new runner, we welcome your contributions!
- Contribution Guidelines: Please read our Contributing Guide.
- Have Questions? Don't hesitate to open an issue! We're happy to help.