React Native SDK
ElevenAgents SDK: deploy customized, interactive voice agents in minutes for React Native apps.
Refer to the ElevenAgents overview for an explanation of how ElevenAgents works.
Installation
Install the package and its dependencies in your React Native project.
An example app using this SDK with Expo can be found here
Upgrading from an earlier version? Run npx skills add elevenlabs/packages to install the
elevenlabs:sdk-migration skill for your AI coding agent, which automates import changes,
ConversationProvider wrapping, and API updates.
Requirements
- React Native with LiveKit dependencies
- Microphone permissions configured for your platform
- Expo compatibility (development builds only)
This SDK was designed and built for use with the Expo framework. Due to its dependency on LiveKit’s WebRTC implementation, it requires development builds and cannot be used with Expo Go.
Setup
Provider Setup
Wrap your app with the ConversationProvider to enable ElevenAgents functionality.
@elevenlabs/react-native re-exports ConversationProvider and all hooks from
@elevenlabs/react. The API is identical to the web React SDK — see the React SDK
documentation for the full API reference.
Usage
All hooks from the React SDK are available via @elevenlabs/react-native:
useConversation— convenience hook combining all state and methodsuseConversationControls— action methods (startSession, endSession, etc.)useConversationStatus— connection statususeConversationInput— mute stateuseConversationMode— speaking/listening stateuseConversationFeedback— feedback availability and submissionuseConversationClientTool— dynamic client tool registrationuseRawConversation— raw conversation instance
Starting a conversation
For private agents, authentication, client tools, overrides, and all other features, see the React SDK documentation.
Example Implementation
Here’s a complete example of a React Native component using the ElevenLabs Agents SDK:
Platform-Specific Considerations
iOS
Ensure microphone permissions are properly configured in your Info.plist:
Android
Add microphone permissions to your android/app/src/main/AndroidManifest.xml:
Consider requesting runtime permissions before starting a conversation: