Skip to content

Mobile App

The mobile app is a React Native application built with Expo, designed as an iOS voice assistant. It connects to the relay server over WebSocket and provides a native voice conversation experience.

  • Voice conversations — real-time voice I/O using the system audio route
  • Conversation history — local SQLite storage with searchable transcripts
  • Conversation continuity — prior messages injected as context when resuming
  • Tab navigation — Chat, History, and Settings
  • Brain agent integration — tool progress displayed in the UI
  • Barge-in support — interrupt the AI mid-response by speaking
  • Expo 55 — build and development framework
  • React Native 0.83 — cross-platform UI
  • Expo Router — file-based routing
  • NativeWind 4 (Tailwind CSS) — styling
  • expo-sqlite — local conversation storage
  • React Native Reanimated 4 — animations
  • lucide-react-native — icons
  • react-native-sse — server-sent events support
Terminal window
cd mobile
yarn install
yarn dev # start Expo dev server (clears cache)
ScriptDescription
yarn devStart Expo dev server with cache clear
yarn iosRun on iOS simulator (development build)
yarn ios:deviceRun on connected iOS device
yarn ios:releaseRelease build on device
yarn androidStart for Android
yarn webStart for web
yarn cleanRemove .expo, node_modules, ios, android
  • A development build (APP_VARIANT=development) is used during development for faster iteration
  • The app requires microphone permission on first launch
  • EAS Build can be used for CI/CD (see eas.json for build profiles)

The project supports multiple build variants:

  • development — used during local development (APP_VARIANT=development)
  • staging — for internal testing
  • production — for App Store release

Each variant can have its own app icon, bundle identifier, and configuration (see app.config.ts).

mobile/
app/
(tabs)/
_layout.tsx # Tab navigator layout
index.tsx # Chat page (main voice interface)
history.tsx # Conversation history
settings.tsx # Settings page
_layout.tsx # Root layout
assets/ # Images, fonts, icons
lib/ # Shared utilities
plugins/ # Expo config plugins