
Home Assistant CLI
https://github.com/home-assistant/cli- Category
- Developer Tools
- Rank
- No. 797Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- home-assistant
- GitHub
- 262 stars
- Latest release
- 5.5.0
- Date
About
Command-line interface for managing your Home Assistant install — control add-ons, restart core, inspect logs, all from the terminal.
What it does
Home Assistant CLI is a terminal client for the Supervisor service. Its command tree covers system information, user authentication, backups, networking, storage mounts, audio, Docker settings, operating system tasks, and Supervisor-managed apps. It sends requests to a configurable endpoint, authenticates with a token, and can return human-readable output or raw JSON.
Why it's ranked here
This is a focused administrative tool with unusually broad coverage of Supervisor-managed operations. It supports both interactive troubleshooting and script-friendly JSON, while contextual completion reduces mistakes when selecting apps or mounts. Its strongest case is on Home Assistant Operating System, where distribution and updates are handled automatically. Remote use requires extra setup, so it is less convenient as a general workstation utility.
What's good
The command structure groups related operations clearly across core, host, network, backups, apps, and supporting services. Global options work through flags or environment variables, which suits both direct use and automation. Log handling supports following output, limiting entry counts, selecting a boot, and requesting verbose records. Completion suggestions inspect current app and mount data, then filter choices according to the requested action.
Tradeoffs
The tool is tightly coupled to the Home Assistant Supervisor rather than being a general Home Assistant client. Remote development requires a separate remote API app and its issued token. Some commands can make consequential host changes, including shutdown, reboot, hostname changes, upgrades, downgrades, and mount configuration. Following logs deliberately disables request timeouts, so an unattended session can remain open indefinitely.
How to use it well
Use it for operators who administer a Supervisor-based installation from its device terminal, SSH app, or controlled scripts. Prefer raw JSON when another program will consume results, and environment variables when supplying endpoint and authentication settings in automation. Use targeted log options during diagnosis instead of collecting unlimited output. It does not replace browser or app configuration; its own readiness banner directs users to those interfaces for configuration.
Technical notes+
README.md defines the Cobra-style command surface, global flags, Supervisor-prefixed environment variables, CLI-container distribution, and remote development flow. go.mod declares a Go module using Cobra, pflag, Viper, Resty, YAML support, and terminal utilities. main.go sets warning-level logging, calls cmd.Execute(), and converts cmd.ExitWithError into process status 1. cmd/apps.go uses GenericJSONGet for listing and dynamic action-aware completion. cmd/host.go builds followable log requests with optional Range and boot path parameters, disabling timeouts for streaming. cmd/banner.go polls Supervisor networking for up to three minutes before reporting system addresses. cmd/mounts.go maps CIFS and NFS flags into Supervisor options and derives completions from live mount metadata.
Observed
- Primary language
- Go
- Interface
- Command-line interface backed by Home Assistant Supervisor requests
- Packaging
- Provided through the CLI container on Home Assistant systems
- Platform support
- Available in the device terminal on Home Assistant Operating System
- Update surface
- Automatically updated on Home Assistant Operating System installations
- Additional access
- Available through the SSH app and some community apps
- Build system
- Go modules with a statically buildable binary when CGO is disabled
Read from README.md, go.mod, main.go, cmd/cli.go, cmd/dns.go, cmd/apps.go, cmd/auth.go, cmd/core.go, cmd/host.go, cmd/info.go, cmd/jobs.go, cmd/audio.go, cmd/banner.go, cmd/docker.go, cmd/mounts.go.
What it can do
Control Home Assistant add-ons
Add-on commands and parameters → Add-on status changes and confirmation messages
Restart Home Assistant core
Restart command → Core restart confirmation and status
Inspect Home Assistant logs
Log inspection commands → System logs and error messages
Manage Home Assistant installation
Installation management commands → Installation status and configuration updates
Monitor Home Assistant system status
Status check commands → System health and performance metrics
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.