SkillAgentSearch skills...

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/Vexa
About this skill

Quality Score

0/100

Supported Platforms

Claude Code
Cursor

README

<p align="center" style="margin-bottom: 0.75em;"> <img src="assets/logodark.svg" alt="Vexa Logo" width="56"/> </p> <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> <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;"> <strong>Self-hosted meeting intelligence platform</strong> </p> <p align="center" style="font-size: 1em; color: #a0a0a0; margin-top: 0.5em; margin-bottom: 1.5em; letter-spacing: 0.01em;"> bots • real-time transcription • storage • API • user interface </p> <p align="center" style="margin: 1.5em 0; font-size: 1em;"> <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> &nbsp;&nbsp;&nbsp;&nbsp;•&nbsp;&nbsp;&nbsp;&nbsp; <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> &nbsp;&nbsp;&nbsp;&nbsp;•&nbsp;&nbsp;&nbsp;&nbsp; <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> </p> <p align="center" style="margin: 1.75em 0 1.25em 0;"> <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> &nbsp;&nbsp;&nbsp; <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square" alt="License"/></a> &nbsp;&nbsp;&nbsp; <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> </p> <p align="center"> <a href="#whats-new">What’s new</a> • <a href="#quickstart">Quickstart</a> • <a href="#2-get-transcripts">API</a> • <a href="https://docs.vexa.ai">Docs</a> • <a href="#roadmap">Roadmap</a> • <a href="https://discord.gg/Ga9duGkVz9">Discord</a> </p>

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>

<hr style="margin: 1.25em 0; border: none; border-top: 1px solid #333;">

2. GPU-free self-hosting
Self-host Vexa, but plug into external transcription service
<small style="color: #999;">Perfect privacy with minimal DevOps</small>

<hr style="margin: 1.25em 0; border: none; border-top: 1px solid #333;">

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/.../raw with Range seeking (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

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

View on GitHub
GitHub Stars1.8k
CategoryDevelopment
Updated2h ago
Forks226

Languages

Python

Security Score

100/100

Audited on Mar 25, 2026

No findings