A focused mobile cockpit for monitoring and controlling OpenClaw agents. Native iOS and Android apps with zero social-app dependencies.
Not a chat app. This is a single-purpose work console for developers, DevOps engineers, indie hackers, and trading/infra builders who self-host OpenClaw and want to supervise agents from their phone.
A world where every developer, operator, and builder has a quiet, powerful mobile control plane for their AI agents and infrastructure β free from the noise and distraction of social messaging apps.
Deliver the definitive native mobile console for OpenClaw that lets self-hosting professionals monitor agents, approve dangerous actions with biometric safety, and supervise CI/deployments/trading from their pocket β with zero dependency on Telegram, WhatsApp, Slack, or Discord.
Daily Active Approvers (DAA) β unique users who approve at least one agent action per day. Every feature should move this number up.
| Feature | Description |
|---|---|
| Gateway Connection | Connect to one or more OpenClaw instances with secure token auth |
| Agent Dashboard | See all your agents, their status, and active workloads |
| Task Feed | Track agent tasks (CI runs, deployments, trading jobs) with live timelines |
| Incidents | Aggregated alerts across all agents β CI failures, prod errors, trading anomalies |
| Safe Approvals | Approve dangerous actions (deploys, shell commands, config changes) with biometric verification |
| Minimal Chat | Send quick instructions to agents, attached to tasks |
- Solo dev-founders / indie hackers who run OpenClaw on a VPS to automate GitHub, deployments, and SaaS ops
- DevOps / SREs who use OpenClaw to watch CI, logs, and uptime β and need a mobile console for incidents
- Quant / trading automation builders who run agents monitoring markets and want approval UIs for strategy changes
- Small AI / data teams with OpenClaw wired into GitHub + analytics + internal APIs
βββββββββββββββββββ WSS/HTTPS ββββββββββββββββββββββββ
β iOS App βββββββββββββββββββββΊβ β
β (SwiftUI) β β OpenClaw Gateway β
βββββββββββββββββββ β (Node.js/TS) β
β β
βββββββββββββββββββ WSS/HTTPS β ββββββββββββββββββ β
β Android App βββββββββββββββββββββΊβ β CI Monitor β β
β (Compose) β β β Incident Mgr β β
βββββββββββββββββββ β β Approval Gate β β
β β Trading Mon. β β
β β Task Manager β β
β ββββββββββββββββββ β
ββββββββββββββββββββββββ
β
βΌ
Your infra: GitHub,
CI/CD, trading APIs,
servers, databases
The mobile apps are thin clients. All intelligence lives in OpenClaw skills on your server. The apps connect via WebSocket for real-time updates and HTTPS for REST calls.
See docs/architecture.md for the full protocol spec and message contracts.
openclaw-console/
βββ ios/ # iOS app (Swift 6 / SwiftUI)
β βββ OpenClawConsole/
β βββ Sources/
β β βββ Models/ # Data models (Codable)
β β βββ Services/ # Keychain, WebSocket, API, Biometric
β β βββ ViewModels/ # @Observable view models
β β βββ Views/ # SwiftUI views
β βββ fastlane/ # iOS store metadata & delivery
βββ android/ # Android app (Kotlin / Compose)
β βββ app/src/main/java/com/openclaw/console/
β βββ data/ # Models, network, repositories
β βββ service/ # Secure storage, biometric
β βββ ui/ # Compose screens, theme, nav
β βββ fastlane/ # Android store metadata & delivery
βββ openclaw-skills/ # Server-side TypeScript skills gateway
β βββ src/
β β βββ gateway/ # Express + WebSocket server
β β βββ skills/ # CI, incidents, approvals, trading
β β βββ types/ # Shared TypeScript types
β βββ tests/ # Jest tests
βββ marketing/ # Store growth, keywords, campaigns
βββ scripts/ # Build, release, and CI scripts
βββ docs/ # Architecture, protocol, setup guides
βββ .github/workflows/ # CI/CD for iOS, Android, skills, store
βββ .claude/ # Claude Code rules, skills, hooks
- Xcode 15+ (iOS)
- JDK 17 + Android Studio (Android)
- Node.js 20+ (skills gateway)
cd openclaw-skills
npm install
npm run dev
# Gateway starts on http://localhost:18789cd ios/OpenClawConsole
open OpenClawConsole.xcodeproj
# Or CLI:
xcodebuild build -scheme OpenClawConsole \
-destination 'platform=iOS Simulator,name=iPhone 16'cd android
./gradlew assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apkIn either app: Settings -> Add Gateway -> enter your gateway URL and token.
make setup-dev # Install tools and dependencies
make verify # Run all tests + builds
make run-ios-sim # Launch on iOS Simulator
make run-android-emulator # Launch on Android emulator
make maestro-ios # Run Maestro E2E tests (iOS)
make maestro-android # Run Maestro E2E tests (Android)
make clean-all # Clean all build artifacts# Dev token printed to console on first run
# Production: generate a new token
curl -X POST http://localhost:18789/api/tokens/generate \
-H "Authorization: Bearer <ADMIN_TOKEN>"| Variable | Default | Description |
|---|---|---|
PORT |
18789 |
Gateway HTTP/WS port |
HOST |
0.0.0.0 |
Bind address |
TOKEN_FILE |
./tokens.json |
Path to token store |
APPROVAL_TIMEOUT_MS |
300000 |
Approval expiry (5 min) |
WS_PING_INTERVAL_MS |
30000 |
WebSocket ping interval |
- All connections use TLS (HTTPS/WSS) in production
- Tokens stored securely: iOS Keychain / Android EncryptedSharedPreferences
- Approval flow requires biometric (Face ID / fingerprint) verification
- HTTP connections show a warning and require explicit opt-in
- Designed for VPN use β configure your gateway behind Tailscale/WireGuard
See SECURITY.md for vulnerability reporting.
| Component | Technology |
|---|---|
| iOS | Swift 6, SwiftUI, iOS 17+, URLSessionWebSocketTask |
| Android | Kotlin 2.x, Jetpack Compose, Material 3, Hilt, OkHttp WebSocket |
| Server | TypeScript, Node.js 20, Express, ws library |
| CI/CD | GitHub Actions (Xcode, Gradle, Node), Fastlane |
| E2E | Maestro |
See CONTRIBUTING.md for guidelines.
See PRIVACY_POLICY.md.
MIT β see LICENSE.