apps/meeting-bot that joins video calls, transcribes audio via Deepgram, and streams results to the AI agents service.
Prerequisites
- Repo cloned and dependencies installed (
bun install) - Backend running at
http://localhost:3001 - AI agents service running at
http://localhost:8080(optional, for agent routing)
Install Chrome for Puppeteer
The meeting bot uses Puppeteer to control a real Chrome browser to join meetings. Install the required Chrome version:Get the executable path
After the install completes, the CLI prints the binary path:PUPPETEER_EXECUTABLE_PATH.
Environment variables
Copy the example file:Bot & platform
Transcription
Storage (AWS S3)
Backend connection
Zoom OAuth
Browser
Analytics & tracing (optional)
Fly.io (production deploy only)
Deepgram API key
- Sign up at deepgram.com
- Create a new project and generate an API key
- Paste it into
DEEPGRAM_API_KEY
Zoom OAuth credentials
- Go to marketplace.zoom.us and create an OAuth app
- Copy the Client ID and Client Secret
- Set
ZOOM_CLIENT_IDandZOOM_CLIENT_SECRETin.env
Start the development server
Useful commands
Troubleshooting
Bot can't join meeting
Bot can't join meeting
- Ensure
PLATFORMis set correctly (mac,google_meet,zoom,teams) - Verify
PUPPETEER_EXECUTABLE_PATHpoints to the Chrome binary installed above - Re-run
npx @puppeteer/browsers install chrome@139.0.7258.68if the binary is missing - On Linux, you may need additional system dependencies for headless Chrome
Transcription not working
Transcription not working
- Verify
DEEPGRAM_API_KEYis valid and has transcription permissions - Check the meeting bot logs for Deepgram connection errors
Can't connect to backend
Can't connect to backend
- Confirm
BACKEND_URL=http://localhost:3001and that the backend is running - Verify
AGENT_TOKENmatches the value inapps/backend/.env
Port already in use
Port already in use