Chat, reason, code, and analyze documents offline with complete privacy.
Your conversations never leave your phone.
Tap the button to get the newest release Β· Android 8.0+
π 100% Offline Β β’Β π³ No Subscriptions Β β’Β π On-Device Speed Β β’Β β¨ Glass UI
Private chat Β· Model manager Β· Resumable downloads
| Capability | |
|---|---|
| π¬ | Local multi-turn chat β inference on-device via CPU / GPU |
| π§ | Thinking mode β full control for reasoning models (e.g. DeepSeek R1-style) |
| πΌοΈ | Vision & documents β images, camera, files, and rich document chat |
| π | Math rendering β native LaTeX, scrollable formulas, copy & selection |
| β¬ | High-tech download dashboard β live speed (MB/s), size progress, dynamic ETA, glow accents |
| βοΈ | Full-screen customization β toggle themes, telemetry, auto-hide nav, timers, personas |
| π¨ | Dynamic model accent themes β DeepSeek (Cyan), Gemma (Amber), Qwen (Violet), Llama (Emerald) |
| π± | Auto-hide bottom navigation β full-screen chat with left/right tab swipe gesture navigation |
| π | Telemetry & thermal guard β real-time t/s, TTFT latency, battery temp (Β°C), available RAM |
| β‘ | Solus Bench rating β on-card benchmark rating dialog showing device speed ratings & profiles |
| π― | System prompt personas β General, Code Auditor, Simple ELI5, Proofreader, Translator |
| β¨ | Glassmorphism UI β Compose + Haze blur, fluid tab motion & dark glass controls |
- Full-Screen Settings & Customization β Comprehensive customization menu with solid opaque background and glassmorphic category cards for themes, telemetry, layout, timers, and tokens.
- Dynamic Model Accent Themes β Instant reactive theme accent colors adapting automatically to DeepSeek (Cyan), Gemma (Amber), Qwen (Violet), and Llama (Emerald).
- Auto-Hide Bottom Navigation β Toggleable auto-hide bottom bar mode for full-screen chat, seamlessly paired with left/right horizontal swipe tab navigation.
- High-Tech Downloading Model Cards β Resumable downloads equipped with live speed (
β‘ MB/s), percentage, downloaded vs total size (MB/GB), dynamic ETA countdown (β±οΈ ETA: 1m 45s), and family accent glowing borders. - Inference Telemetry & Thermal Guard β Sleek single-line scrollable telemetry bar providing real-time speed (
t/s), TTFT latency (ms), backend engine, battery temperature (Β°C), and available RAM (GB free). - Solus Bench Performance Rating β On-card device benchmark rating dialog showing model performance profiles and expected token speeds.
- System Prompt Personas β Quick prompt presets with automatic chat input clearing when switching back to General.
- Circular Dark Glass Controls β Custom dark glass back button styling in Settings.
- Hugging Face Token Manager β Token management integrated directly into Settings with a direct link to the token creation video guide.
| Layer | Stack |
|---|---|
| Language | Kotlin 2.3.0 |
| UI | Jetpack Compose, Material 3, Haze glass blur |
| Inference | LiteRT (TensorFlow Lite), MediaPipe GenAI, llama.cpp JNI |
| Math | com.hrm.latex |
| Local state | SharedPreferences (chat history, app settings, download state) |
Both run generative AI on-device. Solus focuses on a polished private Android assistant with documents, guided models, custom settings, and reliable downloads.
| Feature | Solus | Google AI Edge Gallery |
|---|---|---|
| Fully offline inference | β | β |
| Open source | β | β |
| Free | β | β |
| Local conversation history | β | β |
| Vision models | β | β |
| Document chat (PDF, DOCX, PPTX, XLSX, β¦) | β | β |
| Custom Settings & Themes | β | β |
| Auto-hide bottom navigation & swipe tabs | β | β |
| Resumable download manager with live ETA | β | β |
| Device-aware model recommendations & bench ratings | β | β |
| Response cleanup (control tokens / thinking tags) | β | β |
| Real-time thermal & RAM telemetry guard | β | β |
| Need | Starting point | Size | Gated |
|---|---|---|---|
| Everyday chat & summaries | Qwen 2.5 Instruct / Gemma 3 | ~1.5β3 GB | No / Yes |
| Kotlin, Python, coding | Qwen 2.5 Coder | ~2.2 GB | No |
| Math, planning, reasoning | DeepSeek R1 Distill / Qwen 3 | ~1.8 GB | No |
| Images & visual Q&A | Gemma 3n Vision / FastVLM | ~2.5 GB | Yes |
| Low RAM / quick test | Qwen 2.5 0.5B / TinyLlama | ~400 MB | No |
Tip: use the Models tab filters and device cards β Solus highlights what fits your phone.
Solus
βββ app/
β βββ src/main/java/com/shounak/localmeshai/
β β βββ ai/ # Inference managers & runtimes
β β βββ models/ # Model catalog & info
β β βββ ui/
β β β βββ components/ # Math cards, telemetry, preset bars, shared UI
β β β βββ screens/ # Chat, Models, Settings, Image flows
β β β βββ theme/ # Colors, typography, glass theme, model accent themes
β β β βββ viewmodels/ # Chat, Vision, Main
β β βββ utils/ # AppSettings, Glass effects, sanitizers, downloads
β β βββ MainActivity.kt
β βββ build.gradle.kts
βββ docs/screenshots/
βββ gradle/libs.versions.toml
βββ README.md
---
π₯ Installation
<p align="center">
<a href="https://github.com/ShounakPatra/Solus/releases/download/v1.5.0/app-release.apk" title="Download the latest Solus APK">
<img
src="docs/assets/download-solus-apk.svg"
alt="Download Solus APK β Latest v1.5.0"
width="360"
height="72"
/>
</a>
</p>1. Tap the Download Solus APK button (or open "Releases" (https://github.com/ShounakPatra/Solus/releases)).
2. Download "release.apk" for v1.5.0.
3. Install on your phone (allow Install unknown apps if prompted).
4. Open Solus β Models β download a compatible model β start chatting.
Requirements: Android 8.0+ (API 26), ARM64 device recommended for on-device models.
---
ποΈ On-Device Architecture Pipeline
Solus processes all text, vision, and reasoning inference 100% locally on your phone without sending any data over the internet:
flowchart LR
A["π± User Input"] --> B["π€ Local Tokenizer"]
B --> C["β‘ LiteRT / MediaPipe / llama.cpp"]
C --> D["π§ On-Device NPU / GPU / CPU"]
D --> E["π¬ Streamed Response"]
style A fill:#0EA5E9,stroke:#0284C7,color:#fff
style B fill:#20C997,stroke:#0F766E,color:#fff
style C fill:#A970FF,stroke:#7E22CE,color:#fff
style D fill:#FF6B6B,stroke:#C53030,color:#fff
style E fill:#10B981,stroke:#047857,color:#fff
---
π οΈ Build from Source
Requirements: Android Studio (Ladybug or newer) Β· Android SDK 36 Β· JDK 17
git clone https://github.com/ShounakPatra/Solus.git
cd Solus
# Debug APK
./gradlew assembleDebug
# Unit tests
./gradlew testDebugUnitTest
Debug APK path: "app/build/outputs/apk/debug/app-debug.apk"
---
π§ͺ Custom Model Integration Guide
Developers can easily register custom ".task" or ".litertlm" models in "ModelCatalog.kt":
ModelInfo(
id = "custom-model-id",
name = "My Custom Model 1.5B",
fileName = "custom_model.task",
url = "https://huggingface.co/user/repo/resolve/main/custom_model.task",
type = ModelType.Text,
backend = ModelBackend.LiteRtLm,
recommendedRamGb = 6,
requiresHuggingFaceToken = false
)
1. Add your "ModelInfo" entry into "app/src/main/java/com/shounak/localmeshai/models/ModelCatalog.kt".
2. Build and run: "./gradlew assembleDebug".
---
π Privacy & Security Architecture
Solus is built from the ground up with Privacy by Design:
- 100% Offline Execution: After downloading model weights, Wi-Fi and cellular data can be completely turned off.
- Zero Network Telemetry: No analytics, no tracking, no external API calls during inference.
- Local Storage Isolation: Chat history and session state remain stored strictly inside sandbox app storage ("SharedPreferences").
- Sandboxed Token Security: Hugging Face read tokens are stored locally on-device and transmitted only directly to Hugging Face CDN for gated weight downloads.
- Native Crash Guard: "InitCrashGuard" protects your device by detecting native initialization faults and preventing repeated crash loops.
---
π‘ FAQ
<details>
<summary><b>Does Solus run fully offline?</b></summary>
<br/>Yes. After a model is downloaded you can turn off Wi-Fi and mobile data. Chat and history stay local.
</details><details>
<summary><b>Why is the APK relatively large (~200MB)?</b></summary>
<br/>Native runtimes (MediaPipe, LiteRT, llama.cpp JNI) and architecture-specific libraries ship in the APK so inference is fast out of the box.
</details><details>
<summary><b>Can I load arbitrary GGUF / ONNX files?</b></summary>
<br/>Current runtimes support optimized Android formats (".task", ".litertlm"). Custom GGUF support via llama.cpp JNI is actively expanded.
</details><details>
<summary><b>How do I access gated models like Gemma 3?</b></summary>
<br/>Enter your Hugging Face read token inside Settings β Hugging Face Access Token. Use the "How to create token" button for a quick video tutorial.
</details>---
πΊοΈ Roadmap
<div align="center">Version| Status| Highlights
v1.0.0 β v1.2.0| β
Shipped| Core local chat, thinking controls, resumable downloads, directional tab motion, Haze scroll FABs
v1.5.0| β
Current| Full Settings menu, dynamic model themes, auto-hide nav, high-tech downloading cards, telemetry guard, system prompt personas
v1.6.0| π Next| SHA-256 download checksum verification, custom HF model URL downloader, low-RAM device memory optimizations
v2.0.0| π οΈ Planned| Local RAG document chat indexing (PDF/DOCX embeddings), encrypted chat history backup & export, voice Q&A
v5.0.0| π― Major Milestone| Full native support for running future build "Coming Soon" models & direct ".gguf" models on-device via llama.cpp JNI
</div>---
π€ Author
Shounak Patra
GitHub: "@ShounakPatra" (https://github.com/ShounakPatra)
---
π License
Solus is licensed under the Apache License 2.0. See "LICENSE" (LICENSE) for details.
---
<div align="center">Made for private, on-device AI.
<p>
<a href="https://github.com/ShounakPatra/Solus/releases/download/v1.5.0/app-release.apk" title="Download the latest Solus APK">
<img
src="docs/assets/download-solus-apk.svg"
alt="Download Solus APK β Latest v1.5.0"
width="320"
height="64"
/>
</a>
</p>"β
Star on GitHub" (https://github.com/ShounakPatra/Solus)
</div>
``` easily register custom `.task` or `.litertlm` models in `ModelCatalog.kt`:
```kotlin
ModelInfo(
id = "custom-model-id",
name = "My Custom Model 1.5B",
fileName = "custom_model.task",
url = "https://huggingface.co/user/repo/resolve/main/custom_model.task",
type = ModelType.Text,
backend = ModelBackend.LiteRtLm,
recommendedRamGb = 6,
requiresHuggingFaceToken = false
)
- Add your
ModelInfoentry intoapp/src/main/java/com/shounak/localmeshai/models/ModelCatalog.kt. - Build and run:
./gradlew assembleDebug.
Solus is built from the ground up with Privacy by Design:
- 100% Offline Execution: After downloading model weights, Wi-Fi and cellular data can be completely turned off.
- Zero Network Telemetry: No analytics, no tracking, no external API calls during inference.
- Local Storage Isolation: Chat history and session state remain stored strictly inside sandbox app storage (
SharedPreferences). - Sandboxed Token Security: Hugging Face read tokens are stored locally on-device and transmitted only directly to Hugging Face CDN for gated weight downloads.
- Native Crash Guard:
InitCrashGuardprotects your device by detecting native initialization faults and preventing repeated crash loops.
Does Solus run fully offline?
Yes. After a model is downloaded you can turn off WiβFi and mobile data. Chat and history stay local.
Why is the APK relatively large (~200MB)?
Native runtimes (MediaPipe, LiteRT, llama.cpp JNI) and architecture-specific libraries ship in the APK so inference is fast out of the box.
Can I load arbitrary GGUF / ONNX files?
Current runtimes support optimized Android formats (.task, .litertlm). Custom GGUF support via llama.cpp JNI is actively expanded.
How do I access gated models like Gemma 3?
Enter your Hugging Face read token inside Settings β Hugging Face Access Token. Use the "How to create token" button for a quick video tutorial.
| Version | Status | Highlights |
|---|---|---|
| v1.0.0 β v1.2.0 | β Shipped | Core local chat, thinking controls, resumable downloads, directional tab motion, Haze scroll FABs |
| v1.5.0 | β Current | Full Settings menu, dynamic model themes, auto-hide nav, high-tech downloading cards, telemetry guard, system prompt personas |
| v1.6.0 | π Next | SHA-256 download checksum verification, custom HF model URL downloader, low-RAM device memory optimizations |
| v2.0.0 | π οΈ Planned | Local RAG document chat indexing (PDF/DOCX embeddings), encrypted chat history backup & export, voice Q&A |
| v5.0.0 | π― Major Milestone | Full native support for running future build "Coming Soon" models & direct .gguf models on-device via llama.cpp JNI |
Shounak Patra
GitHub: @ShounakPatra
Solus is licensed under the Apache License 2.0. See LICENSE for details.


