Model ID format
Every model is identified by aprovider/model string:
attach()/guard() wraps a plugin, VoiceGateway reads its provider and model attributes off the live instance (f"{provider}/{model}") and passes that straight to voice-prices. Nothing is parsed or stripped from it.
Registering custom model aliases
Register aliases undermodels in voicegw.yaml. Aliases surface in the dashboard and CLI as friendlier names; they group models by modality with an optional default_voice for TTS entries.
Models can also be registered through the dashboard or, if
voicegw mcp is running, through MCP tool calls from your IDE. Dashboard/MCP-registered models persist in SQLite and merge with YAML at startup (a YAML entry with the same id wins).
Model reference
STT
LLM
TTS
Stacks
A stack is a named bundle mapping one name to an STT, LLM, and TTS model id: exactly those three keys, nothing else.default_stack: premium (see Projects).
A stack is a dashboard and documentation hint only. Nothing reads
default_stack at runtime to construct a provider. Pick the model ids from your chosen stack and pass them to your framework’s native provider constructors yourself, then wrap with attach()/guard():See Projects for
default_stack and budget configuration.
See attach() for wiring native providers so cost tracking sees them.
See voicegw.yaml reference for the full config file shape.