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 · v1.3.9 · 한국어 · 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.
Only the .apk file installs Tellama. GitHub's “Source code (zip/tar.gz)” downloads contain this public website/SDK repository, not the Android installer or private app source. You do not need them. The APK checksum is in the release notes.
v1.3.9: Separate installed/download model views, a qualified TM Qwen3 4B Q4_K_M distribution, explicit DEEP-mode consent, clearer serving/thermal errors and empty-response recovery. Includes Runtime 2.0 and resumable verified updates. About 148 MB; the 2.59 GB chat model is downloaded separately. Release notes.
TM qualification applies to the exact file on Galaxy Z Fold6, CPU / DEEP / 4,096 context / F16 KV: 54/55 checks, all critical checks passed. One Korean JSON city-name translation remains; some answers take over two minutes. This model is not qualified in FAST, GPU or on every phone. Model, license and evidence. Existing installed models are retained even if no longer recommended.
Updating from 1.3.7 or earlier: The old updater can restart from zero if Android stops a long-running download (observed after 30 minutes on Android 16). If this happens, download the latest release APK in your browser and install it over Tellama. Do not uninstall the app. The resume fix takes effect after installing 1.3.8; it cannot change code already installed in an older app.
Existing users can open Tellama to receive an update reminder, or use Settings → App updates. Checks are rate-limited, so a reminder may not appear immediately. Downloaded APKs are verified before Android asks you to approve installation; existing models, conversations, and memories are retained. This is an in-app reminder, not a push notification or a silent install.
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 v1.3.9 APK directly.
- 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.



