Skip to main content
Plugin config defaults, optional overrides, and the ElevenLabs and Twilio config examples. Part of the Google Meet plugin guide.

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

ElevenLabs for both agent-mode listening and speaking:
The persistent Meet voice comes from 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:
With 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.