Agent skill
home-assistant
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.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/hass-cli
Metadata
Additional technical details for this skill
- clawdbot
-
{ "emoji": "\ud83c\udfe0", "install": [ { "id": "brew", "bins": [ "hass-cli" ], "kind": "brew", "label": "Install hass-cli (brew)", "formula": "homeassistant-cli" } ], "requires": { "bins": [ "hass-cli" ] } }
SKILL.md
Home Assistant CLI
Control Home Assistant via hass-cli.
Install
# macOS (Homebrew)
brew install homeassistant-cli
# pip (any platform)
pip install homeassistant-cli
# Verify
hass-cli --version
Setup
1. Find Your Home Assistant URL
Common URLs (try in order):
http://homeassistant.local:8123— Default mDNS hostnamehttp://homeassistant:8123— If using Docker/hostnamehttp://<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
# List all entities
hass-cli state list
# Filter entities (pipe to grep)
hass-cli state list | grep -i kitchen
# Get specific entity state
hass-cli state get light.kitchen
# Turn on/off
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
# Light brightness (0-255)
hass-cli service call light.turn_on --arguments entity_id=light.kitchen,brightness=128
# Toggle
hass-cli service call switch.toggle --arguments entity_id=switch.fireplace
# Climate
hass-cli service call climate.set_temperature --arguments entity_id=climate.thermostat,temperature=72
# Run automation/script
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.*— Lightsswitch.*— Switches, plugs, relayssensor.*— Temperature, humidity, power, etc.binary_sensor.*— Motion, door/window, presenceclimate.*— Thermostats, HVACcover.*— Blinds, garage doorsmedia_player.*— TVs, speakersautomation.*— Automationsscript.*— Scriptsscene.*— Scenes
Discovery Tips
# Find all lights
hass-cli state list | grep "^light\."
# Find devices by room name
hass-cli state list | grep -i bedroom
# Find all "on" devices
hass-cli state list | grep -E "\s+on\s+"
# Get entity attributes (JSON)
hass-cli --format json state get light.kitchen
Notes
- Empty
[]response from service calls = success - Use exact entity_id from
state list - Multiple arguments: comma-separated (no spaces)
- If hass-cli unavailable, use REST API as fallback:
bash
curl -s -H "Authorization: Bearer $HASS_TOKEN" "$HASS_SERVER/api/states" | jq
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?