Files
clawdbot/apps/android
Vasanth Rao Naik Sabavat 1318276105 feat(android): add SMS sending capability to Android node
Add sms.send command to allow sending text messages via the paired Android device.

Changes:
- Add SmsManager class to handle SMS sending via Android SmsManager API
- Add ClawdisSmsCommand enum and Sms capability to protocol constants
- Wire sms.send command into NodeRuntime invoke handler
- Add SEND_SMS permission to AndroidManifest.xml
- Advertise sms capability when SEND_SMS permission is granted

The SMS capability is only advertised when the user has granted SEND_SMS
permission. Messages longer than 160 chars are automatically split into
multipart messages.
2026-01-04 13:58:05 +01:00
..
2025-12-18 13:18:33 +01:00

Clawdis Node (Android) (internal)

Modern Android node app: connects to the Gateway-owned bridge (_clawdis-bridge._tcp) over 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

  1. Start the gateway (on your “master” machine):
pnpm clawdis gateway --port 18789 --verbose
  1. In the Android app:
  • Open Settings
  • Either select a discovered bridge under Discovered Bridges, or use Advanced → Manual Bridge (host + port).
  1. Approve pairing (on the gateway machine):
clawdis nodes pending
clawdis nodes approve <requestId>

More details: docs/android/connect.md.

Permissions

  • Discovery:
    • Android 13+ (API 33+): NEARBY_WIFI_DEVICES
    • Android 12 and below: ACCESS_FINE_LOCATION (required for NSD scanning)
  • Foreground service notification (Android 13+): POST_NOTIFICATIONS
  • Camera:
    • CAMERA for camera.snap and camera.clip
    • RECORD_AUDIO for camera.clip when includeAudio=true