| name | homeassist |
| description | Use when querying or controlling Home Assistant — entities, services, templates, logs, automations, system status. Also for pre-deploy YAML validation, post-deploy verification, and system status dashboards. |
homeassist CLI
Compiled Rust CLI for Home Assistant. Auto-detects Claude Code for compact output; interactive terminals get styled human output.
Entity Operations
homeassist entities list --domain light
homeassist entities list --state unavailable
homeassist entities list --pattern "hvac.*power"
homeassist entities list --name "kitchen"
homeassist entities list --domain sensor --state on
homeassist entities get sensor.kitchen_temperature
homeassist entities search "fountain"
Services
homeassist services list climate
homeassist services call light.turn_on --data '{"entity_id":"light.kitchen"}'
homeassist services call light.turn_on --target '{"area_id":"kitchen"}'
System Status & Monitoring
homeassist stats
homeassist stats --dashboard my.yaml
homeassist stats --init > dashboard.yaml
homeassist health
homeassist inspect
homeassist logs errors --tail 10
homeassist logs errors --pattern "zigbee"
homeassist diff --since 1
homeassist watch sensor.temp --timeout 60 --state 72
Dashboard Config (YAML)
sections:
- name: Climate
entities:
- climate.thermostat
- sensor.outdoor_temperature
templates:
- label: "Net power"
template: "{{ (states('sensor.solar') | float - states('sensor.grid') | float) | round(1) }}W"
Config precedence: --dashboard flag > .homeassist-dashboard.yaml in cwd > ~/.config/homeassist/dashboard.yaml
Config & Automation
homeassist config check
homeassist config reload all
homeassist automations list
homeassist automations trigger <id>
homeassist templates render "{{ states('sensor.temp') }}"
Deployment
homeassist validate ./packages --check-entities --check-registry || exit 1
homeassist verify --baseline snapshot.json
Output Modes
Auto-detected: human (terminal), compact (Claude Code), JSON (piped).
Override: --human, --compact, --no-compact.
| Command | Compact format | Savings |
|---|
stats | sys\tv...\tent\ttotal:N\tunavail:N... (2-3 lines) | ~80% |
entities list/search | TSV: entity_id\tstate (capped at 50, --limit N) | ~67% |
entities get | Single-line JSON, no context | ~45% |
services list <domain> | domain.svc(params) | ~99% |
Filter Strategy
- Domain known?
--domain sensor
- State known?
--state unavailable (exact, not substring)
- Keyword?
search "fountain"
- Regex?
--pattern "hvac.*power"
- Exact entity?
get sensor.xyz
Pitfalls
--pattern unavailable matches "available" — use --state unavailable
services list without domain gives domain names only, not signatures
- Need attributes in list? Add
--no-compact
- Global flags (
--compact, --human, --limit) go BEFORE the subcommand: homeassist --compact stats
- Entity lists default to 50 items in compact mode; use
--limit 0 for unlimited or --limit N