Skip to content

Mobile App

ankurCES edited this page Jun 7, 2026 · 6 revisions

Mobile App (blugo)

blugo is the blumi phone app — a Flutter client that mirrors the TUI, talking to a blumi serve gateway over your LAN. It's built for the Pixel 9 Pro Fold (single-pane in portrait, multi-pane unfolded) but runs on any modern Android device.

Welcome · interactive grid Chat · streaming Control center Command palette
welcome grid diagram chat control command palette

The whole app rides one design system (Living-Rose tokens + a reusable widget kit), so every screen shares a consistent, animated look — gradient wordmarks, accent-bordered chat bubbles, status colors, pressable cards, and reduced-motion-aware transitions.

Welcome screen — your grid at a glance

The welcome screen is an interactive network diagram of your blumi grid (drawn natively, no WebView): this device is the hub at the center, your saved gateways orbit it on gradient spokes, and auto-discovered (mDNS) gateways appear as dashed/dotted nodes with a + badge. A radar sweep animates while it scans the LAN.

  • Tap a saved nodeConnect · Edit · Delete (the forget button sits on the side).
  • Tap a dashed (discovered) node → a connect sheet with the password auto-focused; the name, host, and port are pre-filled from discovery.
  • + Add → add a gateway by IP (host:port).
  • A saved gateway whose token went stale prompts for the password again on connect.

Connect to a gateway

  1. On your machine, start a gateway → Gateway:
    blumi serve pair
    blumi serve install --host <LAN-ip>
  2. Open blugo. Saved + discovered gateways appear as nodes on the welcome diagram — tap a node to connect, or to add one by IP (host:port).
  3. Enter the gateway password. Done — the same session is live in the TUI, web UI, and phone.

You can save multiple gateways by name and switch between them; discovered-but-unsaved ones appear automatically as dashed nodes.

What's inside

  • An interactive grid welcome diagram (above) — connect, edit, forget, or add gateways by tapping nodes.
  • A / command palette (also from the composer) for quick actions: new session, compact, undo, YOLO, control center, speak last reply, switch gateway.
  • Streaming chat with markdown + syntax-highlighted code, tool cards, and the animated thinking mascot.
  • Approval / clarify / plan cards — approve tools (once / session / deny) right from the phone.
  • Sessions — new / resume; transcript auto-refreshes after each turn (+ pull-to-refresh).
  • Control center — model, persona, theme, YOLO, and tabs for Status, Tasks, Grid, Usage, Skills, Memory, and Voice.
  • Grid — delegate a task across your LAN grid right from the phone: pick all peers or one, type a task, and get each machine's result back (hostname + output + latency). It's a direct dispatch, so it works on any model — no tool-calling required. See Grid.
  • Voice — TTS (ElevenLabs / OpenAI) and mic→text (Whisper). See Voice.

Install a build

A signed release APK is produced by flutter build apk --release. Sideload it:

adb install -r build/app/outputs/flutter-apk/app-release.apk

Build it yourself

Prereqs: Flutter 3.44.1 stable, Android SDK + JDK 17 (flutter doctor all green).

cd blugo
flutter pub get
flutter run -d <device>          # debug
flutter build apk --release      # release (signing: see blugo/README.md)

Release signing reads android/key.properties + a keystore (both gitignored). Full steps are in blugo/README.md.

Tips

  • The app and gateway must be on the same LAN/Wi-Fi. If discovery fails, add the gateway by IP and check the gateway is running (blumi serve status).
  • Backgrounding the app and returning reconnects automatically (SSE with Last-Event-ID replay).

Clone this wiki locally