Components, hooks and template apps for building React voice AI applications quickly. Designed to support and accelerate Pipecat AI development.
-
π¬ Debug console β Flexible, modular console UI to test and benchmark your Pipecat apps
-
π Components β Construct your own UIs with building blocks for voice, video, and real-time AI interactions
-
π Drop-in templates β Fully-featured, configurable UIs for developing and showcasing Pipecat apps
-
π Fully customizable β Built on Tailwind 4 and styled with CSS variables. Extend the built-in theme or bring your own
-
π± Responsive design β Optimized for desktop, tablet, and mobile devices
-
β Example apps β Real-world implementations demonstrating best practices
npm i @pipecat-ai/voice-ui-kit @pipecat-ai/client-js @pipecat-ai/client-reactYou will also have to install one of the supported transport packages
npm i @pipecat-ai/daily-transport # or npm i @pipecat-ai/small-webrtc-transportOptional - install recommended fonts for default theme:
npm i @fontsource-variable/geist @fontsource-variable/geist-monoInstall and build workspace dependencies:
pnpm i pnpm buildLaunch the Storybook:
pnpm run devInstall and build workspace dependencies:
pnpm i pnpm buildNavigate to example directory to run the example:
cd examples/01-console pnpm i pnpm dev// Optional: recommended fonts import '@fontsource-variable/geist'; import '@fontsource-variable/geist-mono'; // Styles import '@pipecat-ai/voice-ui-kit/styles'; import { ConsoleTemplate, ThemeProvider } from '@pipecat-ai/voice-ui-kit'; // Render Console template in full screen container export default function App() { return ( <ThemeProvider> <div className="w-full h-dvh bg-background"> <ConsoleTemplate transportType="smallwebrtc" connectParams={{ webrtcUrl: '/api/offer', }} /> </div> </ThemeProvider> ); }import { ConnectButton, ControlBar, ErrorCard, FullScreenContainer, PipecatAppBase, SpinLoader, VoiceVisualizer, UserAudioControl type PipecatBaseChildProps, } from "@pipecat-ai/voice-ui-kit"; export default function Home() { return ( <FullScreenContainer> <PipecatAppBase transportType="smallwebrtc" connectParams={{ webrtcUrl: "/api/offer", }} > {({ client: handleConnect, handleDisconnect, error, }: PipecatBaseChildProps) => loading ? ( <SpinLoader /> ) : error ? ( <ErrorCard error={error} /> ) : ( <> <VoiceVisualizer participantType="bot" /> <ControlBar> <UserAudioControl /> <ConnectButton onConnect={handleConnect} onDisconnect={handleDisconnect} /> </ControlBar> </> ) } </PipecatAppBase> </FullScreenContainer> ); }π Documentation
Examples:
This project uses Conventional Commits enforced by Husky + commitlint, and Release Please for automated releases. See AGENTS.md for the full development workflow, commit guidelines, and release process.
