Mobile App
Sophon on iOS and Android — chat, voice, workflows, documents, approvals, push notifications, personalized home feed.
Sophon Mobile is a native iOS and Android app built with Expo React Native. It gives you the full platform in your pocket: chat streams, voice mode, workflow runs, document Q&A, approval queues, scheduled-job management, and a personalized home feed powered by Insights.
Installation
- iOS — App Store: "Sophon" by Buildersoft. Requires iOS 16+. Bundle ID:
com.buildersoft.sophon. - Android — Google Play: "Sophon" by Buildersoft. Requires Android 10+. Package:
com.buildersoft.sophon. - Internal/beta builds — available via TestFlight (iOS) and Play Internal Testing (Android) with an invite from your Sophon admin.
First-run onboarding
On first launch:
- Welcome — brief intro.
- Server URL — paste your Gateway URL (e.g.,
https://gw.example.com). The app performs a health check; green checkmark means reachable. - Appearance — pick dark / light / system.
- Login — email + password. If multi-tenant, pick a tenant.
- Notification permission — allow push. If declined, you can enable later in device settings.
- Ready — you're in.
The server URL is stored once; subsequent launches go straight to the tab bar.
The five tabs
The app uses a 5-tab bottom navigator:
Home
- Hero card — greeting, date, streak, token budget
- Daily thought — rotating curated quote
- AI summary — narrative of the last week's activity
- Insight cards — scrollable
- Active tasks — live-updating
- Recent sessions — quick-jump
- On this day — LLM-generated historical reflection
Pull-to-refresh to recompute metrics now (bypasses the 30-min cache).
Chat
Session list with search. Tap a session → streaming chat view with:
- Markdown rendering (bold, links, code blocks, tables)
- Tool-call expansion (tap to see inputs/outputs)
- Plan tracker (if the agent generated a plan)
- Agent-activity bar (live status as the agent thinks)
- Approval cards and info-request cards inline
- File attachment picker
- Voice overlay (tap mic to speak; animated orb indicates listening/thinking/speaking)
Voice
Full-screen voice experience:
- Animated orb reflecting state (idle / listening / thinking / speaking)
- Long-press to talk (push-to-talk) or tap for hands-free mode
- Real-time transcription as you speak
- Response plays through device audio with waveform feedback
- Tap orb to interrupt
Respects your voice provider (ElevenLabs / OpenAI / Google / Azure — see Voice).
Workflows
List of your workflows with last-run status. Tap to see the workflow definition and execution history. Run workflows manually with Trigger Now.
More (Settings & navigation hub)
Menu of everything else:
- Agents — list + detail view, SOUL.md preview
- Channels — which channels are connected
- Skills — installed skills, per-agent toggles
- Memory — browse shared memory entries
- Approvals — pending approval queue
- Cron Jobs — scheduled jobs + history
- Account — profile settings
- Appearance — theme
- Voice — TTS provider + voice selection
- Models — LLM provider keys
- Connections — OAuth + API-key services
- Notifications — push categories + quiet hours
Push notifications
Mobile push is built on Expo's push service, which bridges to APNs (iOS) and FCM (Android). On first launch, the app registers the device with the Gateway and uploads an Expo push token.
Notification categories
| Category | Fires when | Actionable |
|---|---|---|
newMessages | A new chat message arrives | Tap to open session |
approvalRequests | Agent needs approval | Approve / Reject buttons inline (iOS) |
workflowAlerts | Workflow completes or fails | Tap to open run detail |
systemUpdates | New Sophon release, tenant admin notices | Informational |
Toggle each category independently in More → Notifications.
Quiet hours
Set quiet hours (e.g., 22:00–07:00 in your timezone). During quiet hours:
- Critical approvals: auto-rejected
- High approvals: queued
- newMessages / workflowAlerts / systemUpdates: suppressed until quiet hours end
Badge counts still increment — you'll see everything when you open the app the next morning.
iOS actionable notifications
iOS approval pushes have Approve / Reject buttons directly on the lock screen or Notification Center. Tap to respond without opening the app. Android action buttons are supported where the device supports them.
Voice
See Voice for the full story. On mobile:
- STT — Expo Speech Recognition (iOS's native Speech framework / Android's
SpeechRecognizer) - TTS — Gateway-side, streamed sentence by sentence
- Animated orb — React Native Reanimated driven
Mic permission is requested on first voice use. If denied, re-enable in device settings.
Deep links
The app registers the sophon:// URI scheme. Deep links open specific screens:
| URI | Opens |
|---|---|
sophon://chat/<session-id> | A chat session |
sophon://approvals/<id> | An approval detail |
sophon://workflows/<id> | Workflow detail |
sophon://documents/<id> | Document detail |
sophon://connect?onboarding=<ticket> | Remote-access onboarding |
Notifications use deep links to open their relevant screen.
Offline behavior
The app caches session list and recent messages. If the network drops mid-chat, you see a Reconnecting… banner; queued messages send when the connection recovers. Sessions opened while offline show the cached view until reconnect.
Push notifications still arrive offline (Apple/Google deliver them independently of the app).
Biometric auth
Optional. Enable in More → Account → Biometric unlock. Uses Face ID / Touch ID on iOS; fingerprint / face on Android.
When enabled, the app requires biometric confirmation to:
- Launch (if set)
- Approve high-risk actions from push
- View memory / settings
Multi-account
More → Account → Switch account — add a second Gateway (e.g., home + work). Each account stores its own tokens and notification preferences. Switch between them without re-signing in.
Haptics
Subtle haptic feedback on:
- Message send
- Approval approve / reject
- Voice orb state changes
- Pull-to-refresh complete
Disable in More → Appearance → Haptics.
Limits and gotchas
- Expo Go doesn't support push. Push notifications require a production or development build (not the generic Expo Go app).
- Background fetch is limited — iOS especially is strict about background task scheduling. Don't rely on the app running in the background to process long jobs; let the Gateway do that and deliver pushes.
- Voice STT needs a real build — Expo Go doesn't bundle the speech recognition native modules.
- First-login requires internet — the app needs to reach the Gateway for auth. No fully offline mode.
Privacy
- Chat messages, voice transcripts, and attachments all travel directly to your Gateway. No third-party analytics track conversation content.
- Push tokens are stored on the Gateway alongside user preferences. Revoking a device (More → Notifications → Revoke) removes the token.
- Biometric auth happens on-device — Face ID / Touch ID templates never leave the phone.
Where to go next
- Dashboard — same platform on the web
- Desktop App — native macOS / Windows / Linux
- Voice — TTS provider setup
- Approval Gates — how mobile push fits in