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.
PipecatClient
required
A singleton instance of
PipecatClientboolean
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 itselfJotaiStore
Override 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.
PipecatClientVideo
Creates a new<video> element that renders either the bot or local participant’s video track.
('local' | 'bot')
required
Defines which participant’s video track is rendered
('video' | 'screenVideo')
Which of the participant’s video tracks to render. Default: ‘video’. Use
‘screenVideo’ to render a screen share
('contain' | 'cover')
Defines whether the video should be fully contained or cover the box. Default:
‘contain’
boolean
Forces the video to be mirrored, if set
function
Triggered whenever the video’s rendered width or height changes
PipecatClientCamToggle
A headless component to read and set the local participant’s camera state.function
Triggered whenever the local participant’s camera state changes
boolean
If true, the component will not allow toggling the camera state. Default:
false
function
A render prop that provides state and handlers to the children
PipecatClientMicToggle
A headless component to read and set the local participant’s microphone state.function
Triggered whenever the local participant’s microphone state changes
boolean
If true, the component will not allow toggling the microphone state. Default:
false
function
A render prop that provides state and handlers to the children
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
boolean
If true, the component will not allow toggling the screen share state.
Default: false
function
A render prop that provides state and handlers to the children
Starting a screen share opens the browser’s own picker, so it must run from a
user gesture — 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.
'local' | 'bot'
required
The participant type to visualize audio for
string
The background color of the canvas. Default: ‘transparent’
string
The color of the audio level bars. Default: ‘black’
number
The number of bars to display. Default: 5
number
The gap between bars in pixels. Default: 12
number
The width of each bar in pixels. Default: 30
('round' | 'square')
The shape of each bar’s ends. Default: ‘round’
('top' | 'bottom' | 'center')
Where each bar grows from. Default: ‘center’
number
The maximum height at full volume of each bar in pixels. Default: 120