HiveMind Integration for Home Assistant
September 3, 2026 · View on GitHub
A Home Assistant custom integration (domain: hivemind) that connects Home
Assistant to an OpenVoiceOS instance over the
HiveMind protocol and exposes
OVOS as Home Assistant entities. You can install it through HACS (as a custom
repository) or by hand.
The integration does more than send voice commands. It controls the OVOS device at a system level: audio playback, volume, microphone, sleep and wake, and system power. It does this by injecting low-level bus messages over the HiveMind link.
Where it sits
Home Assistant connects to a HiveMind hub (hivemind-core) that runs alongside an OVOS instance, using a HiveMind client key. Because the integration injects low-level bus messages instead of only utterances, that client must have admin privileges and the message-type allowlist described under Permissions Required.
Prerequisites
- A running HiveMind hub (
hivemind-core) reachable from Home Assistant. - An admin-privileged HiveMind client key and password registered on the hub for Home Assistant (see Permissions Required).
- Home Assistant with access to its
config/custom_components/directory. - The integration declares the runtime requirement
hivemind_bus_client>=1.0.16a1, a prerelease — see Prerelease requirement below.
Installation
HACS (custom repository)
- Add
https://github.com/JarbasHiveMind/hivemind-homeassistantas a custom repository (category Integration). - Install HiveMind.
- Restart Home Assistant.
Manual
-
Copy the
hivemindfolder into your Home Assistantcustom_componentsdirectory:mkdir -p /config/custom_components cp -r custom_components/hivemind /config/custom_components/ -
Restart Home Assistant.
Prerelease requirement
This integration depends on prerelease packages. Its dependency closure pulls in
poorman-handshake, whose required version is a prerelease, so the integration
must be installed in an environment where prerelease resolution is enabled. A
stock Home Assistant add flow, or a plain pip install that does not enable
prereleases, fails to resolve the dependencies and reports RequirementsNotFound.
Install into an environment that allows prereleases, for example:
uv pip install --prerelease=allow "hivemind_bus_client>=1.0.16a1"
# or
pip install --pre "hivemind_bus_client>=1.0.16a1"
In a Home Assistant container, run the equivalent pip install --pre command
inside the container (or its virtual environment) before you add the
integration.
This requirement stands until the HiveMind stack ships stable releases, at which point stock resolution succeeds without the prerelease flag.
Add the integration
Go to Settings → Devices & Services → Add Integration → HiveMind. The
config flow checks the hub connection before it saves the entry, so a bad host
or credential shows a clear cannot connect or invalid auth error instead of
a silent failure.
Configuration fields
The config flow asks for these fields when you add the integration:
| Field | Default | Description |
|---|---|---|
device_type | voice_assistant | Which OVOS capabilities to expose (see below). |
name | n/a | Friendly name for the device in Home Assistant. |
host | n/a | HiveMind hub address — a bare hostname/IP (e.g. 192.168.1.10) or a ws:///wss:// URL to force the scheme. |
port | 5678 | HiveMind WebSocket port; a separate field from host. |
access_key | n/a | HiveMind client access key. |
password | n/a | HiveMind client password. |
site_id | empty | Optional OVOS site id; leave blank if you have one hub. |
allow_self_signed | false | Accept a self-signed TLS certificate. |
Device types
The device_type field controls which platforms Home Assistant sets up:
| Type | Exposes |
|---|---|
agent | binary sensors, buttons, switches (text input and output only). |
media_player | the above, plus notify and media_player. |
voice_assistant | the above, plus select and sensor (full mic, VAD, and STT device). |
See docs/ for the full setup, entity, and permissions guide.
Usage
Once you add a HiveMind device, its entities appear in Home Assistant: a
connection sensor, control buttons and switches, and — depending on
device_type — a media player, a notify service, status sensors, and a
listening-mode selector.
Send text to the OVOS instance with the notify service so it speaks the text
through TTS. Control playback with the media_player entity, which maps Home
Assistant MediaType values to OVOS OCP media types (music, video, movie,
episode, TV channel, game, and others). It also works with sources exposed by
ovos-skill-music-assistant.
Permissions Required
This integration does more than send voice queries: it injects and controls bus messages directly. The client connecting to HiveMind must have admin privileges and permission to use the following message types.
ovos-core
mycroft.stopmycroft.skills.is_alivemycroft.skills.is_ready
ovos-dinkum-listener
mycroft.voice.is_alivemycroft.voice.is_readymycroft.mic.listenmycroft.mic.mutemycroft.mic.unmutemycroft.mic.get_statusrecognizer_loop:sleeprecognizer_loop:wake_uprecognizer_loop:state.getrecognizer_loop:state.set
ovos-gui
mycroft.gui_service.is_alivemycroft.gui_service.is_ready
ovos-audio
speakmycroft.audio.is_alivemycroft.audio.is_readymycroft.audio.speak.status
OCP (OpenVoiceOS Common Play)
ovos.common_play.statusovos.common_play.player.status(legacy OCP audio service; queried until flag day)ovos.common_play.track_infoovos.common_play.get_track_lengthovos.common_play.get_track_positionovos.common_play.playlist.queueovos.common_play.resumeovos.common_play.pauseovos.common_play.stopovos.common_play.previousovos.common_play.nextovos.common_play.set_track_positionovos.common_play.playlist.clearovos.common_play.shuffle.setovos.common_play.shuffle.unsetovos.common_play.repeat.setovos.common_play.repeat.unset
PHAL
mycroft.phal.is_alivemycroft.phal.is_ready
ovos-phal-plugin-alsa
mycroft.volume.getmycroft.volume.increasemycroft.volume.decreasemycroft.volume.mutemycroft.volume.unmute
ovos-phal-plugin-system
system.rebootsystem.shutdownsystem.mycroft.service.restartsystem.ssh.status
ovos-phal-plugin-camera
(work in progress)
ovos.phal.camera.pingovos.phal.camera.getovos.phal.camera.openovos.phal.camera.close
Security notes
- This integration directly manipulates OpenVoiceOS state.
- Proper permission management is critical for security.
- Only connect trusted Home Assistant instances to your HiveMind hub.
Related Projects
- hivemind-homeassistant (this repo) lets HiveMind show up as a player in Home Assistant.
- hivemind-player-protocol turns any device into a standalone HiveMind OCP player.
- ovos-skill-music-assistant lets OVOS search media in Music Assistant sources.
- ovos-media-plugin-mass lets OVOS control Music Assistant players.