Configuration

August 10, 2026 · View on GitHub

CLI flags

All flags are optional when a node identity is stored via hivemind-client set-identity.

FlagTypeDefaultDescription
--hoststringidentity fileWebSocket URL or hostname of the hivemind-core server (running the hivemind-audio-binary-protocol plugin). A ws:// scheme is prepended if no scheme is given.
--keystringidentity fileAccess key issued by the server.
--passwordstringidentity filePassword used for key derivation.
--portintegeridentity file or 5678TCP port of the hivemind-core server.
--selfsignedflagfalseAccept self-signed TLS certificates. Required when the server uses a certificate not trusted by your system.
--siteidstringidentity file or "unknown"Location identifier added to message context. Useful when running multiple satellites.

Identity file

Credentials are resolved in order: CLI flag → identity file → error.

Manage the identity file with hivemind-client:

# Write
hivemind-client set-identity --key KEY --password PASS --host wss://host --port 5678

# Read
hivemind-client test-identity

The identity is stored at ~/.config/hivemind/_identity.json.


OVOS configuration

Voice Relay reads ~/.config/mycroft/mycroft.conf (standard OVOS JSON config). Create or edit this file to configure plugins.

Wake word

The wake word module and keyword are set under listener:

{
  "listener": {
    "wake_word": "hey_mycroft"
  }
}

wake_word is the plugin entry-point name. To use a different wake word plugin, install it and set wake_word to its name.

Popular wake word plugins:

PluginEntry-point nameInstall
Precise Litehey_mycroft (default)included with ovos-ww-plugin-precise-lite
OpenWakeWordhey_mycroft (with openwakeword backend)pip install ovos-ww-plugin-openwakeword
Voskdepends on keywordpip install ovos-ww-plugin-vosk

Full list: OVOS Wake Word Plugins

Microphone

{
  "microphone": {
    "module": "ovos-microphone-plugin-alsa"
  }
}

The default ovos-microphone-plugin-alsa works for most Linux setups. For PyAudio:

pip install ovos-microphone-plugin-pyaudio
{
  "microphone": {
    "module": "ovos-microphone-plugin-pyaudio"
  }
}

Full list: OVOS Microphone Plugins

VAD (Voice Activity Detection)

{
  "listener": {
    "VAD": {
      "module": "ovos-vad-plugin-silero"
    }
  }
}

The default ovos-vad-plugin-silero works well in most environments. Alternatives:

PluginNotes
ovos-vad-plugin-sileroDefault, neural, accurate
ovos-vad-plugin-webrtcvadLighter, rule-based

Full list: OVOS VAD Plugins

Optional plugins

Plugin typeConfig pathNotes
G2Ptts.g2p_moduleGrapheme-to-phoneme for mouth animation, not required for audio
Media PlaybackAudio.backendsEnables media commands ("play Metallica")
OCP Pluginsn/aURL resolvers for media backends
Dialog Transformersn/aText post-processing before the TTS request is sent, server-side only
Audio Transformersaudio_transformersApplied to captured speech before it is sent upstream
Utterance Transformersutterance_transformersApplied to the transcript before it is emitted
TTS Transformerstts_transformersAudio post-processing after TTS audio received
PHALn/aPlatform hardware abstraction, auto-loaded if ovos-PHAL is installed

Transformer pipelines

The relay runs OVOS transformer plugins on-device, opt-in via this device's mycroft.conf:

  • audio_transformers — applied to captured speech before it is sent to the server for STT (e.g. denoise for a bad microphone).
  • utterance_transformers — applied to the transcript before recognizer_loop:utterance is emitted; a plugin cancellation (OVOS-TRANSFORM §8.1, e.g. ovos-utterance-plugin-cancel) drops the utterance on-device.
  • tts_transformers — applied to received TTS audio before playback (e.g. a per-device pitch or speed effect).
{
  "utterance_transformers": {
    "ovos-utterance-plugin-cancel": {}
  },
  "tts_transformers": {
    "ovos-tts-transformer-sox-plugin": {"pitch": 300}
  }
}

Use device-side transformers for per-device effects; fleet-wide effects belong on the server (hivemind-audio-binary-protocol / hivemind-core / a shared tts-server). Remember the server may already rewrite things: TTS audio saying different text than the skill produced usually means a dialog transformer is centralizing a tone/persona server-side. Never enable the same plugin on both sides, or the effect is applied twice. Full contract: ovos-plugin-manager transformer docs.

Example mycroft.conf

{
  "listener": {
    "wake_word": "hey_mycroft",
    "VAD": {
      "module": "ovos-vad-plugin-silero"
    }
  },
  "microphone": {
    "module": "ovos-microphone-plugin-alsa"
  }
}

What is NOT configurable here

STT and TTS plugins are not configured on the relay device. They run on the hivemind-core server (via the hivemind-audio-binary-protocol plugin). Configure them in the server's OVOS config.


← Getting started · Home · Architecture →