Skip to content

Configuration

FlagDefaultDescription
--artifact=path|base64pathAudio delivery mode
--output-dir=<path><tmpdir>/voice-soundboard/Output directory
--backend=mock|http|pythonmockBackend selection
--ambientoffEnable inner-monologue system
--max-concurrent=<n>3Max concurrent synthesis requests
--timeout=<ms>60000Per-request timeout
--retention-minutes=<n>240Auto-cleanup age (0 to disable)

All CLI flags have equivalent environment variables. Environment variables are lower precedence than CLI flags.

VariableDefaultDescription
VOICE_SOUNDBOARD_BACKENDmockSame as --backend
VOICE_SOUNDBOARD_TTS_URLHTTP backend URL
VOICE_SOUNDBOARD_TTS_TOKENHTTP backend auth token
VOICE_SOUNDBOARD_OUTPUT_DIROS temp dirSame as --output-dir
VOICE_SOUNDBOARD_AMBIENT_ENABLED0Set to 1 to enable ambient mode
VOICE_SOUNDBOARD_TIMEOUT60000Same as --timeout
VOICE_SOUNDBOARD_MAX_CONCURRENT3Same as --max-concurrent
VOICE_SOUNDBOARD_PYTHONpythonPython command for python backend
VOICE_SOUNDBOARD_PYTHON_MODULEPython bridge module path
PORTSet to enable HTTP transport mode (for remote deployment)

Mock (default) — Built-in backend that generates silent WAV files. Zero setup, useful for development and testing.

HTTP proxy — Forward synthesis requests to an external TTS API. Set --backend=http and the VOICE_SOUNDBOARD_TTS_URL environment variable.

Python bridge — Connect to a Python-based TTS engine (Kokoro, Coqui, etc.) via a bridge process. Set --backend=python. The server auto-detects Python availability when no explicit backend is set.

Built-in safety features that cannot be disabled:

  • Rate limiting — Sliding window rate limiter per tool
  • Concurrency semaphore — Controls max concurrent synthesis requests
  • Request timeouts — Per-request timeout with configurable duration
  • Path traversal protection — Output directory sandboxing
  • Secret redaction — PII and secret patterns are redacted from inner monologue output

No telemetry. This tool collects no usage data, sends no analytics, and makes no network requests except to the TTS backend you configure. All processing is local.