The Pipecat client React Native Transport library exports a RNDailyTransport that has the Daily transport associated.
To connect to a bot, you will need both this SDK and the @pipecat-client/client-js to create an RTVIClient.
This package introduces some constraints on what OS/SDK versions your project can support:
- iOS: Deployment target >= 13
- Android:
minSdkVersion>= 24
Install @pipecat-ai/react-native-daily-transport along with its peer dependencies:
npm i @pipecat-ai/react-native-daily-transport
npm i @daily-co/react-native-daily-js@^0.81.0
npm i @daily-co/react-native-webrtc@^124.0.6-daily.1
npm i @react-native-async-storage/async-storage@^1.24.0
npm i react-native-background-timer@^2.4.1
npm i react-native-get-random-values@^1.11.0If you are using Expo, you will also need to add the following dependencies:
npm i @daily-co/config-plugin-rn-daily-js@0.0.10All the details about Expo can be found here.
A full demo can be found here
Instantiate an RTVIClient instance, wire up the bot's audio, and start the conversation:
let pipecatClient = new PipecatClient({
transport: new RNDailyTransport(),
enableMic: true,
enableCam: false,
callbacks: {
onConnected: () => {
setInCall(true);
},
onDisconnected: () => {
setInCall(false);
},
onTransportStateChanged: (state) => {
console.log(`Transport state changed: ${state}`);
setCurrentState(state);
},
onError: (error) => {
console.log('Error:', JSON.stringify(error));
},
},
});
await client?.startBotAndConnect({
endpoint: baseUrl + '/start',
});Note: To enable screen sharing on iOS, follow the instructions in the Daily Framework RN Screen Share extension.
Pipecat Client React Native implements a client instance that:
- Facilitates requests to an endpoint you create.
- Dispatches single-turn actions to a HTTP bot service when disconnected.
- Provides methods that handle the connectivity state and realtime interaction with your bot service.
- Manages media transport (such as audio and video).
- Provides callbacks and events for handling bot messages and actions.
- Optionally configures your AI services and pipeline.
Docs and API reference can be found at https://docs.pipecat.ai/client/introduction.
We welcome contributions from the community! Whether you're fixing bugs, improving documentation, or adding new features, here's how you can help:
- Found a bug? Open an issue
- Have a feature idea? Start a discussion
- Want to contribute code? Check our CONTRIBUTING.md guide
- Documentation improvements? Docs PRs are always welcome
Before submitting a pull request, please check existing issues and PRs to avoid duplicates.
We aim to review all contributions promptly and provide constructive feedback to help get your changes merged.
