PipecatClientProvider
The root component for providing Pipecat client context to your application. It also includes built-in conversation state management, so any descendant component can use theusePipecatConversation hook to access messages without adding a separate provider.
Call
client.initDevices() when the provider mounts, if the client still
needs it. Default: false, so nothing requests device permissions before the
user does something deliberate. Set it true when consent is already handled
elsewhere, such as a “join” button that initializes devices itselfOverride the default Jotai store. Relevant for apps already using Jotai, or
running more than one client
PipecatClientAudio
Creates a new<audio> element that mounts the bot’s audio track. To render your own <audio> element instead, use usePipecatClientAudioElement.
PipecatClientVideo
Creates a new<video> element that renders either the bot or local participant’s video track.
Which of the participant’s video tracks to render. Default: ‘video’. Use
‘screenVideo’ to render a screen share
Defines whether the video should be fully contained or cover the box. Default:
‘contain’
<video> attributes and a ref are passed through to the underlying element.
PipecatClientCamToggle
A headless component to read and set the local participant’s camera state.Triggered when this toggle’s
onClick changes the camera state, with the new
value. Changes made elsewhere don’t trigger it.PipecatClientMicToggle
A headless component to read and set the local participant’s microphone state.Triggered when this toggle’s
onClick changes the microphone state, with the
new value. Changes made elsewhere don’t trigger it.PipecatClientScreenShareToggle
A headless component to read and set the local participant’s screen share state.Triggered whenever the local participant’s screen share state changes
Starting a screen share opens the browser’s own picker, so it must run from a
user gesture, such as a click handler as above. Render the shared surface with
PipecatClientVideo using trackType="screenVideo".VoiceVisualizer
Renders a visual representation of audio input levels on a<canvas> element.
UIJobGroupsProvider
Collects the bot’s UI job groups foruseUIJobGroups. Place it inside PipecatClientProvider.