Hermes for Home Assistant connects Hermes to Home Assistant in both directions. Hermes gets tools to search entities, read state, and call Home Assistant services, and Home Assistant gets Hermes as an Assist conversation agent, with status sensors and an optional voice loop that runs wake word, speech-to-text, the language model, and text-to-speech in sequence.
The bundle has three pieces. A Home Assistant custom integration adds the hermes integration, its services, status sensors, and a Lovelace action bar, installed through HACS or by hand. A Hermes plugin for Home Assistant provides the smart-home tools, and a voice-stack plugin adds wake-word, transcription, speech, and voice pipeline helpers. An early Home Assistant add-on scaffold runs the voice services under Home Assistant Supervisor instead of a separate machine.
| Hermes tool | Purpose |
|---|---|
| ha_search_entities | Search entities by name, domain, area metadata, or entity ID |
| ha_get_state | Fetch the current state and attributes of one entity |
| ha_call_service | Call a Home Assistant service with safety checks |
| ha_get_overview | Build a compact overview of the home |
| ha_list_services | Discover service domains and names |
| ha_bulk_control | Run several service calls and summarize the results |
| voice_listen | Record once and transcribe |
| voice_speak | Speak text through the configured speech engine |
Home Assistant and Hermes exchange Assist queries and responses over a WebSocket protocol. An opt-in mode lets Home Assistant's own intent engine answer read-only questions (state, temperature, date, time, and timers) or run recognized house commands locally before a request reaches Hermes. The project runs alongside Hermes' bundled Home Assistant integration: the bundled one lets Hermes operate the home as a tool provider, and this one lets Home Assistant use Hermes as its voice and chat agent.
The stack is fully local only when local engines and a local model are chosen. Speech engines include Edge TTS (network-backed), Piper (offline), ElevenLabs, and OpenAI, transcription runs on faster-whisper or whisper.cpp, and wake words run on Porcupine or OpenWakeWord. Hermes itself can use a local endpoint such as Ollama or a remote provider.
Features
- Smart-home tools: Hermes searches entities, reads state, lists services, and calls Home Assistant services, including bulk and scene helpers
- Assist conversation agent: Home Assistant forwards Assist queries to Hermes over WebSocket and speaks the response
- Safety controls: dangerous service domains such as shell commands and Python scripts are blocked by default, with an optional entity allow-list
- Audit log: every service call is written to a JSON-lines audit log
- Status sensors: Hermes health appears in Home Assistant as sensors
- Lovelace action bar: a small dashboard card for Hermes actions
- Voice loop: wake word, transcription, and speech engines are chosen in the Home Assistant options UI
- Local intent handling: an opt-in mode answers read-only questions or runs recognized commands through Home Assistant's intent engine without the language model
- Request integrity: oversized requests are rejected rather than truncated, and the transcript Hermes receives is never rewritten
- Supervisor add-on: an early scaffold runs the Hermes voice services inside Home Assistant Supervisor


