Roborock Go SDK
Guides

Use the CLI

Log in, find your vacuum, read its map, and start cleaning.

1. Install

go install github.com/portpowered/go-roborock/cmd/go-roborock@latest

Make sure Go's binary directory is on your PATH so you can run go-roborock.

2. Log in

go-roborock login

Enter your Roborock account email when prompted, then enter the code sent to that email. The CLI handles the login exchange and saves your account locally for subsequent commands.

3. Find your vacuum

go-roborock devices list

Copy your vacuum's ID from the DEVICE_ID column. Replace DEVICE_ID in the following commands with that ID.

4. Check the vacuum and its map

go-roborock devices vacuum DEVICE_ID status
go-roborock maps show --device DEVICE_ID
go-roborock rooms list --device DEVICE_ID

maps show reads the current map. To list saved maps, run go-roborock maps list --device DEVICE_ID. Q7 devices also support reading a saved map with go-roborock maps show MAP_ID --device DEVICE_ID; replace MAP_ID with an ID from that list.

Status is supported on V1 vacuums. Use go-roborock devices vacuum DEVICE_ID capabilities to check other operations for your device family.

5. Start, pause, or return to the dock

For V1 vacuums, run the command for the action you want:

go-roborock devices vacuum DEVICE_ID start
go-roborock devices vacuum DEVICE_ID pause
go-roborock devices vacuum DEVICE_ID dock

These commands move the vacuum. A successful command does not mean cleaning or docking has finished.

To clean a particular room, choose its ID from the ROOM_ID column of rooms list:

go-roborock rooms clean ROOM_ID --device DEVICE_ID

For rectangle cleaning, see zone cleaning before choosing coordinates. Use go-roborock help to see all commands. A01 property reads and camera signaling are covered in advanced CLI inputs.

6. Log out when finished

go-roborock logout

Logout removes the saved account from this computer. The default profile is go-roborock/profile.json under your operating system's user configuration directory; it contains credentials, so keep that directory private. Use --profile PATH on each command to choose a different profile.

On this page