
Memo is built on a single conviction: you should own your AI, your data, and your hardware. No cloud dependency, no telemetry, no vendor lock-in. Everything runs on your machine by default.
Every conversation, every memory vector, every model stays on your device. Memo does not phone home. There is no analytics SDK, no crash reporter, no usage tracking. The only network calls are ones you explicitly authorize — fetching a model from HuggingFace, calling an external provider API, or syncing encrypted backups to Google Drive.
The backend runs as a single Go binary embedding SQLite, llama.cpp, and a vector search engine. No Docker, no Kubernetes, no external database. Start the app and everything is live at localhost:8090. The desktop and mobile frontends connect over local HTTP/SSE.
┌─────────────────┐ ┌──────────────────────────────────┐
│ Flutter UI │────▶│ Go Backend (localhost:8090) │
│ Desktop/Mobile │◀────│ • HTTP REST + SSE Streaming │
└─────────────────┘ │ • SQLite + sqlite-vec │
│ • llama.cpp Inference Engine │
│ • Provider Router (7 APIs) │
│ • Agent Sandbox + Orchestra │
└──────────────────────────────────┘
Your chat history is stored as local JSON files. Your vector memory lives in a SQLite database in your home directory. You can export, delete, or move it anytime. Models are downloaded to a local directory you control. No account, no registration, no "sign in to continue."
Running locally means zero network latency for inference. Vector search uses an in-memory ANN index over SQLite tables. Token streaming starts in under 100ms. GPU offloading (NVIDIA CUDA, AMD ROCm, Apple Metal) is configured automatically on first launch.
Cloud features are opt-in, not opt-out. When you choose to enable:
Cloud Sync: Conversation backups are encrypted with AES-256-GCM before upload to Google Drive. The encryption key (machine.key) never leaves your device.
External Providers: API keys are stored locally. Provider calls route through your machine. No proxy, no intermediary.
WhatsApp Bridge: Messages are bridged through your local instance using whatsmeow. Your WhatsApp credentials stay on your device.
Remote Access: Use Tailscale, ngrok, or LAN to access Memo from your phone. Your server, your rules.
Memo uses open formats (SQLite, JSON) and open models (GGUF). Uninstall Memo and your data is still readable. Switch models anytime. Export your vector memory as raw embeddings. The codebase is AGPL v3 — fork it, audit it, own it.
Memo does not and will never collect usage data. The only bytes that leave your machine are the ones you explicitly send — to a model provider of your choice, or to your own encrypted backup.