dreame-cli
v0.1.0
Published
Bun-based CLI for Dreame vacuums
Maintainers
Readme
dreame-cli
Bun-based CLI for controlling Dreame vacuums. This is an unofficial project and is not affiliated with Dreame.
Features
- Login and device discovery
- Status and property inspection
- Map listing, room listing, and room-based cleaning
- Map images (saved map) and live map overlay (best-effort)
Requirements
- Bun runtime (the CLI runs directly from TypeScript via Bun)
Installation
Run with bunx (no install)
bunx dreame-cli login --username [email protected] --password "your-password" --country us
bunx dreame-cli statusGlobal install
bun add -g dreame-cliThen run:
dreame-cli statusYou can also use the shorter alias:
dreame statusFrom source
bun install
bun run src/index.ts login --username [email protected] --password "your-password" --country us
bun run src/index.ts statusConfiguration
Config is stored at ~/.config/dreame-cli/config.json.
Environment variables (optional):
DREAME_USERNAMEDREAME_PASSWORDDREAME_COUNTRYDREAME_ACCOUNT_TYPE
Commands
The binary is available as dreame-cli or dreame (short alias). Examples below use dreame.
dreame login --username <email> --password <password> [--country us] [--account-type dreame]dreame devicesdreame status [--device-id <id> | --device-name <name>] [--json]dreame maps [--device-id <id> | --device-name <name>] [--map-key <key>]dreame map-image [--device-id <id> | --device-name <name>] [--map-key <key>] [--map-id <id> | --map-index <n>] [--out <path>]dreame map-live [--device-id <id> | --device-name <name>] [--map-key <key>] [--map-id <id> | --map-index <n>] [--out <path>]dreame rooms [--device-id <id> | --device-name <name>] [--map-key <key>] [--map-id <id> | --map-index <n>]dreame clean --rooms <name[,name]> | --segments <id[,id]> [--mode sweep|mop|both] [--suction quiet|standard|strong|turbo] [--water low|medium|high] [--repeats <n>] [--map-key <key>] [--map-id <id> | --map-index <n>]
Map notes
- Some accounts require a
--map-keyto decrypt map data. map-liveuses the live stream when available. When the device is idle it falls back to the most recent recovery snapshot, which may not include a path/trace. In that case the output can look like a plain saved map.
Security
This CLI stores your refresh token and device identifiers in the config file. Treat it as sensitive.
Contributing
Issues and pull requests are welcome. Please keep changes focused and document any new flags.
Acknowledgements
Map decoding logic is inspired by the Dreame Vacuum Home Assistant integration.
License
MIT. See LICENSE.
