The Termopus mobile app is a purpose-built native interface for Claude Code. It renders every action Claude takes in real time — code diffs, file edits, terminal output, and error logs — in a scrollable conversation thread with full syntax highlighting.
All cryptography runs in native Swift (iOS) and Kotlin (Android). The Dart UI layer never touches encryption keys.
- WhatsApp-style conversation thread showing Claude's output as it happens
- Syntax-highlighted code blocks, inline diffs, collapsible tool-use cards
- Interactive action buttons: Allow, Deny, Edit, Always Allow
- Active agent indicators and task progress tracking
- Every approval gated behind biometric authentication (Face ID / Fingerprint)
- Smart "Always Allow" — learns patterns and auto-writes permission rules
AskUserQuestionintercepted and rendered as interactive cards on phone
- Line-by-line file change inspection before execution
- Color-coded additions, deletions, and modifications
- Collapsible diff viewer with full syntax highlighting
- Pair with work laptop, home desktop, and cloud VMs simultaneously
- Each session independently encrypted with hardware-backed keys
- Project-grouped session picker — tap to switch, swipe to delete
- Silent FCM push when Claude waits for input
- Notification includes request context for quick triage
- Auto-wake and reconnect on tap
- 5 breakpoints covering phones through tablets
- Adaptive typography, spacing, and icon sizing
- Terminal mode toggle — chat bubbles or terminal-style feed
┌─────────────────────────────────────────────────┐
│ Flutter (Dart) │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ Chat UI │ │ Sessions │ │ Settings │ │
│ │ Diffs │ │ Pairing │ │ Model + Perms │ │
│ │ Actions │ │ Resume │ │ Rules + Controls │ │
│ └────┬─────┘ └────┬─────┘ └────────┬─────────┘ │
│ └─────────────┼────────────────┘ │
│ MethodChannel │
├─────────────────────┼───────────────────────────┤
│ Native Security Layer │
│ ┌──────────────────┼──────────────────────────┐ │
│ │ Swift (iOS) │ Kotlin (Android) │ │
│ │ Secure Enclave │ StrongBox │ │
│ │ AES-256-GCM │ AES-256-GCM │ │
│ │ ECDH + X25519 │ ECDH + X25519 │ │
│ │ App Attest │ Play Integrity │ │
│ │ Face ID │ BiometricPrompt │ │
│ └──────────────────┴──────────────────────────┘ │
└─────────────────────────────────────────────────┘
| Provider | Purpose |
|---|---|
ChatProvider |
Message stream, tool cards, diffs |
ConnectionProvider |
Relay status, reconnect logic |
SessionProvider |
Session list, resume, multi-computer |
AuthProvider |
Biometric state, lock screen |
ClaudeConfigProvider |
Model + permission mode sync |
ExtensionsProvider |
Plugins, skills, rules from filesystem |
| Layer | Technology |
|---|---|
| UI Framework | Flutter 3.x (Dart) |
| iOS Native | Swift · Secure Enclave · URLSession WebSocket |
| Android Native | Kotlin · StrongBox · OkHttp WebSocket |
| State | Riverpod StateNotifierProvider |
| Models | Freezed + json_serializable |
| Routing | GoRouter with named routes |
| Theme | Single dark theme, responsive breakpoints |
