config.yml reference
Last modified: 25 July 2026
The file
The plugin writes plugins/VoiceSniffer/config.yml on first start. This page is the
reference for it, and it matches what the web panel generates key for key —
if you would rather click than type, generate the file there and paste it in.
Unknown keys are rejected at startup rather than ignored, so a typo is reported instead of silently doing nothing.
Every key
| Key | Default | Required |
|---|---|---|
engine.mode | none as shipped; the panel writes sidecar | Yes — nothing is moderated until it is sidecar or embedded |
embedded.tier | standard | Embedded only |
embedded.profile | safe | Embedded only |
processor.url | http://127.0.0.1:8090/v1/moderate | Sidecar only. Pinned by your subscription on cloud |
processor.token | empty | Sidecar only. Requests are rejected with 401 without it |
processor.language | auto | No |
moderation.fail-closed | false | No |
actions.severity-1.type | warn | No |
actions.severity-2.type | mute | No |
actions.severity-2.duration-seconds | 300 | Required for mute, rejected for warn |
actions.severity-3.type | mute | No |
actions.severity-3.duration-seconds | 3600 | Required for mute, rejected for warn |
consent.opt-out-mode | disable-voice | No |
consent.message | See consent and privacy | Yes — this is your disclosure |
capture.vad.rms-threshold | 450 | No |
capture.vad.hangover-ms | 600 | No |
capture.vad.minimum-utterance-ms | 250 | No |
capture.vad.maximum-utterance-ms | 8000 | No |
license.key | empty | Self-host and embedded only. Cloud uses the processor token as its entitlement. |
Mute durations must be between 1 and 86400 seconds. The engine, embedded and processor settings are read at startup; the embedded tier, profile and model directory need a full server restart, not a reload.
A complete file
A sidecar install with the shipped defaults — the same shape the panel emits:
engine:
mode: sidecar
processor:
url: http://127.0.0.1:8090/v1/moderate
token: 'your-processor-token'
language: auto
moderation:
fail-closed: false
actions:
severity-1:
type: warn
severity-2:
type: mute
duration-seconds: 300
severity-3:
type: mute
duration-seconds: 3600
consent:
opt-out-mode: disable-voice
message: Voice chat may be transcribed for moderation. Audio is not stored.
capture:
vad:
rms-threshold: 450
hangover-ms: 600
minimum-utterance-ms: 250
maximum-utterance-ms: 8000
license:
key: 'YOUR-LICENCE-KEY'
For embedded mode, replace the processor block with the embedded one from
engine modes.
Beyond this reference
The generated file also carries advanced timing and queue settings that the panel does not offer and that almost nobody should change — connection timeouts, queue capacities, the embedded model directory. They are commented in the file itself. This page documents the settings a server owner is expected to set; if a setting is not here, its shipped default is the answer.