A python utility to perform host based claiming
Project description
ESP RainMaker CLI
Welcome to the esp-rainmaker-cli repository!
This repository contains the source of ESP RainMaker Command Line utility.
About RainMaker
ESP RainMaker is an end-to-end solution offered by Espressif to enable remote control and monitoring for ESP32 based products without any configuration required in the Cloud.
How to install
esp-rainmaker-cli is available on Python Package Index (PyPI). It can be installed using pip.
python3 -m pip install esp-rainmaker-cli
Usage
Please check the CLI Usage guide for more information.
For more help, you can also run the following command:
esp-rainmaker-cli --help
Key Features
🔧 Enhanced Device Provisioning
Support for BLE, SoftAP, and Console transport modes with Security 0/1/2 schemes. Use the new --pop flag for cleaner syntax.
esp-rainmaker-cli provision --pop abcd1234 --transport ble --device_name PROV_device
⚡ ESP Local Control
Direct device communication on your local network with 5-10x faster response times using the --local flag.
For detailed documentation, see Provisioning Guide and ESP Local Control Guide.
Development Guide
Development mode allows you to run the latest version of esp-rainmaker-cli from the repository. If you are making any changes to the tool then in order to test the changes please follow the below steps.
python3 -m pip install -e .
This will install esp-rainmaker-cli's dependencies and create an executable script wrappers in the user's bin directory. The wrappers will run the scripts found in the git working directory directly, so any time the working directory contents change it will pick up the new versions.
Changelog
Changelog
All major changes to ESP RainMaker CLI will be documented in this file.
[1.12.0] - 19-Feb-2026
Added
- Local node cache layer for faster
--localcontrol operations:- Caches node details, config, POP, and local control capability per profile/user
- Disk-based session reuse to skip X25519 handshake on repeated commands
- Auto-POP resolution from cache, eliminating need for prior cloud
getparamscall - Empirical capability discovery (probes sec0 first, then sec1, caches result)
- Cache disabled by default; enable via
cache enableorprofile add --cache
- New
cacheCLI command group:enable,disable,show,clear --no-cacheflag ongetparams,setparams,getnodeconfigfor one-shot cache bypassRM_NODE_CACHEandRM_NODE_CACHE_DIRenvironment variables for automation control
[1.11.1] - 10-Feb-2026
- Add support for ecdsa in claiming and make it as default, with an option to fall back to the earlier rsa scheme.
[1.11.0] - 09-Feb-2026
- Add support for Tags and Metadata during provisioning and also after mapping a user. Check
provisionandnodecommands
[1.10.0] - 22-Jan-2026
Added
- BLE local control support for
getparams,setparams, andgetnodeconfigcommands during provisioning phase:--local-rawoption to use custom provisioning endpoints for direct parameter/config access over BLE--device-nameoption to specify the device name for BLE discovery- Fragmented transfer support for
getnodeconfigto handle BLE MTU limits
--proxy-reportoption for proxy reporting to cloud backend (if the node is already mapped to the user):- Sends timestamp to node and receives signed response (parameters/config + timestamp + signature)
- Reports to cloud on behalf of the node
[1.9.1] - 21-Jan-2026
Bugfixes
- The IPv6 address is not supported for on-network challenge-response.
[1.9.0] - 14-Jan-2026
Added
- Support for on-network user-node mapping via the "provision" command for scenarios wherein the RainMaker node is already connected to the network via some mechanism independent of RainMaker provisioning.
[1.8.2] - 08-Jan-2026
Added
- An option --no-wifi to 'provision' command to allow challenge-response based user-node mapping without Wi-Fi provisioning.
- A new command
raw-apiwhich will allow invoking any user API supported by ESP RainMaker.
Bugfixes
- The reset provisioning command sent for retrying on failure did not have complete command data.
[1.8.1] - 19-Dec-2025
Added
- An option --no-retry for provisioning, to avoid user-interactive prompts asking to retry in case of failures
[1.8.0] - 18-Dec-2025
Added
- Retry support for WiFi provisioning - allows users to retry provisioning on failure, resets device state machine using prov-ctrl endpoint, and sends new credentials on the same secure session
- Support for passing QR code payload to provisioning command
[1.7.0] - 11-Nov-2025
Added
- BLE Transport support for provisioning
- Challenge-response based user-node mapping
- Local control over HTTP
- Security v2 for provisioning and local control
[1.6.0] - 16-Sep-2025
Added
- Support for camera device type in claiming
[1.5.4] - 16-Sep-2025
Added
- Support for changing logs path
- Support for passing access token externally
[1.5.3] - 26-Jun-2025
Added
- New
deleteusercommand for permanent account deletion with two-step verification
Fixed
- login command was not displaying currently logged-in user when session exists
- login, signup, forgotpassword commands were giving deprecation warning for pkg_resources
[1.5.2] - 23-Jun-2025
Fixed
requirement: bump esp-idf-nvs-partition-gen to v0.1.9
[1.5.1] - 20-Jun-2025
Fixed
claimcommand was failing
[1.5.0] - 18-Jun-2025
Added
- Group management support with the following subcommands:
add: Create a new group with optional description, type, and parent groupremove: Delete an existing groupedit: Modify group properties including name, description, and parentlist: Display all available groupsshow: View detailed information about a specific groupadd-nodes: Add one or more nodes to a groupremove-nodes: Remove nodes from a grouplist-nodes: View nodes in a group with optional detailed info and sub-groups
[1.4.0] - 16-Jun-2025
Added
- Support for setting parameters and schedules for multiple nodes in a single command
- New module
rmaker_lib/schedule_utils.pyfor schedule formatting and parsing
[1.3.0] - 16-Jun-2025
Added
- Multi-profile support for managing multiple ESP RainMaker deployments
- New
profilecommand with subcommands:list: Show all configured profilescurrent: Display active profileswitch: Change to a different profileadd: Configure a new profileremove: Delete an existing profile
- Global
--profileoption available with all commands to specify which profile to use
[1.2.0] - 06-Jun-2025
Added
- New
getnodedetailscommand for formatted node information with raw data option - Support for schedule management with
get/setschedulecommands - Comprehensive documentation for all supported features
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file esp_rainmaker_cli-1.12.0.tar.gz.
File metadata
- Download URL: esp_rainmaker_cli-1.12.0.tar.gz
- Upload date:
- Size: 166.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3737f6a3465042032b1c0da707f18501056a1695dfb521363e0b80c7bac66b0
|
|
| MD5 |
ce73aebf757ee6dc0e5ef10ace70c565
|
|
| BLAKE2b-256 |
b4d90bc03fd4521b32e479822ffcd3ecb36c690e3e0719d193998e567c9d402d
|
File details
Details for the file esp_rainmaker_cli-1.12.0-py3-none-any.whl.
File metadata
- Download URL: esp_rainmaker_cli-1.12.0-py3-none-any.whl
- Upload date:
- Size: 219.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30b3645ef6978c0657f372fedad2a7bd51506e2fd47bfcf16c21e76aa6deb274
|
|
| MD5 |
a75c2af52157e4220ec3269a798c5685
|
|
| BLAKE2b-256 |
1f1b09d86d7d0bc6f98ef75eb12ceb7bff620913ffd4df9c17e81b7e0219a9e6
|