MemoDocumentation
EN

Mobile Companion App

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.

Architecture

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.

Connection Methods

LAN (Local Network)

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.

ngrok Tunnel

Start a tunnel from Desktop Settings → Remote Access. Get a public URL accessible from anywhere. One-click setup with your ngrok auth token.

Tailscale Tunnel (Embedded)

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.

Authentication

Set an access token in Settings → Remote Access → Token. The mobile app must provide this token in the Authorization header for every request.

Features

Streaming Chat

Messages stream in real-time via SSE, just like the desktop experience. Provider logos and model names appear in the engine strip.

Session Management

  • View all chat sessions
  • Switch between sessions
  • Create new sessions

Provider Toggle

Switch the active AI provider (OpenAI, Gemini, local llama, etc.) from the mobile app.

Model Start/Stop

Start and stop local models (llama.cpp) from the mobile app.

Calendar Tab

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.

Setup

Prerequisites

  • Memo desktop app running (v3.1.0+)
  • Flutter 3.10+ (for building from source)
  • Android Studio or Xcode (for platform builds)

Connection

  1. Launch Memo on your desktop
  2. Go to Settings → Remote Access → Enable LAN access (bind to 0.0.0.0)
  3. Optionally set an access token
  4. Launch the mobile app
  5. Enter your desktop's IP:port (or use LAN Scan)
  6. Enter the access token if configured
  7. Start chatting