0xreversed/with.ai
APIs and protocolsWorksSource available
Target: Roborock vacuum cloud

Built a self-hosted Roborock cloud so vacuums run locally, with Claude Code and Codex finding the way in

Roborock vacuum cloud: A vacuum cloud rebuilt on a home server, found with coding agents.
Image: GitHub (Python-roborock/local_roborock_server)

What was done

A python-roborock maintainer gave coding agents a rooted vacuum, its firmware and the app, and they helped find a way to run Roborock's cloud on a local server.

Lash-L, who maintains the python-roborock library, built a self-hostable version of Roborock's cloud so a vacuum can run with no internet. He says long-running coding agents found the key step after he had been stuck on it for years.

How it was done

The agent was given SSH access to a rooted Roborock S7, the firmware, python-roborock, the Roborock app and decompiled app bundles. The firmware was emulated in a QEMU-backed ARM chroot, so the agent could test ideas without touching a real vacuum. The author first used Claude Code with Opus 4.6, then switched to Codex with 5.3 max because his $20 plan lasted longer. The agent independently found the same onboarding weakness he had already considered. He then prompted it toward the pairing key problem, and it worked out how to recover what was needed from the robot's own messages.

Results

The server redirects the vacuum during normal onboarding, with no need to open or root the device. It relays MQTT and lets the app and Home Assistant work against the local server, including map data that normally goes through the cloud. The repo supports most v2-protocol models, not the entry-level Q series. It has an MIT licence and carries a disclaimer that users take the risk. Technical details are in the author's write-up.