Requirements
- A realtime voice provider plugin (e.g.
@wednesdayai/voice-openai) - A channel with voice support (currently: Discord voice channels)
Quick start
1
Install a voice provider plugin
2
Configure the provider
3
Enable voice on a channel
4
Restart the gateway
Configuration reference
Session observability
Active voice sessions are observable three ways, no restart needed:- Status RPC —
talk.realtime.status(requires theoperator.readscope) returns every active gateway-relay session with provider, owning connection, start time, duration, and audio bytes in/out. - Relay events — the gateway broadcasts
talk.realtime.relayevents to the owning connection:ready,transcript(user/assistant, partial or final),toolCall,vadBargeIn,clear,mark,audio,error, andclosewith a close reason. - Gateway logs — the
gateway/talk-realtime-relaysubsystem logs each relay session end with its id, duration, close reason, and audio byte counts (journalctl --user -u openclaw-gatewayon Linux).
Troubleshooting
Runopenclaw doctor --check voice to diagnose configuration issues.