A Turborepo monorepo containing a voice AI assistant application with multiple components.
This Turborepo includes the following packages/apps:
web: a Next.js web application for the frontendbot-server: a Python-based voice AI assistant using LiveKit Agents and Gemini Live APIdocs: documentation site (Next.js app)@repo/ui: a stub React component library shared by applications@repo/eslint-config:eslintconfigurations (includeseslint-config-nextandeslint-config-prettier)@repo/typescript-config:tsconfig.jsons used throughout the monorepo
- TypeScript for static type checking (JavaScript/TypeScript apps)
- Python for the voice AI backend
- LiveKit Agents for real-time voice processing
- Google Gemini Live API for AI conversations
- ESLint for code linting
- Prettier for code formatting
- Node.js >= 18
- Python >= 3.8
- npm or yarn or pnpm
-
Install Node.js dependencies:
npm install
-
Install Python dependencies for the bot-server:
npm run install-deps
-
Set up environment variables:
cp apps/bot-server/env.example apps/bot-server/.env # Edit the .env file with your API keys
To develop all apps and packages, run the following command:
npm run devTo develop specific apps:
# Web app only
npm run dev --filter=web
# Bot server only
npm run dev --filter=bot-server
# Multiple apps
npm run dev --filter=web --filter=bot-serverTo build all apps and packages:
npm run build# Run tests across all packages
npm run test
# Run linting across all packages
npm run lint
# Run type checking across all packages
npm run check-types
# Format code
npm run formatThe bot-server requires additional setup for the voice AI functionality:
- LiveKit Configuration: Set up your LiveKit server and get API credentials
- Google API Key: Get a Google API key for Gemini Live API access
- Environment Variables: Configure the
.envfile inapps/bot-server/
See apps/bot-server/README.md for detailed setup instructions.
Turborepo can use Remote Caching to share cache artifacts across machines.
To enable Remote Caching:
npx turbo login
npx turbo linkLearn more about the technologies used: