A simple, modern, async-first Python framework for building Home Assistant automations.
Documentation: https://hassette.readthedocs.io
See the Getting Started guide for detailed instructions.
Hassette includes a web UI for monitoring and managing your automations: Apps (app status, health, and detailed per-app views), Handlers (registered event handlers across all apps), Logs (real-time log streaming with filtering), and Config (runtime configuration and diagnostics).

The web UI is enabled by default at http://<host>:8126/. See the Web UI documentation for details.
Query a running Hassette instance from the terminal — no browser required:
# Check system health
hassette status
# List all apps and their status
hassette app
# Investigate a specific app
hassette app health my-app
hassette listener --app my-app --since 1h
hassette log --app my-app --since 1h --limit 20
# Pipe structured output to jq
hassette listener --app my-app --json | jq '.[] | select(.failed > 0)'
See the CLI documentation for the full command reference, scripting patterns, and shell completion setup.
New to automation frameworks? - Is Hassette Right for You? - Decide if Hassette is right for your needs
Coming from AppDaemon? - AppDaemon Migration Guide - See what's different and how to migrate
Check out the examples/ directory for complete working examples:
Configuration examples: - Docker Compose Guide - Docker deployment setup - HassetteConfig - Complete configuration reference
Hassette is under active development. We follow semantic versioning and recommend pinning a minor version (e.g., hassette~=0.x.0) while the API stabilizes.
Open an issue or PR if you'd like to contribute!
await light.turn_on())AppTestHarness for writing tests against your automations with simulated state and time controlContributions are welcome! Whether you're:
See CONTRIBUTING.md for guidelines on getting started.
$ claude mcp add hassette \
-- python -m otcore.mcp_server <graph>