Self-hosted meeting intelligence platform
bots • real-time transcription • storage • API • user interface
Google Meet
•
Microsoft Teams
•
Zoom (soon)
What’s new • Quickstart • API • Roadmap • Discord
Vexa is an open-source, self-hostable API for real-time meeting transcription. It automatically joins Google Meet and Microsoft Teams meetings, captures audio, and provides real-time transcriptions via REST API and WebSocket.
| Capability | What it means |
|---|---|
| Meeting bots | Automatically joins Google Meet + Microsoft Teams meetings |
| Real-time transcription | Sub-second transcript delivery during the call |
| Multilingual | 100+ languages via Whisper (transcription + translation) |
| API-first | REST API + WebSocket streaming for integrations |
| Storage | Persist transcripts + meeting metadata in your database |
| Multi-user | Team-ready: users, API keys/tokens, admin operations |
| Self-hostable | Run on your infra for complete data sovereignty |
| User interfaces | Open-source frontends (currently: Vexa Dashboard) |
| You are... | You want... |
|---|---|
| Enterprises | Self-hosted transcription with strict privacy requirements |
| Small & medium teams | Simple deployment (Vexa Lite) with an open-source UI |
| Developers | Build meeting products (assistants, automations, analytics) on top of the API |
| Automation builders | Integrate with tools like n8n via webhooks / APIs |
Build powerful meeting assistants (like Otter.ai, Fireflies.ai, Fathom) for your startup, internal use, or custom integrations.
The Vexa API provides powerful abstractions and a clear separation of concerns, enabling you to build sophisticated applications on top with a safe and enjoyable coding experience.
Vexa is open-source and self-hostable — ideal for regulated industries and teams that cannot compromise on privacy.
Modular architecture scales from edge devices to millions of users. You choose what to self-host and what to use as a service.
You control everything:
1. Full self-hosting
Run Vexa, database, and transcription service entirely on your infrastructure
For regulated industries like fintech, medical, etc.
2. GPU-free self-hosting
Self-host Vexa, but plug into external transcription service
Perfect privacy with minimal DevOps
3. Fully hosted service
At vexa.ai — just grab API key
Ready to integrate
- Vexa Lite: run Vexa as a single Docker container (
vexaai/vexa-lite:latest) - Optional external transcription: point Lite to an external service to avoid GPU requirements
- Stateless by design: all state lives in your DB → easy redeploy/scale
- Serverless-friendly: minimal footprint, fewer moving parts, faster deployments
See full release notes: https://github.com/Vexa-ai/vexa/releases
Just grab your API key at https://vexa.ai/dashboard/api-keys and start using the service immediately.
Self-hosted, multiuser service for teams. Run as a single Docker container for easy deployment.
Vexa Lite is a single-container deployment perfect for teams who want:
- Self-hosted multiuser service - Multiple users, API tokens, and team management
- Quick deployment on any platform - Single container, easy to deploy
- No GPU required - Transcription runs externally
- Choose your frontend - Pick from open-source user interfaces like Vexa Dashboard
- Production-ready - Stateless, scalable, serverless-friendly
Quick start:
docker run -d \
--name vexa \
-p 8056:8056 \
-e DATABASE_URL="postgresql://user:pass@host/vexa" \
-e ADMIN_API_TOKEN="your-admin-token" \
-e TRANSCRIBER_URL="https://transcription.service" \
-e TRANSCRIBER_API_KEY="transcriber-token" \
vexaai/vexa-lite:latestDeployment options:
- 🚀 One-click platform deployments: vexa-lite-deploy repository
- ✅ Fly.io - Implemented
- 🚧 Railway, Render, etc. - To be added (contribute by adding your platform of choice!)
- 📖 Complete setup guide: Vexa Lite Deployment Guide - All 4 configurations (local/remote database, local/remote transcription)
- 🎨 Frontend options: Choose from open-source user interfaces like Vexa Dashboard
Full stack deployment with all services. Perfect for development and testing.
All services are saved in docker-compose.yml and wrapped in a Makefile for convenience:
git clone https://github.com/Vexa-ai/vexa.git
cd vexa
make all # CPU by default (Whisper tiny) — good for development
# For GPU:
# make all TARGET=gpu # (Whisper medium) — recommended for production qualityWhat make all does:
- Builds all Docker images
- Spins up all containers (API, bots, transcription services, database)
- Runs database migrations
- Starts a simple test to verify everything works
- Full guide: docs/deployment.md
For enterprise orchestration platforms, contact vexa.ai
API_HOST for hosted version is https://api.cloud.vexa.ai
API_HOST for self-hosted lite container is http://localhost:8056
API_HOST for self-hosted full stack (default) is http://localhost:18056
curl -X POST https://<API_HOST>/bots \
-H "Content-Type: application/json" \
-H "X-API-Key: <API_KEY>" \
-d '{
"platform": "teams",
"native_meeting_id": "<NUMERIC_MEETING_ID>",
"passcode": "<MEETING_PASSCODE>"
}'curl -X POST https://<API_HOST>/bots \
-H "Content-Type: application/json" \
-H "X-API-Key: <API_KEY>" \
-d '{
"platform": "google_meet",
"native_meeting_id": "abc-defg-hij"
}'curl -H "X-API-Key: <API_KEY>" \
"https://<API_HOST>/transcripts/<platform>/<native_meeting_id>"For real-time streaming (sub‑second), see the WebSocket guide. For full REST details, see the User API Guide.
Note: Meeting IDs are user-provided (Google Meet code like xxx-xxxx-xxx or Teams numeric ID and passcode). Vexa does not generate meeting IDs.
- Enterprises (self-host): Data sovereignty and control on your infra
- Teams using hosted API: Fastest path from meeting to transcript
- n8n/indie builders: Low-code automations powered by real-time transcripts
- Zoom support (coming soon)
For issues and progress, join our Discord.
- api-gateway: Routes API requests to appropriate services
- mcp: Provides MCP-capable agents with Vexa as a toolkit
- bot-manager: Handles bot lifecycle management
- vexa-bot: The bot that joins meetings and captures audio
- WhisperLive: Real-time audio transcription service (uses transcription-service as backend in remote mode)
- transcription-service: Basic transcription service (WhisperLive uses it as a real-time wrapper)
- transcription-collector: Processes and stores transcription segments
- Database models: Data structures for storing meeting information
💫 If you're building with Vexa, we'd love your support! Star our repo to help us reach 2000 stars.
- Real-time multilingual transcription supporting 100 languages with Whisper
- Real-time translation across all 100 supported languages
- Google Meet integration - Automatically join and transcribe Google Meet calls
- Microsoft Teams integration - Automatically join and transcribe Teams meetings
- REST API - Complete API for managing bots, users, and transcripts
- WebSocket streaming - Sub-second transcript delivery via WebSocket
- Multiuser support - User management, API tokens, and team features
- Self-hostable - Full control over your data and infrastructure
- Open-source frontends - Choose from user interfaces like Vexa Dashboard
Deployment & Management Guides:
- Local Deployment and Testing Guide
- Self-Hosted Management Guide - Managing users and API tokens
- Vexa Lite Deployment Guide - Single container deployment
Vexa is part of an ecosystem of open-source tools:
100% open-source web interface for Vexa. Join meetings, view transcripts, manage users, and more. Self-host everything with no cloud dependencies.
Contributors are welcome! Join our community and help shape Vexa's future. Here's how to get involved:
-
Understand Our Direction:
-
Engage on Discord (Discord Community):
- Introduce Yourself: Start by saying hello in the introductions channel.
- Stay Informed: Check the Discord channel for known issues, feature requests, and ongoing discussions. Issues actively being discussed often have dedicated channels.
- Discuss Ideas: Share your feature requests, report bugs, and participate in conversations about a specific issue you're interested in delivering.
- Get Assigned: If you feel ready to contribute, discuss the issue you'd like to work on and ask to get assigned on Discord.
-
Development Process:
- Browse available tasks (often linked from Discord discussions or the roadmap).
- Request task assignment through Discord if not already assigned.
- Submit pull requests for review.
- Critical Tasks & Bounties:
- Selected high-priority tasks may be marked with bounties.
- Bounties are sponsored by the Vexa core team.
- Check task descriptions (often on the roadmap or Discord) for bounty details and requirements.
We look forward to your contributions!
We ❤️ contributions. Join our Discord and open issues/PRs. Licensed under Apache-2.0 — see LICENSE.
This is the main Vexa repository containing the core API and services. For related projects:
- vexa-lite-deploy - Deployment configurations for Vexa Lite
- Vexa-Dashboard - Web UI for managing Vexa instances (first in a planned series of UI applications)
The Vexa name and logo are trademarks of Vexa.ai Inc.