Vexa
Open-source meeting transcription API for Google Meet, Microsoft Teams & Zoom. Auto-join bots, real-time WebSocket transcripts, MCP server for AI agents. Self-host or use hosted SaaS.
Install / Use
/learn @Vexa-ai/VexaQuality Score
Category
Development & EngineeringSupported Platforms
README
What is Vexa?
Vexa is an open-source, self-hostable API for real-time meeting transcription. It automatically joins Google Meet, Microsoft Teams, and Zoom meetings, captures audio, and provides real-time transcriptions via REST API and WebSocket.
At a glance
| Capability | What it means | |---|---| | Meeting bots | Automatically joins Google Meet, Microsoft Teams, and Zoom meetings | | Real-time transcription | Sub-second transcript delivery during the call | | Interactive bots | Make bots speak, send/read chat, share screen content, and set avatar in live meetings | | Multilingual | 100+ languages via Whisper (transcription + translation) | | API-first | REST API + WebSocket streaming for integrations | | MCP-ready | Connect AI agents (Claude/Cursor/etc.) through the MCP server | | 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) |
Who it's for
| 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 on Top. In Hours, Not Months
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.
🛡️ Built for Data Sovereignty
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
<small style="color: #999;">For regulated industries like fintech, medical, etc.</small>
2. GPU-free self-hosting
Self-host Vexa, but plug into external transcription service
<small style="color: #999;">Perfect privacy with minimal DevOps</small>
3. Fully hosted service
At vexa.ai — just grab API key
<small style="color: #999;">Ready to integrate</small>
<a id="whats-new"></a>
🎉 What's new in v0.9 (pre-release)
- Zoom: initial Zoom Meeting SDK support (requires Zoom app setup/approval; see docs)
- Recordings: persist recording artifacts to S3-compatible storage (or local)
- Post-meeting playback: stream recordings via
/recordings/.../rawwithRangeseeking (206) +Content-Disposition: inline - Delete semantics: deleting a meeting also purges recording objects/artifacts (best-effort) before anonymizing the meeting
- Interactive Bots API: live controls for speak/chat/screen/avatar during active meetings
- MCP integration docs: end-to-end guide for connecting AI agents to Vexa tools
See full release notes: https://github.com/Vexa-ai/vexa/releases
Quickstart
Option 1: Hosted (Fastest)
Just grab your API key at https://vexa.ai/dashboard/api-keys and start using the service immediately.
Option 2: Vexa Lite - For Users (Recommended for Production)
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:latest
Deployment 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 - Environment variables, storage, TTS, and all configuration options
- 🎨 Frontend options: Choose from open-source user interfaces like Vexa Dashboard
Option 3: Docker Compose - For Development
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 # Default: remote transcription (GPU-free)
What 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: Deployment Guide
Recording storage (local and cloud)
Recording is implemented and supports local filesystem, MinIO, and cloud S3-compatible backends.
See Recording Storage for:
- Storage backends and environment variables (
STORAGE_BACKEND) - Docker Compose / Lite / Kubernetes deployment notes
- Browser playback details (
/recordings/{recording_id}/media/{media_file_id}/raw,Range/206,Content-Disposition: inline)
Option 4: Hashicorp Nomad, Kubernetes, OpenShift
For enterprise orchestration platforms, contact vexa.ai
1. Send bot to meeting:
Set API_BASE to your deployment:
- Hosted:
https://api.cloud.vexa.ai - Self-hosted Lite:
http://localhost:8056 - Self-hosted full stack (default):
http://localhost:8056
export API_BASE="http://localhost:8056"
Request a bot for Microsoft Teams
curl -X POST "$API_BASE/bots" \
-H "Content-Type: application/json" \
-H "X-API-Key: <API_KEY>" \
-d '{
"platform": "teams",
"native_meeting_id": "<NUMERIC_MEETING_ID>",
"passcode": "<MEETING_PASSCODE>"
}'
Or request a bot for Google Meet
curl -X POST "$API_BASE/bots" \
-H "Content-Type: application/json" \
-H "X-API-Key: <API_KEY>" \
-d '{
"platform": "google_meet",
"native_meeting_id": "abc-defg-hij"
}'
Or request a bot for Zoom
# Caveat: Zoom Meeting SDK apps typically require Marketplace approval to join other users' meetings.
# Before approval, expect you can reliably join only meetings created by you (the authorizing account).
#
# From URL: https://us05web.zoom.us/j/YOUR_MEETING_ID?pwd=YOUR_PWD
# Extract meeting ID and optional passcode separately.
curl
Related Skills
node-connect
335.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
335.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.5kCommit, push, and open a PR
