Skip to main content

A python utility to perform host based claiming

Project description

ESP RainMaker CLI

PyPI version

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.13.0] - 08-Apr-2026

Added

  • New stream command for WebRTC video streaming from ESP RainMaker camera devices via Amazon Kinesis Video Streams (KVS) signaling:
    • Live video display with optional recording to file (--output / -o)
    • Duration-limited streaming (--duration)
    • Parallel ICE server fetch and WebSocket connection for faster stream setup
    • Graceful handling of device disconnects, reboots, and frame timeouts
    • Suppression of macOS FFmpeg duplicate library warnings during import

[1.12.0] - 19-Feb-2026

Added

  • Local node cache layer for faster --local control 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 getparams call
    • Empirical capability discovery (probes sec0 first, then sec1, caches result)
    • Cache disabled by default; enable via cache enable or profile add --cache
  • New cache CLI command group: enable, disable, show, clear
  • --no-cache flag on getparams, setparams, getnodeconfig for one-shot cache bypass
  • RM_NODE_CACHE and RM_NODE_CACHE_DIR environment 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 provision and node commands

[1.10.0] - 22-Jan-2026

Added

  • BLE local control support for getparams, setparams, and getnodeconfig commands during provisioning phase:
    • --local-raw option to use custom provisioning endpoints for direct parameter/config access over BLE
    • --device-name option to specify the device name for BLE discovery
    • Fragmented transfer support for getnodeconfig to handle BLE MTU limits
  • --proxy-report option 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-api which 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 deleteuser command 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

  • claim command 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 group
    • remove: Delete an existing group
    • edit: Modify group properties including name, description, and parent
    • list: Display all available groups
    • show: View detailed information about a specific group
    • add-nodes: Add one or more nodes to a group
    • remove-nodes: Remove nodes from a group
    • list-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.py for schedule formatting and parsing

[1.3.0] - 16-Jun-2025

Added

  • Multi-profile support for managing multiple ESP RainMaker deployments
  • New profile command with subcommands:
    • list: Show all configured profiles
    • current: Display active profile
    • switch: Change to a different profile
    • add: Configure a new profile
    • remove: Delete an existing profile
  • Global --profile option available with all commands to specify which profile to use

[1.2.0] - 06-Jun-2025

Added

  • New getnodedetails command for formatted node information with raw data option
  • Support for schedule management with get/setschedule commands
  • Comprehensive documentation for all supported features

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

esp_rainmaker_cli-1.13.0.tar.gz (196.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

esp_rainmaker_cli-1.13.0-py3-none-any.whl (250.8 kB view details)

Uploaded Python 3

File details

Details for the file esp_rainmaker_cli-1.13.0.tar.gz.

File metadata

  • Download URL: esp_rainmaker_cli-1.13.0.tar.gz
  • Upload date:
  • Size: 196.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for esp_rainmaker_cli-1.13.0.tar.gz
Algorithm Hash digest
SHA256 26add2d71ebe9af2d0a1dc41765b464394d7fd22531fe8432d0d6c0626843c3b
MD5 0ebf7d84446589d7655a58b1183e68be
BLAKE2b-256 f5a687d2880b0723bd479ab8488c1ea3dac823a403387c2c9dff51316cbe8c96

See more details on using hashes here.

File details

Details for the file esp_rainmaker_cli-1.13.0-py3-none-any.whl.

File metadata

File hashes

Hashes for esp_rainmaker_cli-1.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee49af44a101ed8aab2de3d5a5ba81d9c7e8feccdbe5a71018142adcac89d454
MD5 b48838b399aaff78a6b0138b3dec5d06
BLAKE2b-256 1494ead9713f99243135839ad77bbb868dfaf99c6ae7a5d4bdb5ef7fbbca7d0a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page