One app. All your OpenClaw gateways. Every platform.
A cross-platform Flutter client for OpenClaw — chat with AI agents, manage skills, create custom agents, and connect to multiple OpenClaw gateways from any device, including in the browser.
clawonapp.com • Download • Features • Screenshots • Getting Started • Development • Architecture
| Platform | Download | Notes |
|---|---|---|
| Android | Google Play · clawon-v1.0.1-android.apk | APK also available for direct sideload |
| macOS | clawon-v1.0.1-macos.dmg | Direct download |
| Windows | clawon-v1.0.1-windows.zip | Extract and run |
| Linux | clawon-v1.0.1-linux.tar.gz | Extract and run |
| iOS | App Store | |
| Web | app.clawonapp.com | No installation required |
- Multi-Gateway Management — Connect to and manage multiple OpenClaw gateways
- Real-Time Chat — Streaming AI responses with live text rendering
- Skills Management — Enable or disable AI capabilities per connection
- Agent Creation — Build custom AI agents for different tasks
- Session Management — Organize and browse conversation history
- Offline Access — View message history without an active connection
- Cross-Platform — iOS, Android, macOS, Windows, Linux, and Web (browser)
- Multi-Language — 25 languages with RTL support (English, Spanish, French, German, Chinese, Japanese, Persian, Arabic, Urdu and more)
| Platform | Status |
|---|---|
| Android | ✅ |
| iOS | ✅ |
| macOS | ✅ |
| Windows | ✅ |
| Linux | ✅ |
| Web | ✅ |
| Platform | Build Status |
|---|---|
| Android | |
| iOS | |
| macOS | |
| Windows | |
| Linux | |
| Web |
- Flutter SDK 3.0.6 or later
- A running OpenClaw gateway instance
- Gateway URL and authentication token
flutter pub get
flutter packages pub run build_runner build --delete-conflicting-outputsflutter run- Launch the app — you'll be guided through onboarding
- Go to Connections and tap Add Connection
- Enter your OpenClaw Gateway URL (e.g.,
wss://127.0.0.1:18789) - Enter your authentication token
- Start chatting with your AI agents
ClawOn follows Clean Architecture with three distinct layers:
lib/
├── core/ # Shared components, utilities, error handling
├── data/ # Data sources, repositories, services, models
├── domain/ # Use cases, entities, repository interfaces
└── presentation/ # MobX stores, screens, widgets
MobX stores handle all reactive state:
| Store | Purpose |
|---|---|
ConnectionStore |
WebSocket connection state |
ChatStore |
Message list and sending |
ConnectionsStore |
Multiple connections management |
SkillsStore |
Skills browsing and toggling |
LanguageStore |
Language switching |
After modifying MobX stores or Drift database tables:
flutter packages pub run build_runner build --delete-conflicting-outputsWatch mode for continuous generation:
flutter packages pub run build_runner watch# Run all tests
flutter test
# Run a specific test file
flutter test test/path/to/test_file.dartflutter analyze# Android
flutter build apk --release
# iOS
flutter build ios --release
# macOS
flutter build macos --release
# Windows
flutter build windows --release
# Linux
flutter build linux --release
# Web
flutter build web --releaseDrift requires two binary assets to run in the browser. They are committed to the repo (web/sqlite3.wasm and web/drift_worker.dart.js) so a plain flutter build web works out of the box.
When to regenerate them: after running flutter pub upgrade if the sqlite3 package version changes.
# 1. Check the new sqlite3 version
grep -A7 "^ sqlite3:" pubspec.lock | grep version
# 2. Download matching sqlite3.wasm
curl -L -o web/sqlite3.wasm \
https://github.com/simolus3/sqlite3.dart/releases/download/sqlite3-<VERSION>/sqlite3.wasm
# 3. Recompile the Drift web worker
DRIFT_VERSION=$(grep -A7 "^ drift:" pubspec.lock | grep version | tr -d '" ')
dart compile js -O2 \
~/.pub-cache/hosted/pub.dev/drift-${DRIFT_VERSION##*:}/web/drift_worker.dart \
--packages=.dart_tool/package_config.json \
-o web/drift_worker.dart.js| Package | Purpose |
|---|---|
mobx / flutter_mobx |
Reactive state management |
drift |
SQLite ORM for local storage |
web_socket_channel |
WebSocket communication |
go_router |
Declarative navigation |
get_it |
Dependency injection |
flutter_markdown |
Markdown rendering for agent responses |
shared_preferences |
Key-value storage |
- Verify the gateway URL includes the correct protocol (
wss://for secure,ws://for unsecured) - Ensure the token is valid and has not expired
- Check that the gateway is accessible from your network
If you get errors after modifying stores or database tables, run the code generation command. For persistent build issues:
flutter clean
flutter pub get
flutter packages pub run build_runner build --delete-conflicting-outputsThis project is licensed under the MIT License — see the LICENSE file for details.








