By default, updates to the latest stable version. Use –beta for beta firmware
or –url for a custom firmware file.
Use –list to show available updates before prompting for confirmation.
This is useful for reviewing what version will be installed.
Supports both native Shelly devices and plugin-managed devices (Tasmota, etc.).
Plugin devices are automatically detected and updated using the appropriate plugin.
Use –all to update all registered devices. The –staged flag allows percentage-based
rollouts (e.g., –staged 25 updates 25% of devices).
--all Update all registered devices
--beta Update to beta firmware
-h, --help help for update
-l, --list Show available updates before prompting
--parallel int Number of devices to update in parallel (default 3)
--staged int Percentage of devices to update (for staged rollouts) (default 100)
--url string Custom firmware URL
-y, --yes Skip confirmation prompt
--config string Config file (default $HOME/.config/shelly/config.yaml)
-F, --fields Print available field names for use with --jq and --template
-Q, --jq stringArray Apply jq expression to filter output (repeatable, joined with |)
--log-categories string Filter logs by category (comma-separated: network,api,device,config,auth,plugin)
--log-json Output logs in JSON format
--no-color Disable colored output
--no-headers Hide table headers in output
--offline Only read from cache, error on cache miss
-o, --output string Output format (table, json, yaml, template) (default "table")
--plain Disable borders and colors (machine-readable output)
-q, --quiet Suppress non-essential output
--refresh Bypass cache and fetch fresh data from device
--template string Go template string for output (use with -o template)
-v, --verbose count Increase verbosity (-v=info, -vv=debug, -vvv=trace)