A complete starter project for building voice AI apps with LiveKit Agents for Node.js and LiveKit Cloud.
The starter project includes:
- A simple voice AI assistant, ready for extension and customization
- A voice AI pipeline built on LiveKit Inference with models from OpenAI, Cartesia, and Deepgram. More than 50 other model providers are supported, including Realtime models
- Eval suite based on the LiveKit Agents testing & evaluation framework
- LiveKit Turn Detector for contextually-aware speaker detection, with multilingual support
- Background voice cancellation
- Deep ession insights from LiveKit Agent Observability
- A Dockerfile ready for production deployment to LiveKit Cloud
This starter app is compatible with any custom web/mobile frontend or telephony.
This project is designed to work with coding agents like Claude Code, Cursor, and Codex.
For your convenience, LiveKit offers both a CLI and an MCP server that can be used to browse and search its documentation. The LiveKit CLI (lk docs) works with any coding agent that can run shell commands. Install it for your platform:
macOS:
brew install livekit-cliLinux:
curl -sSL https://get.livekit.io/cli | bashWindows:
winget install LiveKit.LiveKitCLIThe lk docs subcommand requires version 2.15.0 or higher. Check your version with lk --version and update if needed. Once installed, your coding agent can search and browse LiveKit documentation directly from the terminal:
lk docs search "voice agents"
lk docs get-page /agents/start/voice-ai-quickstartSee the Coding agent support guide for more details, including MCP server setup.
The project includes a complete AGENTS.md file for these assistants. You can modify this file to suit your needs. To learn more about this file, see https://agents.md.
Create a project from this template with the LiveKit CLI (recommended):
lk cloud auth
lk agent init my-agent --template agent-starter-nodeThe CLI clones the template and configures your environment. Then follow the rest of this guide from Run the agent.
This project uses pnpm as the package manager.
Alternative: Manual setup without the CLI
Clone the repository and install dependencies:
cd agent-starter-node
pnpm installSign up for LiveKit Cloud then set up the environment by copying .env.example to .env.local and filling in the required keys:
LIVEKIT_URLLIVEKIT_API_KEYLIVEKIT_API_SECRET
You can load the LiveKit environment automatically using the LiveKit CLI:
lk cloud auth
lk app env -w -d .env.localBefore your first run, you must download certain models such as Silero VAD and the LiveKit turn detector:
pnpm run download-filesTo run the agent during development, use the dev command:
pnpm run devIn production, use the start command:
pnpm run startGet started quickly with our pre-built frontend starter apps, or add telephony support:
| Platform | Link | Description |
|---|---|---|
| Web | livekit-examples/agent-starter-react |
Web voice AI assistant with React & Next.js |
| iOS/macOS | livekit-examples/agent-starter-swift |
Native iOS, macOS, and visionOS voice AI assistant |
| Flutter | livekit-examples/agent-starter-flutter |
Cross-platform voice AI assistant app |
| React Native | livekit-examples/voice-assistant-react-native |
Native mobile app with React Native & Expo |
| Android | livekit-examples/agent-starter-android |
Native Android app with Kotlin & Jetpack Compose |
| Web Embed | livekit-examples/agent-starter-embed |
Voice AI widget for any website |
| Telephony | Documentation | Add inbound or outbound calling to your agent |
For advanced customization, see the complete frontend guide.
Once you've started your own project based on this repo, you should:
-
Check in your
pnpm-lock.yaml: This file is currently untracked for the template, but you should commit it to your repository for reproducible builds and proper configuration management. (The same applies tolivekit.toml, if you run your agents in LiveKit Cloud) -
Remove the git tracking test: Delete the "Check files not tracked in git" step from
.github/workflows/tests.ymlsince you'll now want this file to be tracked. These are just there for development purposes in the template repo itself.
This project is production-ready and includes a working Dockerfile. To deploy it to LiveKit Cloud or another environment, see the deploying to production guide.
You can also self-host LiveKit instead of using LiveKit Cloud. See the self-hosting guide for more information. If you choose to self-host, you'll need to also use model plugins instead of LiveKit Inference and will need to remove the LiveKit Cloud noise cancellation plugin.
This project is licensed under the MIT License - see the LICENSE file for details.