1. Menu now brighter (0xFF3A3A4A) for better contrast 2. Orb on main page always visible (static when off, pulsing when on) 3. Implemented camera capture (saves to MediaStore, loads as attachment) 4. Implemented file picker (any file type) 5. Attachment type auto-detected (image vs file) based on MIME |
||
|---|---|---|
| .. | ||
| app | ||
| gradle/wrapper | ||
| .gitignore | ||
| ASSISTANT-APP-PLAN.md | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| README.md | ||
| settings.gradle.kts | ||
Clawdbot Node (Android) (internal)
Modern Android node app: connects to the Gateway WebSocket (_clawdbot-gw._tcp) and exposes Canvas + Chat + Camera.
Notes:
- The node keeps the connection alive via a foreground service (persistent notification with a Disconnect action).
- Chat always uses the shared session key
main(same session across iOS/macOS/WebChat/Android). - Supports modern Android only (
minSdk 31, Kotlin + Jetpack Compose).
Open in Android Studio
- Open the folder
apps/android.
Build / Run
cd apps/android
./gradlew :app:assembleDebug
./gradlew :app:installDebug
./gradlew :app:testDebugUnitTest
gradlew auto-detects the Android SDK at ~/Library/Android/sdk (macOS default) if ANDROID_SDK_ROOT / ANDROID_HOME are unset.
Connect / Pair
- Start the gateway (on your “master” machine):
pnpm clawdbot gateway --port 18789 --verbose
- In the Android app:
- Open Settings
- Either select a discovered gateway under Discovered Gateways, or use Advanced → Manual Gateway (host + port).
- Approve pairing (on the gateway machine):
clawdbot nodes pending
clawdbot nodes approve <requestId>
More details: docs/platforms/android.md.
Permissions
- Discovery:
- Android 13+ (
API 33+):NEARBY_WIFI_DEVICES - Android 12 and below:
ACCESS_FINE_LOCATION(required for NSD scanning)
- Android 13+ (
- Foreground service notification (Android 13+):
POST_NOTIFICATIONS - Camera:
CAMERAforcamera.snapandcamera.clipRECORD_AUDIOforcamera.clipwhenincludeAudio=true