
A thin Flutter client for Android and iOS that connects to Memo running on your desktop. The mobile app is a remote interface — all AI processing stays on your desktop.
Phone (Flutter) ── HTTP/SSE ──→ Desktop Memo (Go backend)
LAN or tunnel
The mobile app communicates with the desktop backend via HTTP/JSON and SSE streaming. No AI models run on the phone.
Connect your phone and desktop to the same Wi-Fi network. Use the Scan button in the mobile app to auto-discover your desktop's IP — it scans all local subnet addresses in parallel. Works with 192.168.x.x, 10.x.x.x, and 172.16-31.x.x ranges.
Start a tunnel from Desktop Settings → Remote Access. Get a public URL accessible from anywhere. One-click setup with your ngrok auth token.
Memo includes an embedded tsnet tunnel — no separate Tailscale binary needed. Memo joins your tailnet directly and provides a stable private URL. Supports Tailscale Funnel for public internet access with automatic TLS certificates.
Set an access token in Settings → Remote Access → Token. The mobile app must provide this token in the Authorization header for every request.
Messages stream in real-time via SSE, just like the desktop experience. Provider logos and model names appear in the engine strip.
Switch the active AI provider (OpenAI, Gemini, local llama, etc.) from the mobile app.
Start and stop local models (llama.cpp) from the mobile app.
View the monthly grid with event dots. Tap a day to see events. Add events manually. Long-press to delete. Reminders push to the phone before events start.
0.0.0.0)