Activate Hermes with a Local Wake Word

Hermes can listen locally for a wake phrase on the CLI, TUI, or desktop app. The detector is off by default and runs on-device; command audio enters the normal voice pipeline only after the phrase is detected. One eligible surface owns the microphone listener at a time.

Start with the bundled phrase

In an interactive session, run /wake on, /wake status, and /wake off. The toggle persists wake_word.enabled in config.yaml. The default openWakeWord engine includes a “hey hermes” model. Sherpa supports arbitrary typed phrases without training, while Porcupine supports built-in or custom keyword files and requires its own access key.

wake_word:
  enabled: true
  surface: gui
  provider: openwakeword
  phrase: "hey hermes"
  sensitivity: 0.6
  confirmation_frames: 3
  start_new_session: true

Higher sensitivity is stricter and reduces false triggers. For openWakeWord, increasing confirmation frames requires a sustained match instead of one audio spike. On Apple Silicon, automatic backend selection prefers TFLite because the ONNX path may arm but never detect.

Readiness checklist

  • Confirm microphone permission for the process that owns the listener.
  • Configure working STT and TTS before enabling hands-free mode.
  • Pin surface when multiple Hermes surfaces are open.
  • Start with the bundled model and default threshold.
  • Test in both quiet and normal ambient conditions.
  • Choose a distinctive custom phrase if changing the default.

Pitfalls

Desktop microphone permission does not always prove the Python backend has permission. An ear icon can show listening while the backend receives silence. Multiple open surfaces use first-claim ownership and do not silently fail over. The wake word is local-only; messaging gateways have no local microphone listener.

Verification steps

  1. Run /wake status and resolve every reported dependency.
  2. Say the phrase ten times from normal speaking distance and record misses.
  3. Play ordinary room conversation and record false triggers.
  4. Raise sensitivity or confirmation frames gradually, then repeat both tests.
  5. Confirm the listener releases the mic during capture and resumes afterward.

See the official Wake Word guide for engine, platform, and custom-phrase details.