Self-hosted meeting intelligence platform bots • real-time transcription • storage • API • user interface Google Meet • Microsoft Teams • What’s new • Quickstart • Vexa is an open-source, self-hostable API for real-time meeting transcription. It automatically joins
Add this skill
npx mdskills install Vexa-ai/vexaComprehensive meeting transcription platform with robust API, multi-platform support, and deployment flexibility
1<p align="center" style="margin-bottom: 0.75em;">2 <img src="assets/logodark.svg" alt="Vexa Logo" width="56"/>3</p>45<h1 align="center" style="margin-top: 0.25em; margin-bottom: 0.5em; font-size: 2.5em; font-weight: 700; letter-spacing: -0.02em;">Vexa</h1>67<p align="center" style="font-size: 1.75em; margin-top: 0.5em; margin-bottom: 0.75em; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em;">8 <strong>Self-hosted meeting intelligence platform</strong>9</p>1011<p align="center" style="font-size: 1em; color: #a0a0a0; margin-top: 0.5em; margin-bottom: 1.5em; letter-spacing: 0.01em;">12 bots • real-time transcription • storage • API • user interface13</p>1415<p align="center" style="margin: 1.5em 0; font-size: 1em;">16 <img height="24" src="assets/google-meet.svg" alt="Google Meet" style="vertical-align: middle; margin-right: 10px;"/> <strong style="font-size: 1em; font-weight: 600;">Google Meet</strong>17 • 18 <img height="24" src="assets/microsoft-teams.svg" alt="Microsoft Teams" style="vertical-align: middle; margin-right: 10px;"/> <strong style="font-size: 1em; font-weight: 600;">Microsoft Teams</strong>19 • 20 <img height="24" src="assets/icons8-zoom.svg" alt="Zoom" style="vertical-align: middle; margin-right: 10px;"/> <strong style="font-size: 1em; font-weight: 600;">Zoom</strong>21</p>2223<p align="center" style="margin: 1.75em 0 1.25em 0;">24 <a href="https://github.com/Vexa-ai/vexa/stargazers"><img src="https://img.shields.io/github/stars/Vexa-ai/vexa?style=flat-square&color=yellow" alt="Stars"/></a>25 26 <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square" alt="License"/></a>27 28 <a href="https://discord.gg/Ga9duGkVz9"><img src="https://img.shields.io/badge/Discord-join-5865F2?style=flat-square&logo=discord&logoColor=white" alt="Discord"/></a>29</p>3031<p align="center">32 <a href="#whats-new">What’s new</a> •33 <a href="#quickstart">Quickstart</a> •34 <a href="#2-get-transcripts">API</a> •35 <a href="https://docs.vexa.ai">Docs</a> •36 <a href="#roadmap">Roadmap</a> •37 <a href="https://discord.gg/Ga9duGkVz9">Discord</a>38</p>3940---4142## What is Vexa?4344**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.4546### At a glance4748| Capability | What it means |49|---|---|50| **Meeting bots** | Automatically joins Google Meet, Microsoft Teams, and Zoom meetings |51| **Real-time transcription** | Sub-second transcript delivery during the call |52| **Interactive bots** | Make bots speak, send/read chat, share screen content, and set avatar in live meetings |53| **Multilingual** | 100+ languages via Whisper (transcription + translation) |54| **API-first** | REST API + WebSocket streaming for integrations |55| **MCP-ready** | Connect AI agents (Claude/Cursor/etc.) through the MCP server |56| **Storage** | Persist transcripts + meeting metadata in your database |57| **Multi-user** | Team-ready: users, API keys/tokens, admin operations |58| **Self-hostable** | Run on your infra for complete data sovereignty |59| **User interfaces** | Open-source frontends (currently: **[Vexa Dashboard](https://github.com/Vexa-ai/Vexa-Dashboard)**) |6061### Who it's for6263| You are... | You want... |64|---|---|65| **Enterprises** | Self-hosted transcription with strict privacy requirements |66| **Small & medium teams** | Simple deployment (Vexa Lite) with an open-source UI |67| **Developers** | Build meeting products (assistants, automations, analytics) on top of the API |68| **Automation builders** | Integrate with tools like n8n via webhooks / APIs |6970---7172## Build on Top. In Hours, Not Months7374**Build powerful meeting assistants (like Otter.ai, Fireflies.ai, Fathom) for your startup, internal use, or custom integrations.**7576The 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.7778## 🛡️ Built for Data Sovereignty7980Vexa is open-source and self-hostable — ideal for regulated industries and teams that cannot compromise on privacy.8182Modular architecture scales from edge devices to millions of users. You choose what to self-host and what to use as a service.8384**You control everything:**8586**1. Full self-hosting**87Run Vexa, database, and transcription service entirely on your infrastructure88*<small style="color: #999;">For regulated industries like fintech, medical, etc.</small>*8990<hr style="margin: 1.25em 0; border: none; border-top: 1px solid #333;">9192**2. GPU-free self-hosting**93Self-host Vexa, but plug into external transcription service94*<small style="color: #999;">Perfect privacy with minimal DevOps</small>*9596<hr style="margin: 1.25em 0; border: none; border-top: 1px solid #333;">9798**3. Fully hosted service**99At [vexa.ai](https://vexa.ai) — just grab API key100*<small style="color: #999;">Ready to integrate</small>*101102103<a id="whats-new"></a>104105## 🎉 What's new in v0.9 (pre-release)106107- **Zoom:** initial Zoom Meeting SDK support (requires Zoom app setup/approval; see docs)108- **Recordings:** persist recording artifacts to S3-compatible storage (or local)109- **Post-meeting playback:** stream recordings via `/recordings/.../raw` with `Range` seeking (`206`) + `Content-Disposition: inline`110- **Delete semantics:** deleting a meeting also purges recording objects/artifacts (best-effort) before anonymizing the meeting111- **Interactive Bots API:** live controls for speak/chat/screen/avatar during active meetings112- **MCP integration docs:** end-to-end guide for connecting AI agents to Vexa tools113114---115116> See full release notes: https://github.com/Vexa-ai/vexa/releases117118---119120## Quickstart121122### Option 1: Hosted (Fastest)123124Just grab your API key at [https://vexa.ai/dashboard/api-keys](https://vexa.ai/dashboard/api-keys) and start using the service immediately.125126### Option 2: Vexa Lite - For Users (Recommended for Production)127128**Self-hosted, multiuser service for teams. Run as a single Docker container for easy deployment.**129130Vexa Lite is a single-container deployment perfect for teams who want:131- **Self-hosted multiuser service** - Multiple users, API tokens, and team management132- **Quick deployment** on any platform - Single container, easy to deploy133- **No GPU required** - Transcription runs externally134- **Choose your frontend** - Pick from open-source user interfaces like [Vexa Dashboard](https://github.com/Vexa-ai/Vexa-Dashboard)135- **Production-ready** - Stateless, scalable, serverless-friendly136137**Quick start:**138```bash139docker run -d \140 --name vexa \141 -p 8056:8056 \142 -e DATABASE_URL="postgresql://user:pass@host/vexa" \143 -e ADMIN_API_TOKEN="your-admin-token" \144 -e TRANSCRIBER_URL="https://transcription.service" \145 -e TRANSCRIBER_API_KEY="transcriber-token" \146 vexaai/vexa-lite:latest147```148149**Deployment options:**150- 🚀 **One-click platform deployments**: [vexa-lite-deploy repository](https://github.com/Vexa-ai/vexa-lite-deploy)151 - ✅ **Fly.io** - Implemented152 - 🚧 **Railway, Render, etc.** - To be added (contribute by adding your platform of choice!)153- 📖 **Complete setup guide**: [Vexa Lite Deployment Guide](https://docs.vexa.ai/vexa-lite-deployment) - Environment variables, storage, TTS, and all configuration options154- 🎨 **Frontend options**: Choose from open-source user interfaces like [Vexa Dashboard](https://github.com/Vexa-ai/Vexa-Dashboard)155156### Option 3: Docker Compose - For Development157158**Full stack deployment with all services. Perfect for development and testing.**159160All services are saved in `docker-compose.yml` and wrapped in a Makefile for convenience:161162```bash163git clone https://github.com/Vexa-ai/vexa.git164cd vexa165make all # Default: remote transcription (GPU-free)166```167168**What `make all` does:**169- Builds all Docker images170- Spins up all containers (API, bots, transcription services, database)171- Runs database migrations172- Starts a simple test to verify everything works173174* Full guide: [Deployment Guide](https://docs.vexa.ai/deployment)175176### Recording storage (local and cloud)177178Recording is implemented and supports local filesystem, MinIO, and cloud S3-compatible backends.179180See [Recording Storage](https://docs.vexa.ai/recording-storage) for:181182- Storage backends and environment variables (`STORAGE_BACKEND`)183- Docker Compose / Lite / Kubernetes deployment notes184- Browser playback details (`/recordings/{recording_id}/media/{media_file_id}/raw`, `Range`/`206`, `Content-Disposition: inline`)185186### Option 4: Hashicorp Nomad, Kubernetes, OpenShift187188For enterprise orchestration platforms, contact [vexa.ai](https://vexa.ai)189190## 1. Send bot to meeting:191192Set `API_BASE` to your deployment:193194- Hosted: `https://api.cloud.vexa.ai`195- Self-hosted Lite: `http://localhost:8056`196- Self-hosted full stack (default): `http://localhost:8056`197198```bash199export API_BASE="http://localhost:8056"200```201202### Request a bot for Microsoft Teams203204```bash205curl -X POST "$API_BASE/bots" \206 -H "Content-Type: application/json" \207 -H "X-API-Key: <API_KEY>" \208 -d '{209 "platform": "teams",210 "native_meeting_id": "<NUMERIC_MEETING_ID>",211 "passcode": "<MEETING_PASSCODE>"212 }'213```214215### Or request a bot for Google Meet216217```bash218curl -X POST "$API_BASE/bots" \219 -H "Content-Type: application/json" \220 -H "X-API-Key: <API_KEY>" \221 -d '{222 "platform": "google_meet",223 "native_meeting_id": "abc-defg-hij"224 }'225```226227### Or request a bot for Zoom228229```bash230# Caveat: Zoom Meeting SDK apps typically require Marketplace approval to join other users' meetings.231# Before approval, expect you can reliably join only meetings created by you (the authorizing account).232#233# From URL: https://us05web.zoom.us/j/YOUR_MEETING_ID?pwd=YOUR_PWD234# Extract meeting ID and optional passcode separately.235curl -X POST "$API_BASE/bots" \236 -H "Content-Type: application/json" \237 -H "X-API-Key: <API_KEY>" \238 -d '{239 "platform": "zoom",240 "native_meeting_id": "YOUR_MEETING_ID",241 "passcode": "YOUR_PWD",242 "recording_enabled": true,243 "transcribe_enabled": true,244 "transcription_tier": "realtime"245 }'246```247248## 2. Get transcripts:249250### Get transcripts over REST251252```bash253curl -H "X-API-Key: <API_KEY>" \254 "$API_BASE/transcripts/<platform>/<native_meeting_id>"255```256257For real-time streaming (sub‑second), see the [WebSocket guide](https://docs.vexa.ai/websocket).258For full REST details, see the [User API Guide](https://docs.vexa.ai/user_api_guide).259260Note: Meeting IDs are user-provided (Google Meet code like `xxx-xxxx-xxx` or Teams numeric ID and passcode). Vexa does not generate meeting IDs.261262---263264## Who Vexa is for265266* **Enterprises (self-host):** Data sovereignty and control on your infra267* **Teams using hosted API:** Fastest path from meeting to transcript268* **n8n/indie builders:** Low-code automations powered by real-time transcripts269 - Tutorial: https://vexa.ai/blog/google-meet-transcription-n8n-workflow270271---272273## Roadmap274275For the up-to-date roadmap and priorities, see GitHub Issues and Milestones. Issues are grouped by milestones to show what's coming next, in what order, and what's currently highest priority.276277- Issues: https://github.com/Vexa-ai/vexa/issues278- Milestones: https://github.com/Vexa-ai/vexa/milestones279280> For discussion/support, join our [Discord](https://discord.gg/Ga9duGkVz9).281282## Architecture283284- [api-gateway](./services/api-gateway): Routes API requests to appropriate services285- [mcp](./services/mcp): Provides MCP-capable agents with Vexa as a toolkit286- [bot-manager](./services/bot-manager): Handles bot lifecycle management287- [vexa-bot](./services/vexa-bot): The bot that joins meetings and captures audio288- [WhisperLive](./services/WhisperLive): Real-time audio transcription service (uses transcription-service as backend in remote mode)289- [transcription-service](./services/transcription-service): Basic transcription service (WhisperLive uses it as a real-time wrapper)290- [transcription-collector](./services/transcription-collector): Processes and stores transcription segments291- [Database models](./libs/shared-models/shared_models/models.py): Data structures for storing meeting information292293> 💫 If you're building with Vexa, we'd love your support! [Star our repo](https://github.com/Vexa-ai/vexa/stargazers) to help us reach 2000 stars.294295### Features:296297- **Real-time multilingual transcription** supporting **100 languages** with **Whisper**298- **Real-time translation** across all 100 supported languages299- **Google Meet integration** - Automatically join and transcribe Google Meet calls300- **Microsoft Teams integration** - Automatically join and transcribe Teams meetings301- **Zoom integration** - Automatically join and transcribe Zoom meetings302- **REST API** - Complete API for managing bots, users, and transcripts303- **Interactive meeting controls** - Bot speak/chat/screen/avatar endpoints for active meetings304- **WebSocket streaming** - Sub-second transcript delivery via WebSocket305- **MCP server** - Expose Vexa APIs as agent tools for MCP-compatible clients306- **Multiuser support** - User management, API tokens, and team features307- **Self-hostable** - Full control over your data and infrastructure308- **Open-source frontends** - Choose from user interfaces like [Vexa Dashboard](https://github.com/Vexa-ai/Vexa-Dashboard)309310**Deployment & Management Guides:**311- [Vexa Lite Deployment Guide](https://docs.vexa.ai/vexa-lite-deployment) - Single container deployment312- [Docker Compose Deployment](https://docs.vexa.ai/deployment) - Full stack for development313- [Self-Hosted Management Guide](https://docs.vexa.ai/self-hosted-management) - Managing users and API tokens314- [Recording Storage](https://docs.vexa.ai/recording-storage) - S3, MinIO, and local storage configuration315316## Related Projects317318Vexa is part of an ecosystem of open-source tools:319320321### 🎨 [Vexa Dashboard](https://github.com/Vexa-ai/Vexa-Dashboard)322100% open-source web interface for Vexa. Join meetings, view transcripts, manage users, and more. Self-host everything with no cloud dependencies.323324## Contributing325326We use **GitHub Issues** as our main feedback channel. New issues are triaged within **72 hours** (you'll get a label + short response). Not every feature will be implemented, but every issue will be acknowledged. Look for **`good-first-issue`** if you want to contribute.327328Contributors are welcome! Join our community and help shape Vexa's future. Here's how to get involved:3293301. **Understand Our Direction**:3312. **Engage on Discord** ([Discord Community](https://discord.gg/Ga9duGkVz9)):332333 * **Introduce Yourself**: Start by saying hello in the introductions channel.334 * **Stay Informed**: Check the Discord channel for known issues, feature requests, and ongoing discussions. Issues actively being discussed often have dedicated channels.335 * **Discuss Ideas**: Share your feature requests, report bugs, and participate in conversations about a specific issue you're interested in delivering.336 * **Get Assigned**: If you feel ready to contribute, discuss the issue you'd like to work on and ask to get assigned on Discord.3373. **Development Process**:338339 * Browse available **tasks** (often linked from Discord discussions or the roadmap).340 * Request task assignment through Discord if not already assigned.341 * Submit **pull requests** for review.342343- **Critical Tasks & Bounties**:344 - Selected **high-priority tasks** may be marked with **bounties**.345 - Bounties are sponsored by the **Vexa core team**.346 - Check task descriptions (often on the roadmap or Discord) for bounty details and requirements.347348We look forward to your contributions!349350Licensed under **Apache-2.0** — see [LICENSE](LICENSE).351352## Project Links353354- 🌐 [Vexa Website](https://vexa.ai)355- 💼 [LinkedIn](https://www.linkedin.com/company/vexa-ai/)356- 🐦 [X (@grankin_d)](https://x.com/grankin_d)357- 💬 [Discord Community](https://discord.gg/Ga9duGkVz9)358359## Repository Structure360361This is the main Vexa repository containing the core API and services. For related projects:362363- **[vexa-lite-deploy](https://github.com/Vexa-ai/vexa-lite-deploy)** - Deployment configurations for Vexa Lite364- **[Vexa-Dashboard](https://github.com/Vexa-ai/Vexa-Dashboard)** - Web UI for managing Vexa instances (first in a planned series of UI applications)365366[](https://www.linkedin.com/in/dmitry-grankin/)367368[](https://discord.gg/Ga9duGkVz9)369370The Vexa name and logo are trademarks of **Vexa.ai Inc**.371
Full transparency — inspect the skill content before installing.