| name | home-assistant |
| description | Control Home Assistant devices and automations via hass-cli. Use when controlling smart home devices, lights, switches, sensors, climate, media players, or running automations/scripts. Requires HASS_SERVER and HASS_TOKEN environment variables. |
| metadata | {"clawdbot":{"emoji":"🏠","requires":{"bins":["hass-cli"]},"install":[{"id":"brew","kind":"brew","formula":"homeassistant-cli","bins":["hass-cli"],"label":"Install hass-cli (brew)"}]}} |
Home Assistant CLI
Control Home Assistant via hass-cli.
Install
brew install homeassistant-cli
pip install homeassistant-cli
hass-cli --version
Setup
1. Find Your Home Assistant URL
Common URLs (try in order):
http://homeassistant.local:8123 — Default mDNS hostname
http://homeassistant:8123 — If using Docker/hostname
http://<IP-ADDRESS>:8123 — Direct IP (e.g., http://192.168.1.100:8123)
https://your-instance.ui.nabu.casa — If using Nabu Casa cloud
Test it: open the URL in a browser — you should see the HA login page.
2. Create a Long-Lived Access Token
- Open Home Assistant in your browser
- Click your profile (bottom-left of the sidebar, your name/icon)
- Scroll down to Long-Lived Access Tokens
- Click Create Token
- Give it a name (e.g., "Clawdbot" or "CLI")
- Copy the token immediately — you won't see it again!
The token looks like: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3...
3. Configure Environment Variables
Add to your shell profile (~/.zshrc or ~/.bashrc):
export HASS_SERVER="http://homeassistant.local:8123"
export HASS_TOKEN="your-token-here"
Or for Clawdbot, store credentials in TOOLS.md:
## Home Assistant
- **URL:** `http://homeassistant.local:8123`
- **Token:** `eyJ...your-token...`
Then reference TOOLS.md before making calls.
Quick Reference
hass-cli state list
hass-cli state list | grep -i kitchen
hass-cli state get light.kitchen
hass-cli service call switch.turn_on --arguments entity_id=switch.fireplace
hass-cli service call switch.turn_off --arguments entity_id=switch.fireplace
hass-cli service call light.turn_on --arguments entity_id=light.kitchen
hass-cli service call light.turn_off --arguments entity_id=light.kitchen
hass-cli service call light.turn_on --arguments entity_id=light.kitchen,brightness=128
hass-cli service call switch.toggle --arguments entity_id=switch.fireplace
hass-cli service call climate.set_temperature --arguments entity_id=climate.thermostat,temperature=72
hass-cli service call automation.trigger --arguments entity_id=automation.evening_lights
hass-cli service call script.turn_on --arguments entity_id=script.movie_mode
Entity Naming Patterns
light.* — Lights
switch.* — Switches, plugs, relays
sensor.* — Temperature, humidity, power, etc.
binary_sensor.* — Motion, door/window, presence
climate.* — Thermostats, HVAC
cover.* — Blinds, garage doors
media_player.* — TVs, speakers
automation.* — Automations
script.* — Scripts
scene.* — Scenes
Discovery Tips
hass-cli state list | grep "^light\."
hass-cli state list | grep -i bedroom
hass-cli state list | grep -E "\s+on\s+"
hass-cli --format json state get light.kitchen
Notes