Codex Remote is a Flutter mobile client for connecting to a remote Codex app-server from Android or iOS.
It is designed for running Codex away from your workstation while still being able to:
- read and reply in active threads
- review approvals, command output, file changes, and tool activity
- switch model, reasoning effort, approval policy, and sandbox mode
- connect directly over WebSocket or through a relay bridge
- pair relay devices from a pairing code or QR code
- manage thread-scoped downloads and automations
- Direct mode with configurable WebSocket URL and optional bearer-token authentication
- Relay mode with device pairing and end-to-end encrypted session setup
- Thread list, resume support, and compact mobile-first conversation UI
- Command execution output and approval handling
- Download support for changed files and generated artifacts
- Automation workflows for file watching, downloads, and APK install flows
- Android foreground transport support for keeping the connection alive
- Flutter
3.35.xor newer - Dart
3.10.xor newer - Android Studio / Xcode for platform builds
- A reachable Codex app-server or relay deployment
flutter pub get
flutter runOn first launch, open Settings and choose one of the supported connection modes:
- Set
Connection modetodirect. - Enter the remote WebSocket endpoint, for example
ws://192.168.1.20:8080. - Optionally provide a bearer token if the app-server requires Authorization during the handshake.
- Set
Connection modetorelay. - Enter the relay base URL.
- Paste a pairing code from
codex-remote-cli, or scan the QR code shown by the bridge. - Save settings and connect.
Run static analysis and widget tests:
flutter analyze
flutter testThe repository also contains an app-server smoke test in test/app_server_protocol_smoke_test.dart. It is opt-in and expects a local app-server listening on ws://127.0.0.1:5000.
CODEX_REMOTE_RUN_APP_SERVER_SMOKE=1 flutter test test/app_server_protocol_smoke_test.dartlib/Flutter app sourcetest/widget and protocol teststool/generate_release_assets.darticon and splash asset generatorapp_server_schema/JSON schema snapshots used by the client
- Do not commit relay private keys, bearer tokens, or local platform signing material.
- Android signing keys,
android/local.properties, generated build output, and Flutter ephemeral files are intentionally excluded from version control. - If you discover a security issue, follow
SECURITY.md.
This project is released under the MIT License. See LICENSE.