Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

42 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Solus logo

Solus

Private, local AI β€” running entirely on your Android device.

Chat, reason, code, and analyze documents offline with complete privacy.
Your conversations never leave your phone.


Download Solus APK β€” Latest v1.5.0

Tap the button to get the newest release Β· Android 8.0+

App version 1.5.0 APK size 218 MB GitHub stars Total downloads

Android CI Android 8.0 or newer Apache 2.0 license Kotlin 2.3.0 Jetpack Compose

View Solus on Trendshift

πŸ”’ 100% Offline Β β€’Β  πŸ’³ No Subscriptions Β β€’Β  πŸš€ On-Device Speed Β β€’Β  ✨ Glass UI


πŸ“± App Preview

Solus chat UI Β Β  Solus Model Manager Β Β  Solus download progress

Private chat Β· Model manager Β· Resumable downloads


✨ Features

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

πŸ†• What’s new in v1.5.0

  • 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.

πŸ› οΈ Built With

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)

πŸ“Š Solus vs Google AI Edge Gallery

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 βœ… ❌

🎯 Model Compatibility Guide

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.


πŸ“‚ Project Structure

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
)
  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

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.


πŸ—ΊοΈ Roadmap

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

πŸ‘€ Author

Shounak Patra
GitHub: @ShounakPatra


πŸ“„ License

Solus is licensed under the Apache License 2.0. See LICENSE for details.


Made for private, on-device AI.

Download Solus APK β€” Latest v1.5.0

β˜… Star on GitHub

About

Private, offline Android AI chat powered by on-device language and vision models.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages