Turn your Android phone into a private, Ollama-compatible AI server.
Run GGUF models on-device. Chat locally. Connect your PC, scripts, and agents through a small authenticated API.
Download the Android APK · 한국어 · API reference · Open SDK · Privacy
Workspace · Local chat · Model library · Private API server
Tellama is more than another chat screen. It turns hardware you already own into a reusable local AI endpoint:
- Private by default: compatible GGUF models, chats, and long-term memory stay on your device.
- Useful beyond the phone: trusted computers and agents can call Ollama- and OpenAI-compatible routes over your Wi-Fi.
- Built for real devices: model guidance, measured memory and thermal status, resumable downloads, and safe model unloading protect limited mobile resources.
- Lightweight research agent: summarize or compare public HTTPS pages with persistent sources, then choose whether the result belongs in long-term memory.
Mac / PC / Agent ── Ollama or OpenAI API ──▶ Android phone ──▶ Local GGUF model
The Android app is commercially licensed and its complete source remains private. The working Python and JavaScript clients, examples, and compatibility tests in sdk/ are open source under Apache-2.0.
Upgrading from v1.2.0 on Android 10: install a signed v1.2.1-or-later APK manually once from the release page. Android retains your Tellama data and models. In-app updates initiated by v1.2.1 and later use the physically qualified update path.
- Install the latest APK.
- In Models, download and select a model that fits the phone.
- In Server, create an API key, choose Wi-Fi LAN, and start the server.
- Export the values shown by Tellama:
export TELLAMA_URL="http://PHONE_IP:11434"
export TELLAMA_API_KEY="tlm_..."List the exact model IDs installed on the phone:
curl "$TELLAMA_URL/api/tags" \
-H "Authorization: Bearer $TELLAMA_API_KEY"Call the Ollama-compatible streaming chat route:
curl "$TELLAMA_URL/api/chat" \
-H "Authorization: Bearer $TELLAMA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_ID_FROM_API_TAGS",
"messages": [{"role": "user", "content": "Hello from my Mac"}]
}'The response is newline-delimited JSON. OpenAI-style streaming is available at POST /v1/chat/completions using SSE. See the API compatibility reference for the exact supported routes and current limitations.
No cloud account or package registry is required.
# Python 3.10+, standard library only
TELLAMA_URL="$TELLAMA_URL" TELLAMA_API_KEY="$TELLAMA_API_KEY" \
python3 sdk/python/example.py
# JavaScript, Node.js 18+
TELLAMA_URL="$TELLAMA_URL" TELLAMA_API_KEY="$TELLAMA_API_KEY" \
node sdk/javascript/example.mjsThe clients support model discovery, bounded generation options, Ollama NDJSON chat streaming, OpenAI SSE chat streaming, timeouts, and structured HTTP or stream errors. Run their contract suite with:
sdk/tests/run.sh- Phone-aware GGUF model catalog, import, selection, deletion, and per-model generation controls
- Resumable large-model downloads with storage reserve, trusted mirrors, SHA-256 checks, and GGUF validation
- Safe loaded-model deletion that stops active serving, unloads native memory, and then reclaims storage
- Memory-aware model replacement that unloads the resident runtime before recalculating available RAM, reports selected/loading/ready states truthfully, and rolls back both selection and runtime after a failed load
- Local streaming chat with timestamps, slash commands, voice input, and user-controlled long-term memory
- User-initiated HTTPS page summaries and comparisons with persistent sources and explicit approval before saving a result to memory
- Workspace dashboard for serving readiness, measured chat speed, RAM, storage, battery, and thermal guidance
- Authenticated Wi-Fi LAN serving with one-time API keys, permission scopes, rate limiting, foreground status, and automatic stop on Wi-Fi loss
- Non-blocking startup update reminders plus in-app download with SHA-256, package, version, and signing-certificate verification
- Grouped commercial-grade settings with an app-wide, persistent 85%–130% text-size control
- Hardened generation, model preflight, encrypted-data recovery, downloads, memory consent, and API reliability for friend testing
- 15-language resources with TalkBack, large-text, landscape, tablet-width, and RTL layout support
- LAN mode is off until the user starts it.
- LAN requests require
Authorization: Bearer <key>. - Full API keys are displayed once; Tellama stores their SHA-256 hashes.
- Changing or losing Wi-Fi automatically stops the LAN server.
- Do not expose port
11434to the public internet or forward it from a router. - External API models have different privacy and billing conditions from Tellama's local server.
- Web research makes direct HTTPS requests to the URLs you provide. Page text stays on the device when a local model is selected; with an external API model, that text is sent to the configured provider after an in-app warning.
Report security issues through SECURITY.md. Feature requests and SDK contributions are welcome; see CONTRIBUTING.md and the roadmap.
- Tellama Android application and brand assets: proprietary, all rights reserved.
- Public SDK, examples, and compatibility tests under
sdk/: Apache License 2.0. - Downloaded models: governed by each model publisher's license.
This repository intentionally does not contain the Tellama Android application source, native runtime implementation, signing material, or internal configuration.



