Skip to main content

CLI for managing and controlling Shelly devices

Project description

shelly

A fast CLI for discovering, monitoring, and controlling Shelly smart home devices.

CI crates.io PyPI License: MIT

Features

  • Auto-discovery of Shelly devices on the local network (with subnet auto-detection)
  • Unified Gen1 + Gen2/Gen3 support (transparent protocol handling)
  • Multi-switch device support (e.g., Shelly 2.5 with dual relays)
  • Interactive watch dashboard with live power, temperature, WiFi monitoring -- and switch control
  • Energy consumption tracking (total kWh per device)
  • Detailed device info view (model, firmware, uptime, WiFi, temperature)
  • Device health checks (temperature, WiFi signal, firmware, uptime)
  • Device authentication (--password flag or config file)
  • Device groups with filter-based and name-based definitions
  • Firmware check and update across all devices
  • Device renaming from the CLI
  • Structured JSON output for scripting and AI agent integration
  • Shell completions (bash, zsh, fish, powershell)
  • Fuzzy device name matching with "did you mean?" suggestions
  • Color output with automatic detection

Install

uv (recommended)

uv tool install shelly-cli

Homebrew (macOS/Linux)

brew install rvben/tap/shelly-cli

pip

pip install shelly-cli

Cargo

cargo install shelly-cli

Pre-built binaries

Download from GitHub Releases.

Quick Start

# 1. Discover devices (auto-detects your subnet)
shelly discover

# 2. See what you found
shelly devices

# 3. Check device health
shelly health

Usage

Device control

shelly on "Kitchen Light"          # Turn on
shelly off "Kitchen Light"         # Turn off
shelly toggle -n "Living Room"     # Toggle
shelly status -n "Kitchen Light"   # Get status

Monitoring

shelly watch                       # Interactive dashboard
shelly health                      # Health check all devices
shelly power -a                    # Power usage for all devices
shelly energy -a                   # Total energy (kWh) per device
shelly info -n "Kitchen Light"     # Detailed device info

Device management

shelly rename -n "old-name" "New Name"    # Rename device
shelly firmware check -a                   # Check for updates
shelly firmware update -a                  # Update all firmware
shelly reboot -n "Kitchen Light"          # Reboot device

Groups

shelly group add lights "Kitchen" "Living Room" "Bedroom"
shelly group list
shelly -g lights off               # Turn off all lights
shelly -g lights status            # Status of all lights

Authentication

For devices with authentication enabled:

# Per-command
shelly --password "secret" status -a

# Or set in config file (~/.config/shelly-cli/config.toml)
# [auth]
# password = "secret"

Configuration

shelly config get -n "Kitchen"     # Get device config
shelly completions zsh             # Generate shell completions

Agent Integration

Designed for scripting and AI agent use with structured, machine-readable output.

# Structured JSON output (auto-enabled when piped)
shelly status -a | jq '.data'

# Consistent envelope: {"ok": true, "data": ...} or {"ok": false, "error": {...}}
shelly -n "nonexistent" status
# {"ok": false, "error": {"code": "DEVICE_NOT_FOUND", "message": "..."}}

# Machine-readable schema
shelly schema

Groups Configuration

Groups are defined in a TOML file:

# ~/.config/shelly-cli/groups.toml (Linux)
# ~/Library/Application Support/shelly-cli/groups.toml (macOS)

[groups]
lights = ["Kitchen Light", "Living Room Light", "Bedroom Light"]
gen1 = { filter = "gen1" }
gen3 = { filter = "gen3" }
all = { filter = "all" }

Or manage via CLI: shelly group add, shelly group remove, shelly group show.

Supported Devices

Generation Examples Status
Gen1 Shelly 1, 1PM, 2.5, Plug S, Dimmer Supported (switch, power, firmware)
Gen2 Shelly Plus 1, Plus 1PM, Plus 2PM Supported (switch, power, firmware)
Gen3 Shelly Mini 1PM G3, Plus series G3 Supported (switch, power, firmware)

License

MIT License -- see LICENSE file.

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

shelly_cli-0.1.5.tar.gz (55.0 kB view details)

Uploaded Source

Built Distributions

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

shelly_cli-0.1.5-py3-none-win_amd64.whl (5.4 MB view details)

Uploaded Python 3Windows x86-64

shelly_cli-0.1.5-py3-none-manylinux_2_28_x86_64.whl (6.0 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

shelly_cli-0.1.5-py3-none-manylinux_2_28_aarch64.whl (5.7 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

shelly_cli-0.1.5-py3-none-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

shelly_cli-0.1.5-py3-none-macosx_10_12_x86_64.whl (5.3 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file shelly_cli-0.1.5.tar.gz.

File metadata

  • Download URL: shelly_cli-0.1.5.tar.gz
  • Upload date:
  • Size: 55.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for shelly_cli-0.1.5.tar.gz
Algorithm Hash digest
SHA256 19d6c8981f5530c13e7c1d6184d51166d47be36c84e245c59110fadffbb1996e
MD5 e899f216eb9bd59c93a577035cacc31c
BLAKE2b-256 5985649991675e070ebd37a4543584931786722d91661212e02a2a1216391252

See more details on using hashes here.

File details

Details for the file shelly_cli-0.1.5-py3-none-win_amd64.whl.

File metadata

  • Download URL: shelly_cli-0.1.5-py3-none-win_amd64.whl
  • Upload date:
  • Size: 5.4 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for shelly_cli-0.1.5-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d0bf0d328af2ef0afcf1628218c2fcdfffbcc3e95d6b7680b03d053741a3f36c
MD5 71856b07800ff640029e91e9547da959
BLAKE2b-256 c59f17ad2b7b75dfebd070287192097ab05e57c287a93d6bf0e0f4a516cd6cd7

See more details on using hashes here.

File details

Details for the file shelly_cli-0.1.5-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for shelly_cli-0.1.5-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ffbd16b913071bd222c8e33e3a6991c7cc16e4797017df01f1c9bb07e819b656
MD5 e8cb048c50141df822c83ed073d48464
BLAKE2b-256 a397a0462ba2e8011ff825090cdeae5441b4b183f5f5946bc3255c7635bcbf76

See more details on using hashes here.

File details

Details for the file shelly_cli-0.1.5-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for shelly_cli-0.1.5-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a9ca89aa5aaf0141521619317f87366748259decd2123feecd6ad6a5f1d36b84
MD5 d415ec234ca5fdc2ce9eb800e1dd837c
BLAKE2b-256 17fb94fdb5bf037dc64157ce55e99c885a35cc418d38c43891c06bc54c8c9259

See more details on using hashes here.

File details

Details for the file shelly_cli-0.1.5-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shelly_cli-0.1.5-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3d7e22684d9a5b64035317c589b288bd1b07ffd2dcd5f51c6f3b7307aa1af770
MD5 4c411ac6d35be4e1641e7831175170af
BLAKE2b-256 a87da1163470652143b75c981a7813ab10b4e2c225270df8386e5e84123631e7

See more details on using hashes here.

File details

Details for the file shelly_cli-0.1.5-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for shelly_cli-0.1.5-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7b9aaa2ffcb115f5d63e81c2698bee0150fa346ccd9ced2d74892b5a3cd5fbf3
MD5 57327ec6c4f9b31f0b327756ece31954
BLAKE2b-256 a195b3a87fa82de6cc40ada9feaeadf66462a64efd4e6b697556311f30263475

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