zeroclaw/clients/android
Preventnetworkhacking ec22b33de6 fix(android): correct CI action name and settings recomposition
- Fix dtolnay/rust-action -> dtolnay/rust-toolchain
- Remove unnecessary remember{} wrapper for battery check
2026-02-26 21:29:43 -08:00
..
app fix(android): correct CI action name and settings recomposition 2026-02-26 21:29:43 -08:00
gradle/wrapper feat(android): add Android client foundation 2026-02-26 20:52:43 -08:00
build.gradle.kts feat(android): add Android client foundation 2026-02-26 20:52:43 -08:00
ci-android.yml fix(android): correct CI action name and settings recomposition 2026-02-26 21:29:43 -08:00
gradle.properties feat(android): add Android client foundation 2026-02-26 20:52:43 -08:00
README.md feat(android): Phase 3 - WorkManager, tiles, battery optimization 2026-02-26 21:20:04 -08:00
settings.gradle.kts feat(android): add Android client foundation 2026-02-26 20:52:43 -08:00

ZeroClaw Android Client 🦀📱

Native Android client for ZeroClaw - run your autonomous AI assistant on Android.

Features

  • 🚀 Native Performance - Kotlin/Jetpack Compose, not a webview
  • 🔋 Battery Efficient - WorkManager, Doze-aware, minimal wake locks
  • 🔐 Security First - Android Keystore for secrets, sandboxed execution
  • 🦀 ZeroClaw Core - Full Rust binary via UniFFI/JNI
  • 🎨 Material You - Dynamic theming, modern Android UX

Requirements

  • Android 8.0+ (API 26+)
  • ~50MB storage
  • ARM64 (arm64-v8a) or ARMv7 (armeabi-v7a)

Building

Prerequisites

# Install Rust Android targets
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android

# Install cargo-ndk
cargo install cargo-ndk

# Android SDK (via Android Studio or sdkman)
# NDK r25+ required

Build APK

cd clients/android
./gradlew assembleDebug

Build with Rust

# Build native library first
cargo ndk -t arm64-v8a -o app/src/main/jniLibs build --release

# Then build APK
./gradlew assembleRelease

Architecture

┌─────────────────────────────────────┐
│  UI (Jetpack Compose)               │
├─────────────────────────────────────┤
│  Service Layer (Kotlin)             │
│  ├─ ZeroClawService                 │
│  ├─ NotificationHandler             │
│  └─ WorkManager Jobs                │
├─────────────────────────────────────┤
│  Bridge (UniFFI)                    │
├─────────────────────────────────────┤
│  Native (libzeroclaw.so)            │
└─────────────────────────────────────┘

Status

Phase 1: Foundation (Complete)

  • Project setup (Kotlin/Compose/Gradle)
  • Basic JNI bridge stub
  • Foreground service
  • Notification channels
  • Boot receiver

Phase 2: Core Features (Complete)

  • UniFFI bridge crate
  • Settings UI (provider/model/API key)
  • Chat UI scaffold
  • Theme system (Material 3)

Phase 3: Integration (Complete)

  • WorkManager for cron/heartbeat
  • DataStore + encrypted preferences
  • Quick Settings tile
  • Share intent handling
  • Battery optimization helpers
  • CI workflow for Android builds

🚧 Phase 4: Polish (Next)

  • Cargo NDK CI integration
  • Native library loading
  • Widget support
  • Accessibility improvements

Contributing

See the RFC in issue discussions for design decisions.

License

Same as ZeroClaw (MIT/Apache-2.0)