LocalRock v1.0.0 — the first stable release.
LocalRock is a Kotlin / Compose Multiplatform app (Android + iOS) that controls Roborock vacuums entirely on your local network, talking to a self-hosted local_roborock_server instead of Roborock's cloud.
Highlights
- Local-only by design — no Roborock cloud, no account, no analytics, no remote logging. The app talks only to your server.
- Live map — real-time robot map with zoom/pan, room labels, and tap-to-select rooms.
- Full cleaning control — start / pause / stop / dock, plus spot & zone cleaning.
- Room & segment cleaning — clean specific rooms by their real names from your home data.
- Pin-and-go — send the robot to a point on the map.
- Remote control — manually drive the vacuum.
- Cleaning modes — fan power, water/mop level, mop route, and repeat count.
- Status & consumables — battery, state, cleaning stats, filter/brush life, plus cleaning history.
- On-phone onboarding — provision a brand-new vacuum over Wi-Fi from the app (Android).
- Light / dark / system theme.
Platform status
| Feature | Android | iOS |
|---|---|---|
| Core control, map, rooms | Yes | Yes |
| MQTT over TLS | Yes | Yes |
| RSA onboarding crypto | Yes | Yes |
| Phone Wi-Fi pairing (Add vacuum) | Yes | Not yet |
| Camera live view (WebRTC) | Untested | Untested |
Note: Camera live view is implemented from the protocol reference but has not been verified on real camera-equipped hardware — treat it as experimental. The firmware update check only works if your server implements the OTA proxy.
Requirements
- A running
local_roborock_serverreachable over HTTPS, with your vacuum(s) imported. - Its TLS certificate trusted on your device (install the CA if self-signed).
- Android 7.0 (API 24) or newer. iOS builds require macOS + Xcode.
See the README for setup and troubleshooting.
Not affiliated with, endorsed by, or sponsored by Roborock. Released under the MIT License.