Config
The common Chrome agent path only needs the plugin enabled, BlackHole, SoX, a realtime provider key, and a configured OpenClaw TTS provider:Defaults
chrome.audioBridgeCommand and chrome.audioBridgeHealthCommand let an external bridge own the whole local audio path instead of chrome.audioInputCommand/chrome.audioOutputCommand; see Notes for the constraint on which mode can use them.
An openclaw doctor --fix migration exists for the legacy realtime.provider: "google" shape: it moves that intent to realtime.voiceProvider: "google" plus realtime.transcriptionProvider: "openai" when those fields are not already set.
Optional overrides
tts.providers.elevenlabs.speakerVoiceId. Agent replies can also use per-reply [[tts:speakerVoiceId=... model=eleven_v3]] directives when TTS model overrides are enabled, but config is the deterministic default for meetings. On join, logs show transcriptionProvider=elevenlabs, and each spoken reply logs provider=elevenlabs model=eleven_v3 speakerVoiceId=<voiceId>.
Twilio-only config:
voiceCall.enabled: true (the default) and Twilio transport, Voice Call places the DTMF sequence before opening the realtime media stream, then uses the saved intro text as the initial realtime greeting. If voice-call is not enabled, Google Meet can still validate and record the dial plan but cannot place the Twilio call.
Leave voiceCall.gatewayUrl unset to use the local trusted Gateway runtime, which preserves the
invoking agent for the full call. A configured Gateway URL remains an explicit WebSocket target and
cannot authenticate plugin provenance; non-default agent joins fail closed instead of silently
using another agent. Run Google Meet and Voice Call in the same Gateway process when per-agent
routing is required.