HiveMind Pipeline Plugin
The HiveMind Pipeline Plugin allows an OpenVoiceOS device to query a smarter HiveMind when an intent is uncertain. It integrates directly into the OVOS intent pipeline.
Install
This plugin should be installed in ovos-core
pip install ovos-hivemind-pipeline-plugin
Configuration
The plugin is configured via the standard mycroft.conf
:
💡 Learn more about intent pipelines and configuration in the OVOS technical manual.
Example configuration:
{
"intents": {
"pipeline": [
"...",
"ovos-hivemind-pipeline-plugin",
"..."
],
"ovos-hivemind-pipeline-plugin": {
"name": "Hive Mind",
"confirmation": true,
"slave_mode": false,
"allow_selfsigned": false
}
}
}
Option | Value | Description |
---|---|---|
name |
Hive Mind |
Name of the HiveMind AI assistant in confirmation dialogs |
confirmation |
true |
Spoken confirmation is triggered when a request is sent to HiveMind |
allow_selfsigned |
false |
Allow self-signed SSL certificates for the HiveMind connection |
slave_mode |
false |
When true , the device passively monitors HiveMind and can inject messages into the OVOS bus |
HiveMind Setup
- Register the pipeline plugin on HiveMind Core:
hivemind-core add-client
Example output:
Node ID: 2
Friendly Name: HiveMind-Node-2
Access Key: 5a9e580a2773a262cbb23fe9759881ff
Password: 9b247ca66c7cd2b6388ad49ca504279d
Encryption Key: 4185240103de0770
WARNING: Encryption Key is deprecated
- Set identity on the OVOS device:
hivemind-client set-identity \
--key 5a9e580a2773a262cbb23fe9759881ff \
--password 9b247ca66c7cd2b6388ad49ca504279d \
--host 0.0.0.0 \
--port 5678 \
--siteid test
Verify identity:
cat ~/.config/hivemind/_identity.json
Test connection:
hivemind-client test-identity
⚠️ If this step fails, the OVOS device will not be able to connect to HiveMind.
Slave Mode
When running in slave mode, the device can passively monitor HiveMind and emit serialized HiveMessages via the regular OVOS bus.
- From slave → master: (might be rejected by
hivemind-core
)
emit "hive.send.upstream"
with message.data, {"msg_type": "bus", "payload": message.serialize()}
- From master → slave:
emit "hive.send.downstream"
with message.data, {"msg_type": "bus", "payload": message.serialize()}
💡 this is what enables nested hives, OpenVoiceOS can be both a master (by running
hivemind-core
) and a slave (by running this plugin)