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.4.tar.gz (53.1 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.4-py3-none-win_amd64.whl (5.4 MB view details)

Uploaded Python 3Windows x86-64

shelly_cli-0.1.4-py3-none-manylinux_2_28_x86_64.whl (5.9 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

shelly_cli-0.1.4-py3-none-manylinux_2_28_aarch64.whl (5.6 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

shelly_cli-0.1.4-py3-none-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

shelly_cli-0.1.4-py3-none-macosx_10_12_x86_64.whl (5.2 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: shelly_cli-0.1.4.tar.gz
  • Upload date:
  • Size: 53.1 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.4.tar.gz
Algorithm Hash digest
SHA256 358453f744f14bf2b263d7d0e5e4de9fb21b940904540424d1d6f6e483769db5
MD5 db11c155721e863c27df841b385abe34
BLAKE2b-256 a810b21b901bc05553bdaa1b99d5fd90317120ec9f8870c6a753c674005ba2d6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shelly_cli-0.1.4-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.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 eff7c023ce6c87fa0a0961b72d1e3fa7cb82e31369ed5bfd6f920f68ece242b9
MD5 f4cd6fef449f0342505592e8836b1cfb
BLAKE2b-256 923397c25484daf158b2a9a91f826333be5b20fbfe450fb42ef37a7a06886358

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shelly_cli-0.1.4-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 44be58642619c063b0c602062fcebc5b087f06957313cf125e9c1b3006be96b0
MD5 0099e596793fad2f45f479b2c0fa73e4
BLAKE2b-256 7d9c43152eb864b930f8c06c79619bd9d5938da0c2a0a335639a116e39af1c9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shelly_cli-0.1.4-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c4114e37c83b9e19c1d74f13abb10b9c0ba82c596b8f3727136913e26d64eb8d
MD5 b013800ed7f1266773eed7137cdbbf2f
BLAKE2b-256 2c77ea90428d154eef13ac5f350006be04b1068adab3ecf23d907319022046e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shelly_cli-0.1.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 899d417687bf3eb62c736440492b4937e3423952636cf9458faab177307c44ba
MD5 f1f95747c6c2f1f8c75fc39e697c53ec
BLAKE2b-256 d4bff3eb3e658360bda97aef44b2066bcdd5971f8cbc9ea90d2b28ce12972d47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shelly_cli-0.1.4-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2835c41ea6c07974c6db65e6637f227fd3e0ed23612930e8c74732c3977b2522
MD5 c5a76d1ed5f55271a186f886d7aad8e0
BLAKE2b-256 fc1311ffa252fa2b4069fd51c0b4971c36d3e3e4b50b4b57eaeec8f34ca9b18b

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