Turn your Android phone into an OpenAI-compatible LLM inference server - Fully local, private and Open Source
327
stars
1,202
commits
Kotlin
primary language
Sep 5, 2026
updated
Quick Start | Screenshots | Features | Models | Integrations | API | FAQ | Report a bug
Turn your Android phone into an OpenAI-compatible API LLM server — fully local, private, and open source
Think of it as Ollama for Android. Pick a model, tap Start, and your phone becomes an LLM server — runs LLMs on your mobile GPU/CPU via Google's LiteRT-LM runtime and serves them as a standard OpenAI-compatible HTTP API on your local network.
No cloud. No API keys. No subscriptions. Just your phone.
.litertlm files or model lists from local storage, or add custom model sources via JSON file or URL[!NOTE] Home Assistant currently requires a custom integration such as Extended OpenAI Conversation or Local OpenAI LLM and OpenAI STT for voice commands — see the Home Assistant client setup
* I am not responsible for any swollen batteries, crispy phones, or spontaneous pocket warmers. Please don't run your LLM on your phone while it's under your pillow. You've been warned.
http://PHONE_IP:8000/v1) with any OpenAI-compatible client — Open WebUI, OpenClaw, Home Assistant, Python, etc. See Client Setup for detailed guides.[!IMPORTANT] Requires: Android 12+ · arm64-v8a device · 6 GB RAM minimum · 8 GB+ recommended for multimodal models (see model table)
| Model | Size | Min RAM | Context | Capabilities |
|---|---|---|---|---|
| Gemma 4 E2B ⭐ | 2.4 GB | 8 GB | 32K | Text · Vision · Audio · Thinking · Tools · MTP |
| Gemma 4 E4B ⭐ | 3.4 GB | 12 GB | 32K | Text · Vision · Audio · Thinking · Tools · MTP |
| Gemma 3n E2B | 3.4 GB | 8 GB | 4K | Text · Vision · Audio |
| Gemma 3n E4B | 4.6 GB | 12 GB | 4K | Text · Vision · Audio |
| Gemma 3 1B | 0.5 GB | 6 GB | 1K | Text |
| Qwen 2.5 1.5B | 1.5 GB | 6 GB | 4K | Text |
| DeepSeek-R1 1.5B | 1.7 GB | 6 GB | 4K | Text |
⭐ Recommended — E2B for most devices, E4B for high-end
[!NOTE] Tool calling is experimental and may not always be reliable due to model limitations.
See the Model Guide for recommendations, capability details, and import instructions.
/metrics endpoint with 29 metrics for Grafana, Datadog, etc.| Method | Endpoint | Description |
|---|---|---|
POST | /v1/chat/completions | OpenAI Chat Completions API (streaming + non-streaming) |
POST | /v1/completions | OpenAI Completions API |
POST | /v1/responses | OpenAI Responses API |
POST | /v1/messages | Anthropic Messages API (streaming + non-streaming) |
POST | /v1/messages/count_tokens | Anthropic input-token estimator |
POST | /v1/audio/transcriptions | Audio transcription |
GET | /v1/models | List available models |
GET | /v1/models/{id} | Get detail for a specific model |
GET | / or /v1 | Server info (version, status, endpoints) |
GET | /health | Health check (with optional ?metrics=true) |
GET | /metrics | Prometheus metrics |
GET | /ping | Simple liveness check |
GET | /v1/server/config | Read model and server configuration |
POST | /v1/server/config | Update model and server configuration |
Full API docs and examples: docs/api/API.md
.litertlm models are supported (LiteRT runtime limitation). Models are available from the LiteRT Community on HuggingFace. Advanced users can convert HuggingFace models to .litertlm using Google's litert-torch tooling (Linux, 32GB+ RAM required).Product flavors — all installable side-by-side:
| Flavor | Icon | Purpose |
|---|---|---|
stable | Stable release | |
beta | Beta testing | |
dev | Local development |
What happens on your phone stays on your phone. If that matters to you, consider supporting OlliteRT.
Licensed under the Apache License 2.0.
1,202 commits
Kotlin
100.0%
Turn your Android phone into an OpenAI-compatible LLM inference server - Fully local, private and Open Source
327
stars
1,202
commits
Kotlin
primary language
Sep 5, 2026
updated
Quick Start | Screenshots | Features | Models | Integrations | API | FAQ | Report a bug
Turn your Android phone into an OpenAI-compatible API LLM server — fully local, private, and open source
Think of it as Ollama for Android. Pick a model, tap Start, and your phone becomes an LLM server — runs LLMs on your mobile GPU/CPU via Google's LiteRT-LM runtime and serves them as a standard OpenAI-compatible HTTP API on your local network.
No cloud. No API keys. No subscriptions. Just your phone.
.litertlm files or model lists from local storage, or add custom model sources via JSON file or URL[!NOTE] Home Assistant currently requires a custom integration such as Extended OpenAI Conversation or Local OpenAI LLM and OpenAI STT for voice commands — see the Home Assistant client setup
* I am not responsible for any swollen batteries, crispy phones, or spontaneous pocket warmers. Please don't run your LLM on your phone while it's under your pillow. You've been warned.
http://PHONE_IP:8000/v1) with any OpenAI-compatible client — Open WebUI, OpenClaw, Home Assistant, Python, etc. See Client Setup for detailed guides.[!IMPORTANT] Requires: Android 12+ · arm64-v8a device · 6 GB RAM minimum · 8 GB+ recommended for multimodal models (see model table)
| Model | Size | Min RAM | Context | Capabilities |
|---|---|---|---|---|
| Gemma 4 E2B ⭐ | 2.4 GB | 8 GB | 32K | Text · Vision · Audio · Thinking · Tools · MTP |
| Gemma 4 E4B ⭐ | 3.4 GB | 12 GB | 32K | Text · Vision · Audio · Thinking · Tools · MTP |
| Gemma 3n E2B | 3.4 GB | 8 GB | 4K | Text · Vision · Audio |
| Gemma 3n E4B | 4.6 GB | 12 GB | 4K | Text · Vision · Audio |
| Gemma 3 1B | 0.5 GB | 6 GB | 1K | Text |
| Qwen 2.5 1.5B | 1.5 GB | 6 GB | 4K | Text |
| DeepSeek-R1 1.5B | 1.7 GB | 6 GB | 4K | Text |
⭐ Recommended — E2B for most devices, E4B for high-end
[!NOTE] Tool calling is experimental and may not always be reliable due to model limitations.
See the Model Guide for recommendations, capability details, and import instructions.
/metrics endpoint with 29 metrics for Grafana, Datadog, etc.| Method | Endpoint | Description |
|---|---|---|
POST | /v1/chat/completions | OpenAI Chat Completions API (streaming + non-streaming) |
POST | /v1/completions | OpenAI Completions API |
POST | /v1/responses | OpenAI Responses API |
POST | /v1/messages | Anthropic Messages API (streaming + non-streaming) |
POST | /v1/messages/count_tokens | Anthropic input-token estimator |
POST | /v1/audio/transcriptions | Audio transcription |
GET | /v1/models | List available models |
GET | /v1/models/{id} | Get detail for a specific model |
GET | / or /v1 | Server info (version, status, endpoints) |
GET | /health | Health check (with optional ?metrics=true) |
GET | /metrics | Prometheus metrics |
GET | /ping | Simple liveness check |
GET | /v1/server/config | Read model and server configuration |
POST | /v1/server/config | Update model and server configuration |
Full API docs and examples: docs/api/API.md
.litertlm models are supported (LiteRT runtime limitation). Models are available from the LiteRT Community on HuggingFace. Advanced users can convert HuggingFace models to .litertlm using Google's litert-torch tooling (Linux, 32GB+ RAM required).Product flavors — all installable side-by-side:
| Flavor | Icon | Purpose |
|---|---|---|
stable | Stable release | |
beta | Beta testing | |
dev | Local development |
What happens on your phone stays on your phone. If that matters to you, consider supporting OlliteRT.
Licensed under the Apache License 2.0.
1,202 commits
Kotlin
100.0%