voicegw.yaml using ${VAR_NAME} syntax.
VoiceGateway variables
Cloud ingest variables
These variables configure the agent-side remote sink that pushes telemetry to VoiceGateway Cloud (or a self-hosted collector):
Set all three in the agent’s environment.
attach() reads them automatically. The project= argument in your attach(target, project="...") call always takes precedence over VOICEGW_PROJECT. See Hosted quickstart for the full setup flow.
Provider API keys
Each cloud provider reads its API key from a standard environment variable. Reference these invoicegw.yaml via ${VAR_NAME} substitution.
How substitution works
Any string value invoicegw.yaml can reference an environment variable with ${VAR_NAME}:
os.environ. Substitution works recursively through all dicts and lists. If a variable is not set, it resolves to an empty string.
Setting environment variables
Shell export
.env file
VoiceGateway does not load .env files automatically. Use direnv or a similar tool if you prefer file-based management:
Docker
docker-compose.yml:
Config discovery order
WhenVOICEGW_CONFIG is not set, VoiceGateway searches for config in this order:
./voicegw.yaml~/.config/voicegateway/voicegw.yaml/etc/voicegateway/voicegw.yaml
voicegw init writes to the second path by default.
See voicegw.yaml reference for all config keys. See Providers for per-provider credential blocks.