F11, started with the --voice flag, or toggled with the /voice
command.
Backends are pluggable on both sides. Locally, faster-whisper handles STT and
Piper handles TTS; install them with uv sync --group voice-local. Cloud
backends cover OpenAI, Deepgram, and ElevenLabs, and the config names the
environment variable holding an API key, never the key itself.
The page will cover the voice section of settings.yaml (was
voice_policy.yaml) in full. It is off by default, and the presence of the
section does not enable it, so you must set enabled: true and
install your chosen backends. Settings include per-direction backend and model
selection, capture settings with a hard cap on one utterance as a
runaway-microphone guard, a cap on synthesized text length, and fail_open,
which degrades to text with a notice rather than crashing when a backend fails.
Voice is interactive only; the headless one-shot path stays text-only.
This page is in progress. The shipped
voice section is fully commented and is
the best reference until it lands. Legacy split voice_policy.yaml files still
resolve./voice, and
Configuration for how the voice section resolves.