// the find
koalazak/dorita980
Unofficial iRobot Roomba and Braava (i7/i7+, 980, 960, 900, e5, 690, 675, m6, etc) node.js library (SDK) to control your robot
dorita980 is a Node.js client for iRobot Roombas and Braavas that talks to the robot over the local MQTT/TLS protocol, with a cloud path that is still mostly unfinished. It suits people building home automation integrations who accept that they are relying on a reverse-engineered protocol that iRobot can change.
The compatibility table breaks support down by firmware family (1.6.x, 2.x.x, 3.x.x) and by local versus cloud, and it marks unfinished cloud features as pending instead of hiding them. Onboarding is one command: get-roomba-password-cloud pulls the BLID and password from your iRobot account, and getRobotIP() handles UDP discovery, so you are not hand-running nc or sniffing packets. Legacy TLS renegotiation is enabled by default for old robot firmware on modern Node and OpenSSL, with ROBOT_TLS_LEGACY and ROBOT_CIPHERS as overrides, which is the right default. The 'state' and 'mission' events, with a configurable emit interval for the mission stream, combined with promise-returning commands, make live maps and dashboards straightforward to build.
The library is built on a reverse-engineered MQTT protocol, and the README tells you to block the robot's OTA updates at your router because a firmware change can break it, so expect to babysit firmware. The cloud path is largely unfinished: the 2.x.x cloud column is pending throughout, the Cloud API section still says 'Not implemented yet in Firmware 2.0.0', and V4 protocol robots, including Matter-first models like the Combo Max 705, are explicitly unsupported. The local API holds the robot's single MQTT connection, so a script that stays connected locks out the official app, which then works only through the cloud; you have to remember to call end(). The last push was 2026-02-27, about seven months before today, so check the issue tracker for recent breakage before adopting it for anything that has to keep working.