A command-line interface for Home Assistant.
Provides commands to inspect states, call services, fire events, manage automations, and install updates against a Home Assistant instance.
README
Haus
> This project is being developed using AI development tools. However, every line of code is reviewed and approved by a human before being committed.
# Authenticate
haus login
# List entities
haus state list
# Get entity details
haus state get light.kitchen
# Call a service
haus service call light.turn_on --entity light.kitchen
# View automation config
haus automation get automation.morning_routine
# Toggle an automation
haus automation toggle automation.morning_routine
# Create a new automation from a JSON file (avoids shell-quoting Jinja)
haus automation create --from-file morning.json
# Create a reusable script (e.g. fan out notifications to multiple phones)
haus script create --id notify_all_phones --from-file notify_all.json
# List the entity registry (includes disabled/hidden entities)
haus entity list
# Disable a noisy entity
haus entity update sensor.unused --disable
# Check for available updates
haus update list
# Install an update
haus update install update.home_assistant_core_update
# See what just changed (logbook entries from the last hour)
haus logbook list
# Filter logbook to a single entity
haus logbook list --entity automation.morning_routine --since 1d
# State history for an entity
haus history get device_tracker.phone --since 6h
# Validate Home Assistant configuration
haus config check
# Show recent errors and warnings
haus log --limit 10
haus log --level error
# Install the Haus skill into Claude Code
haus skill install
# Scriptable output
haus state list --porcelain | grep automation
haus state get sensor.temp --json
All commands support --json for structured output and --porcelain for plain tab-separated text.
Build
dotnet build
dotnet run --project src/Haus --
dotnet test