Skip to main content
The meeting bot is a standalone service in 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:
Copy everything after the version tag — that full path is your PUPPETEER_EXECUTABLE_PATH.
On Apple Silicon the path contains mac_arm-.... On Intel Mac it will be mac-.... On Linux it will end in a plain chrome binary.

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)

AGENT_TOKEN must match the value set in apps/backend/.env. It authenticates the meeting bot when calling backend endpoints.

Deepgram API key

  1. Sign up at deepgram.com
  2. Create a new project and generate an API key
  3. Paste it into DEEPGRAM_API_KEY

Zoom OAuth credentials

  1. Go to marketplace.zoom.us and create an OAuth app
  2. Copy the Client ID and Client Secret
  3. Set ZOOM_CLIENT_ID and ZOOM_CLIENT_SECRET in .env

Start the development server

The service starts at http://localhost:8000.

Useful commands


Troubleshooting

  • Ensure PLATFORM is set correctly (mac, google_meet, zoom, teams)
  • Verify PUPPETEER_EXECUTABLE_PATH points to the Chrome binary installed above
  • Re-run npx @puppeteer/browsers install chrome@139.0.7258.68 if the binary is missing
  • On Linux, you may need additional system dependencies for headless Chrome
  • Verify DEEPGRAM_API_KEY is valid and has transcription permissions - Check the meeting bot logs for Deepgram connection errors
  • Confirm BACKEND_URL=http://localhost:3001 and that the backend is running
  • Verify AGENT_TOKEN matches the value in apps/backend/.env