Skip to main content
Chrome, Chrome node, and Twilio transports, the Parallels macOS VM topology, and the host audio tools they need. Part of the Google Meet plugin guide.

Local Gateway + Parallels Chrome

A full Gateway or model API key is not required inside a macOS VM just to give it Chrome. Run the Gateway and agent locally; run a node host in the VM. Install VM dependencies, reboot, verify:
Install the plugin in the VM, where it is enabled by default, and start the node host:
If <gateway-host> is a LAN IP without TLS, opt in for that trusted private network:
Use the same flag when installing as a LaunchAgent (it is process environment, stored in the LaunchAgent environment when present on the install command, not an openclaw.json setting):
Approve the node from the Gateway host, then confirm it advertises both googlemeet.chrome and browser capability/browser.proxy:
Route Meet through that node:
Now join normally from the Gateway host:
For a one-command smoke test that creates or reuses a session, speaks a known phrase, and prints session health:
During realtime join, browser automation fills the guest name, clicks Join/Ask to join, and accepts Meet’s first-run “Use microphone” prompt when it appears (or “Continue without microphone” during observe-only join and browser-only meeting creation). If the profile is signed out, Meet is waiting for host admission, Chrome needs mic/camera permission, or Meet is stuck on an unresolved prompt, the result includes manualAction: { reason, message }. Stop retrying, report that message plus browserUrl/browserTitle, and retry only after the manual action completes. If chromeNode.node is omitted, OpenClaw auto-selects only when exactly one connected node advertises both googlemeet.chrome and browser control; pin chromeNode.node (node id, display name, or remote IP) when several capable nodes are connected.

Common failure checks

Install notes

The Chrome talk-back default uses host audio tools that OpenClaw does not bundle or redistribute:
  • sox: command-line audio utility. The plugin issues explicit CoreAudio device commands for the default 24 kHz PCM16 audio bridge.
  • blackhole-2ch: macOS virtual audio driver providing the BlackHole 2ch device Chrome/Meet route through.
  • pactl, pacat, and parec: Linux PulseAudio utilities used against PipeWire-Pulse to provision and stream through OpenClaw Meeting Audio.
SoX is licensed LGPL-2.0-only AND GPL-2.0-only; BlackHole is GPL-3.0. If you build an installer or appliance that bundles BlackHole with OpenClaw, review BlackHole’s upstream licensing or get a separate license from Existential Audio.

Transports

Chrome

Opens the Meet URL through OpenClaw browser control and joins as the signed-in OpenClaw browser profile. Before launch, the plugin checks or provisions the host’s native virtual-audio backend and then runs any configured audio bridge health/startup command. For local Chrome, pick the profile with browser.defaultProfile; chrome.browserProfile is passed to chrome-node hosts instead.
Chrome mic/speaker audio routes through the local OpenClaw audio bridge. If the native backend is unavailable, the join fails with a setup error instead of joining without an audio path.

Twilio

A strict dial plan delegated to the Voice call plugin. It does not parse Meet pages for phone numbers; Google Meet must expose a phone dial-in number and PIN for the meeting. Enable Voice Call on the Gateway host, not the Chrome node:
Provide Twilio credentials through environment to keep secrets out of openclaw.json:
Use realtime.provider: "openai" with OPENAI_API_KEY instead if OpenAI is the realtime voice provider. Restart or reload the Gateway after enabling voice-call; plugin config changes do not take effect until reload. Verify:
When Twilio delegation is wired, googlemeet setup includes twilio-voice-call-plugin, twilio-voice-call-credentials, and twilio-voice-call-webhook checks.
Use --dtmf-sequence for a custom sequence, with leading w or commas for a pause before the PIN: