Vite (Javascript)
Learn how to create a web application that enables voice conversations with ElevenLabs AI agents
This tutorial will guide you through creating a web client that can interact with a Conversational AI agent. You’ll learn how to implement real-time voice conversations, allowing users to speak with an AI agent that can listen, understand, and respond naturally using voice synthesis.
Looking to build with React/Next.js? Check out our Next.js guide
What You’ll Need
- An ElevenLabs agent created following this guide
npm
installed on your local system- Basic knowledge of JavaScript
Looking for a complete example? Check out our Vanilla JS demo on GitHub.
Project Setup
Implementing the Voice Chat Interface
'YOUR_AGENT_ID'
with your actual agent ID from ElevenLabs.(Optional) Authenticate with a Signed URL
This authentication step is only required for private agents. If you’re using a public agent, you can skip this section and directly use the agentId
in the startSession
call.
Create Environment Variables
Create a .env
file in your project root:
Make sure to add .env
to your .gitignore
file to prevent accidentally committing sensitive credentials.
Update the Client Code
Modify your script.js
to fetch and use the signed URL:
Signed URLs expire after a short period. However, any conversations initiated before expiration will continue uninterrupted. In a production environment, implement proper error handling and URL refresh logic for starting new conversations.
Next Steps
Now that you have a basic implementation, you can:
- Add visual feedback for voice activity
- Implement error handling and retry logic
- Add a chat history display
- Customize the UI to match your brand
For more advanced features and customization options, check out the @11labs/client package.