A mobile client for Claude Code. Monitor and interact with your AI coding sessions from your phone.
- Real-time session sync - See what Claude is doing as it happens, via WebSocket
- End-to-end encryption - All session data encrypted with tweetnacl (NaCl)
- Approve/deny from your phone - Handle tool permission requests without touching your laptop
- iOS Live Activities - Session progress on your lock screen (iOS 16.2+)
- Git operations - Commit, push, pull from mobile
- QR code auth - Scan to pair with your desktop session
- 6 languages - English, Russian, Polish, Spanish, Portuguese, Catalan
Runs on iOS, Android, and macOS (Catalyst).
git clone https://github.com/Cerulin/Chell-MobileApp.git
cd Chell-MobileApp
yarn installCopy .env.example to .env and fill in your values:
EXPO_PUBLIC_AUTH0_DOMAIN=your-auth0-domain
EXPO_PUBLIC_AUTH0_CLIENT_ID=your-client-id
EXPO_PUBLIC_HAPPY_SERVER_URL=https://your-server.comThen run:
yarn ios # iOS Simulator
yarn android # Android Emulatorsources/
app/ Screens (Expo Router, file-based routing)
components/ Reusable UI components
sync/ Real-time sync engine (WebSocket + encryption)
auth/ Authentication (QR code + Auth0)
text/ Internationalization
modal/ Modal system
hooks/ Custom React hooks
yarn start # Expo dev server
yarn typecheck # TypeScript checks (run after changes)
yarn test # Run tests
yarn ota # Deploy OTA updateKey conventions:
- Use
@/*path aliases (maps to./sources/*) - Use
t()from@/textfor all user-facing strings - Use
StyleSheetfromreact-native-unistyles, not React Native's - Use
Modalfrom@/modal, not React Native'sAlert - Native iOS/Android modifications go through patch files in
patches/
See CLAUDE.md for the full set of conventions.
PRs welcome. Before submitting:
- Run
yarn typecheck - Ensure all user-facing strings use
t()with translations in all 6 language files - Test on at least one platform
See CONTRIBUTING.md for details.
See LICENSE.