Engram
LOCAL AI PLATFORM FOR ANDROID — ON-DEVICE LLM · LONG-TERM MEMORY · MINI-APPS
Local sovereignty, full privacy. An Android platform where the AI engine — a LiteRT-LM model quantized to 4 bits — runs entirely on the phone. A personal assistant with personas and a real long-term memory, and a family of mini-apps that share the same brain over a local HTTP API.
> Highlights
- 100% on-device LLM — LiteRT-LM engine, GPU-accelerated, with text / vision / audio depending on the model. Nothing leaves the phone by default.
- Long-term semantic memory — memories are embedded and searched by meaning, with previews + full-text retrieval, tag search, time search and plain text search.
- Memories with photos — a photo with its EXIF date and GPS as separate metadata; in chat, the engine displays only the best-matching memory’s image.
- Personas & identity — gender, assistant name, editable personas with AI-generated intros. First-person system prompts.
- Agent with tools — memory_search/get/tag_list/time_search/add/update/delete, web_search, web_fetch, get_datetime — in a real tool loop.
- Overflow-proof context — preventive KV-cache rebuilds and a silent emergency trim + retry; the chat never crashes on long conversations.
- Cloud models, opt-in — add any OpenAI-compatible endpoint (DeepSeek, Groq, Mistral, OpenRouter, Ollama…) from the settings; the UI warns that messages leave the device.
> The App Suite
| App | Role |
|---|---|
| Engram | Launcher, chat assistant, settings, personas, model manager |
| Memory | Standalone memory manager: 4 search modes, tag editing, AI auto-tagging, photos |
| Vision | Photo description with custom actions, memorization with EXIF + AI tags |
| Voice | Voice commands and skills, speech-to-text and TTS |
| Summarizer | Share-to summarize: any text from any app |
> Architecture
┌───────────────────────────────────────────────────────────────┐
│ Mini-apps (separate APKs) Master app (com.engram.app)│
│ Vision · Voice · Summarizer Chat · Launcher · Memory │
│ │ HTTP (127.0.0.1) │ │
└────────┼────────────────────────────────────┼──────────────────┘
▼ ▼
┌───────────────────────────────────────────────────────────────┐
│ EngramService (foreground) — core module │
│ NanoHTTPD API :8081 · Streaming SSE server :8082 │
│ AgentEngine (tool loop, memory rules, personas) │
│ LlmBackend — LlmEngine (LiteRT-LM) or CloudLlmEngine (API) │
│ EmbeddingEngine (EmbeddingGemma) · SQLite vector store │
└───────────────────────────────────────────────────────────────┘
The engine exposes a full HTTP API on the device
(/health, /store, /memory_query,
/agent_chat, /auto_tags, …) — any app, or any external
client on the same device, can talk to the brain.
> Source & Documentation
- [ repository — git.nunki.org/nunki/engram ]
- [ README ]
- [ architecture notes ]
- [ API reference ]
- [ testing guide ]
Models are not bundled: pick a LiteRT-LM model (Gemma-family, 4-bit) from HuggingFace and add it in Settings → LLM Models — or register a cloud endpoint.