A modern, BYOK and FOSS android app to summarize videos(YouTube, BiliBili), articles, images and documents with AI/LLM.
MAD: pure Kotlin + Jetpack Compose + M3 Expressive
Minimal Android version: 13
There are 2 releases available:
-
standalone which includes ML model to recognize text from image, it got larger package size.
-
gms which allows user to download the model from Google Play Services, but GMS required.
The Play Store release bundled with gms version. This package is signed by Google managed key for simplicity, which means it's not compatible to update in Google Play Store if you installed a GitHub package previously.
- Summarize multiple media types
| media | supported types |
|---|---|
| Video (Link) | YouTube, BiliBili |
| Document | MS Word, PDF |
| Image | Jpg, Png, Webp (Latin only for now) |
| Text | Article link, Plain text |
-
Multiple LLM providers supported
- OpenAI ChatGPT
- Google Gemini
- Anthropic Claude
- Alibaba Qwen
- DeepSeek
- Mistral
- OpenRouter
- Ollama
- AWS Bedrock
- Custom OpenAI-compatible endpoints
-
Custom Model Management: Add, edit, delete, and drag-and-drop reorder models per provider with fallback to Koog defaults
-
Quick Model Switcher: Easily switch providers and active models on the Home screen following your custom configured order
-
Material 3 Expressive UI: Engaging and easier to use, light/dark theme and dynamic color theme
-
Instant summarize via share sheet or text selection toolbar: Convenient to trigger summarization, show result in overlay
-
Configurable LLM settings: Custom API keys, base URLs, prompt customization, and summary lengths
-
Text to speech for the summaries with multilingual and speed adjustment support
-
History search
The app follows Google's official Android Architecture Recommendations and Modern Android Development (MAD) best practices:
- Layered Architecture:
- UI Layer: Built with Jetpack Compose and Material 3 Expressive, powered by ViewModels exposing reactive
StateFlowand following Unidirectional Data Flow (UDF). - Domain & Model Layer (
model/,exception/): Pure domain models and centralized custom exceptions decoupled from UI and data layers. - Data Layer (
data/): Repositories act as the Single Source of Truth (SSOT), encapsulating Room SQLite DB, ProtoBuf DataStore, Ktor network client, and Koog LLM engine.
- UI Layer: Built with Jetpack Compose and Material 3 Expressive, powered by ViewModels exposing reactive
- Dependency Injection: Powered by Dagger Hilt for loose coupling and testability.
- Asynchronous Operations: Kotlin Coroutines + Flow for reactive, main-safe async streams.
-
The original idea from talosross
-
Koog for kotlin-based LLM interactions





