OVOS Skills Hub

The canonical hivemind-core hub, backed by an OpenVoiceOS instance. Satellites connect to it and route utterances to OVOS skills.

Prerequisites

ovos-core and ovos-messagebus must be running on the same machine before you start hivemind-core. For a minimal OVOS install:

pip install ovos-core ovos-messagebus

See the OVOS documentation for a complete OVOS setup guide.

Install

pip install hivemind-core

Configuration

Server configuration lives at ~/.config/hivemind-core/server.json. You can also pass all settings as command-line flags to hivemind-core listen. The file takes precedence over flags for settings it defines.

Default configuration:

{
  "agent_protocol": {
    "module": "hivemind-ovos-agent-plugin",
    "hivemind-ovos-agent-plugin": {
      "host": "127.0.0.1",
      "port": 8181
    }
  },
  "binary_protocol": {
    "module": null
  },
  "network_protocol": {
    "hivemind-websocket-plugin": {
      "host": "0.0.0.0",
      "port": 5678
    },
    "hivemind-http-plugin": {
      "host": "0.0.0.0",
      "port": 5679
    }
  },
  "policy": {
    "chain": [
      {"module": "hivemind-ovos-agent-policy"}
    ]
  },
  "database": {
    "module": "hivemind-sqlite-db-plugin",
    "hivemind-sqlite-db-plugin": {
      "name": "clients",
      "subfolder": "hivemind-core"
    }
  }
}

Starting the server

hivemind-core listen

Or with explicit flags (override server.json):

hivemind-core listen \
  --host 0.0.0.0 \
  --port 5678 \
  --ssl false \
  --db-backend sqlite

Managing clients

# Add a new satellite
hivemind-core add-client --name "living-room"

# List all registered satellites
hivemind-core list-clients

# Remove a satellite
hivemind-core delete-client --node-id 2

# Rename a client
hivemind-core rename-client "new-name" --node-id 2

See CLI Reference for all commands and Security for permission management.

Adding server-side audio processing

To support mic-satellite and voice-relay, install the audio binary protocol plugin:

pip install hivemind-audio-binary-protocol

Then configure server.json to enable it. See Audio Binary Protocol.

Systemd service

To run hivemind-core as a system service:

# /etc/systemd/system/hivemind-core.service
[Unit]
Description=HiveMind Core
After=network.target ovos-messagebus.service
Requires=ovos-messagebus.service

[Service]
Type=simple
User=ovos
ExecStart=/home/ovos/.venvs/ovos/bin/hivemind-core listen
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable hivemind-core
sudo systemctl start hivemind-core