Hermes for Home Assistant connects the Hermes agent to Home Assistant so the agent can answer questions about the home, call Home Assistant services, and optionally run a wake-word, speech-to-text, LLM, text-to-speech voice loop. It bundles three pieces: a Home Assistant custom integration (customcomponents/hermes/), a Hermes plugin for Home Assistant tools (plugins/homeassistant/), and a Hermes voice-stack plugin (plugins/voice_stack/).
Hermes talks to Home Assistant through its REST and WebSocket APIs using a long-lived access token. In the other direction, the voice_stack plugin starts a WebSocket receiver at ws:// :7860/api/hermes/ws, which the custom integration uses to register Hermes as an Assist conversation agent, bridge voice lifecycle events, and expose Hermes health as status sensors. The integration installs via HACS as a custom repository or by manual copy; the plugins install from a Python wheel or by copying into ~/.hermes/hermes-agent/plugins. A Home Assistant Supervisor add-on is an early scaffold.
The stack can be fully local when you pick local engines and a local model. Edge TTS is network-backed (Piper is the offline option), Porcupine wake-word detection needs a Picovoice access key (OpenWakeWord is the open-source option), and Hermes can use local or remote model providers. This bundle runs alongside Hermes' bundled Home Assistant integration: the bundled one lets Hermes operate Home Assistant as a tool provider, while this project lets Home Assistant use Hermes as a voice and chat brain.
| Hermes tool | Purpose |
|---|---|
| hasearchentities | Search entities by name, domain, area metadata, or ID |
| hagetstate | Fetch state and attributes for one entity |
| hacallservice | Call a service with safety checks |
| hagetoverview | Build a compact overview of the home |
| habulkcontrol | Run multiple service calls and summarise results |
| voiceenable / voicedisable | Toggle continuous wake-word listening |
| voicespeak / voicelisten | Speak text through TTS, or record and transcribe once |
Features
- Home Assistant tools: entity search, state lookup, service calls, bulk control, scene and script discovery, and home context
- Safety controls: blocked service domains, an optional allow-list, and JSON-line audit logging
- Assist conversation agent: registers Hermes on the Home Assistant conversation platform
- Status sensors: exposes Hermes health inside Home Assistant
- Voice stack: configurable wake-word, speech-to-text, and text-to-speech engines with pipeline helpers
- Lovelace action bar: a small dashboard card (custom:hermes-action-bar)
- WebSocket bridge: documented protocol for HA-originated voice lifecycle events, with optional token auth
- Install surfaces: HACS custom repository, manual copy, Python wheel, and an add-on scaffold
