How UI Worker Protocol (v1) works
mainThe UI Worker Protocol (v1) allows a server-side Pipecat worker to observe and drive your React application using a structured wire format.
Key features include:
useUISnapshot(): Streams accessibility snapshots so the server knows what is on the screen.UIJobGroupsProvider: Subscribes toui-job-groupenvelopes for long-running, fan-out tasks, providing per-worker progress and cancellation.- Command Handlers: Use
useUICommandHandlerto register custom app-specific commands (e.g.,toast) anduseDefaultScrollToHandler,useDefaultHighlightHandler, etc., to opt-in to standard DOM interactions driven by the server. - Form Controls: Follows standard semantics (e.g.,
set_input_valuefor inputs/selects,clickfor checkboxes/radios).
import { PipecatClient } from "@pipecat-ai/client-js";
import {
PipecatClientProvider,
UIJobGroupsProvider,
useUISnapshot,
useDefaultScrollToHandler,
useDefaultHighlightHandler,
useUICommandHandler,
} from "@pipecat-ai/client-react";
const client = new PipecatClient({ transport: myTransport });
function App() {
useUISnapshot();
useDefaultScrollToHandler();
useDefaultHighlightHandler();
useUICommandHandler("toast", (payload) => showToast(payload));
return <YourApp />;
}
render(
<PipecatClientProvider client={client}>
<UIJobGroupsProvider>
<App />
</UIJobGroupsProvider>
</PipecatClientProvider>
);