[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73945":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},73945,"vexa","Vexa-ai\u002Fvexa","Vexa-ai","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.","https:\u002F\u002Fvexa.ai",null,"TypeScript",2168,312,15,138,0,22,49,141,66,109.49,"Apache License 2.0",false,"main",true,[27,28,29,30,31,32,33,34],"google-meet","meeting-assistant","meeting-minutes","meeting-notes","ms-teams","ms-teams-app","notetaker","zoom","2026-06-12 04:01:12","\u003Cp align=\"center\" style=\"margin-bottom: 0.75em;\">\n  \u003Cimg src=\"assets\u002Flogodark.svg\" alt=\"Vexa Logo\" width=\"56\"\u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\" style=\"margin-top: 0.25em; margin-bottom: 0.5em; font-size: 2.5em; font-weight: 700; letter-spacing: -0.02em;\">Vexa\u003C\u002Fh1>\n\n\u003Cp 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;\">\n  \u003Cstrong>Open-source meeting bot API & transcription API\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\" style=\"font-size: 1em; color: #a0a0a0; margin-top: 0.5em; margin-bottom: 1.5em; letter-spacing: 0.01em;\">\n  meeting bots • real-time transcription • interactive bots • MCP server • self-hosted\n\u003C\u002Fp>\n\n\u003Cp align=\"center\" style=\"margin: 1.5em 0; font-size: 1em;\">\n  \u003Cimg height=\"24\" src=\"assets\u002Fgoogle-meet.svg\" alt=\"Google Meet\" style=\"vertical-align: middle; margin-right: 10px;\"\u002F> \u003Cstrong style=\"font-size: 1em; font-weight: 600;\">Google Meet\u003C\u002Fstrong>\n  &nbsp;&nbsp;&nbsp;&nbsp;•&nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Cimg height=\"24\" src=\"assets\u002Fmicrosoft-teams.svg\" alt=\"Microsoft Teams\" style=\"vertical-align: middle; margin-right: 10px;\"\u002F> \u003Cstrong style=\"font-size: 1em; font-weight: 600;\">Microsoft Teams\u003C\u002Fstrong>\n  &nbsp;&nbsp;&nbsp;&nbsp;•&nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Cimg height=\"24\" src=\"assets\u002Ficons8-zoom.svg\" alt=\"Zoom\" style=\"vertical-align: middle; margin-right: 10px;\"\u002F> \u003Cstrong style=\"font-size: 1em; font-weight: 600;\">Zoom\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\" style=\"margin: 1.75em 0 1.25em 0;\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FVexa-ai\u002Fvexa\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FVexa-ai\u002Fvexa?style=flat-square&color=yellow\" alt=\"Stars\"\u002F>\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-blue?style=flat-square\" alt=\"License\"\u002F>\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FGa9duGkVz9\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-join-5865F2?style=flat-square&logo=discord&logoColor=white\" alt=\"Discord\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#whats-new\">What's new\u003C\u002Fa> •\n  \u003Ca href=\"#quickstart\">Quickstart\u003C\u002Fa> •\n  \u003Ca href=\"#meeting-api--send-bots-get-transcripts\">API\u003C\u002Fa> •\n  \u003Ca href=\"https:\u002F\u002Fdocs.vexa.ai\">Docs\u003C\u002Fa> •\n  \u003Ca href=\"#roadmap\">Roadmap\u003C\u002Fa> •\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FGa9duGkVz9\">Discord\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n**Vexa** is an open-source, self-hostable meeting bot API and meeting transcription API for Google Meet, Microsoft Teams, and Zoom. Alternative to Recall.ai, Otter.ai, and Fireflies.ai — self-host so meeting data never leaves your infrastructure, or use [vexa.ai](https:\u002F\u002Fvexa.ai) hosted.\n\n---\n\n**Data sovereignty** — self-host so meeting data never leaves your infrastructure\n\n**Cost** — replace $20\u002Fseat SaaS with your own infrastructure\n\n**Embed in your product** — multi-tenant meeting bot API with scoped tokens\n\n**AI agents** — MCP server with 17 tools\n\n---\n\n### Capabilities\n\n\n| | |\n| --- | --- |\n| **Meeting bot API** | Send a bot to any meeting: auto-join, record, speak, chat, share screen. Open-source alternative to [Recall.ai](https:\u002F\u002Frecall.ai). |\n| **Meeting transcription API** | Real-time transcripts via REST API and WebSocket. Self-hosted alternative to Otter.ai and Fireflies.ai. |\n| **Real-time transcription** | Sub-second per-speaker transcripts during the call. 100+ languages via Whisper. WebSocket streaming. |\n| **Interactive bots** | Make bots speak, send\u002Fread chat, share screen content, and set avatar in live meetings. |\n| **Browser bots** | CDP + Playwright browser automation with persistent authenticated sessions via S3. |\n| **MCP server** | 17 meeting tools for Claude, Cursor, Windsurf. AI agents join calls, read transcripts, speak in meetings. |\n| **Multi-tenant** | Users, scoped API tokens, isolated containers. Deploy once, serve your team. |\n| **Dashboard** | Open-source Next.js web UI — meetings, transcripts, agent chat, browser sessions. Ready to use out of the box. |\n| **Self-hostable** | Run on your infra. Meeting data never leaves your infrastructure. |\n\n\nEvery feature is a separate service. Pick what you need, skip what you don't. Self-host everything or use [vexa.ai](https:\u002F\u002Fvexa.ai) hosted.\n\n---\n\n## Why Self-Host Meeting Transcription?\n\n**For regulated industries** — banks, financial services, healthcare — meeting data can't leave your infrastructure. Self-hosting Vexa means zero external data transmission and full audit trail on your own infrastructure.\n\n**For cost-conscious teams** — replace per-seat SaaS pricing. A team paying $17\u002Fseat\u002Fmo for meeting transcription can self-host Vexa and drop that to infrastructure cost.\n\n**For developers** — embed a meeting bot API in your product. Multi-tenant, scoped API tokens, no per-user infrastructure.\n\nBuild meeting assistants like Otter.ai, Fireflies.ai, or Fathom — or build a meeting bot API like [Recall.ai](https:\u002F\u002Frecall.ai) — self-hosted on your infrastructure.\n\n- **Vexa (self-host)** — your infra cost. Data never leaves your infrastructure. Meeting bot API, real-time transcription, interactive bots, MCP server. Open source, Apache 2.0. Google Meet, Teams, Zoom.\n- **Recall.ai** — $0.50\u002Fhr. No self-hosting. Meeting bot API, real-time transcription. No MCP, limited interactive bots. Closed source. Meet, Teams, Zoom, Webex.\n- **Otter.ai** — $17-20\u002Fseat\u002Fmo. No self-hosting. No API. Limited real-time transcription. Closed source. Meet, Teams, Zoom.\n\nOr use [vexa.ai](https:\u002F\u002Fvexa.ai) hosted — get an API key and start sending bots immediately, no infrastructure needed.\n\n## Built for Data Sovereignty\n\nMeeting data never leaves your infrastructure. Self-host for complete control. Modular architecture scales from edge devices to millions of users.\n\n**1. Hosted service**\nAt [vexa.ai](https:\u002F\u002Fvexa.ai) — get an API key and start sending bots. No infrastructure needed.\n*Ready to integrate*\n\n---\n\n**2. Self-host with Vexa transcription**\nRun Vexa yourself, use vexa.ai for transcription — ready to go, no GPU needed.\n*Control with minimal DevOps* — see [deploy\u002F](.\u002Fdeploy\u002F) for setup guides.\n\n---\n\n**3. Fully self-host**\nRun everything including your own GPU transcription service.\n*Meeting data never leaves your infrastructure* — see [deploy\u002F](.\u002Fdeploy\u002F) for setup guides.\n\n## What's new\n\n**v0.10.4**\n\n- **Zoom (via web)** — `platform=zoom` works out of the box, no SDK setup.\n\n**v0.10 — full architecture refactor**\n\n- **Services refactored** — runtime-api as infrastructure layer (container orchestration), meeting-api as data layer, agent-api as high-level intelligence layer. Clean separation of concerns.\n- **Real-time pipeline moved into bots** — transcription pipeline now runs inside bot containers, eliminating external dependencies\n- **Agent API** *(experimental)* — ephemeral containers for AI agents. See [services\u002Fagent-api\u002F](.\u002Fservices\u002Fagent-api\u002F).\n- **Helm\u002FK8s** — production Kubernetes deployment with built images and global.imageTag support\n\n**v0.9**\n\n- **Zoom** *(experimental)* — initial Zoom Meeting SDK support\n- **Interactive Bots API** — speak, chat, screen share, avatar controls during live meetings\n- **MCP server** — 17 tools for AI agents\n- **Recordings** — S3-compatible storage\n\n---\n\n> See full release notes: [https:\u002F\u002Fgithub.com\u002FVexa-ai\u002Fvexa\u002Freleases](https:\u002F\u002Fgithub.com\u002FVexa-ai\u002Fvexa\u002Freleases)\n\n---\n\n## Quickstart\n\n### Self-host with Docker\n\nOn a fresh Linux machine (Ubuntu 24.04):\n\n```bash\napt-get update && apt-get install -y make git curl\ncurl -fsSL https:\u002F\u002Fget.docker.com | sh\ngit clone https:\u002F\u002Fgithub.com\u002FVexa-ai\u002Fvexa.git && cd vexa\n```\n\nThen choose:\n\n\n| Command      | What you get                     | Best for                    |\n| ------------ | -------------------------------- | --------------------------- |\n| `make lite`  | Single container, all services   | Quick evaluation, small teams |\n| `make all`   | Full stack, each service separate | Development, production     |\n\n\nBoth prompt for a transcription token on first run. Get one at [vexa.ai\u002Faccount](https:\u002F\u002Fvexa.ai\u002Faccount), or [self-host transcription](.\u002Fservices\u002Ftranscription-service\u002FREADME.md) with a GPU.\n\nGuides: [Vexa Lite](deploy\u002Flite\u002FREADME.md) | [Docker Compose](deploy\u002Fcompose\u002FREADME.md) | [Helm (K8s)](deploy\u002Fhelm\u002FREADME.md)\n\n### Hosted (no deployment needed)\n\nGet your API key at [vexa.ai\u002Faccount](https:\u002F\u002Fvexa.ai\u002Faccount) and start sending bots immediately.\n\n## Meeting API — Send Bots, Get Transcripts\n\nSend a bot, get real-time transcripts with per-speaker audio and interactive controls (speak, chat, share screen).\n\n```bash\n# Send a bot to Google Meet\ncurl -X POST \"$API_BASE\u002Fbots\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"X-API-Key: \u003CAPI_KEY>\" \\\n  -d '{\"platform\": \"google_meet\", \"native_meeting_id\": \"abc-defg-hij\"}'\n\n# Get transcripts\ncurl -H \"X-API-Key: \u003CAPI_KEY>\" \\\n  \"$API_BASE\u002Ftranscripts\u002Fgoogle_meet\u002Fabc-defg-hij\"\n```\n\nWorks with Google Meet, Microsoft Teams, and Zoom. Set `API_BASE` to `https:\u002F\u002Fapi.cloud.vexa.ai` (hosted) or `http:\u002F\u002Flocalhost:8056` (self-hosted).\n\nFor real-time WebSocket streaming, see the [WebSocket guide](https:\u002F\u002Fdocs.vexa.ai\u002Fwebsocket). For full REST details, see the [User API Guide](https:\u002F\u002Fdocs.vexa.ai\u002Fuser_api_guide).\n\n---\n\n## Browser Bots — Persistent Browser Containers for Agents\n\nRemote browser containers with CDP + Playwright access and persistent session storage via S3. Agents get a real browser that stays logged in across restarts — Google, Microsoft, or any web session.\n\n- **CDP + Playwright** — full browser automation via Chrome DevTools Protocol\n- **Persistent sessions** — authenticated browser state saved to S3, restored on next spin-up\n- **VNC access** — humans can observe and control the browser in real time alongside agents\n- **On-demand containers** — spin up in seconds, auto-reclaim when idle\n\nSee [features\u002Fbrowser-session\u002F](.\u002Ffeatures\u002Fbrowser-session\u002F) and [features\u002Fremote-browser\u002F](.\u002Ffeatures\u002Fremote-browser\u002F) for details.\n\n---\n\n## MCP Server — Meeting Tools for AI Agents\n\n17 tools that let AI agents join meetings, read transcripts, speak, chat, and share screen. Works with Claude, Cursor, Windsurf, and any MCP-compatible client.\n\nYour AI agent can join a meeting, listen to the conversation, and participate — all through MCP tool calls. See [services\u002Fmcp\u002F](.\u002Fservices\u002Fmcp\u002F) for setup and tool reference.\n\n---\n\n## Modular — Pick What You Need\n\nVexa is a toolkit, not a monolith. Every feature works independently. Use one or all — they compose when you need them to.\n\n\n| You're building... | Features you need | Skip the rest |\n| --- | --- | --- |\n| **Self-hosted Otter replacement** | transcription + multi-platform + webhooks | agent runtime, scheduler, MCP |\n| **Meeting data pipeline** | transcription + webhooks + post-meeting | speaking-bot, chat, agent runtime |\n| **AI meeting assistant product** | transcription + MCP + speaking-bot + chat | remote-browser, scheduler |\n| **Meeting bot API (like Recall.ai)** | multi-platform + transcription + token-scoping | agent runtime, workspaces |\n\n\nYou don't pay complexity tax for features you don't use. Each service is a separate container. Don't need agents? Don't run agent-api. Don't need TTS? Don't run tts-service. Services communicate via REST and Redis, not tight coupling.\n\n---\n\n## Roadmap\n\nFor 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.\n\n- Issues: [https:\u002F\u002Fgithub.com\u002FVexa-ai\u002Fvexa\u002Fissues](https:\u002F\u002Fgithub.com\u002FVexa-ai\u002Fvexa\u002Fissues)\n- Milestones: [https:\u002F\u002Fgithub.com\u002FVexa-ai\u002Fvexa\u002Fmilestones](https:\u002F\u002Fgithub.com\u002FVexa-ai\u002Fvexa\u002Fmilestones)\n\n> For discussion\u002Fsupport, join our [Discord](https:\u002F\u002Fdiscord.gg\u002FGa9duGkVz9).\n\n## Architecture & Feature Status\n\nEach service and feature has its own README with architecture, DoD table, and evidence-based confidence scores.\n\n- **Services:** [api-gateway](.\u002Fservices\u002Fapi-gateway) • [meeting-api](.\u002Fservices\u002Fmeeting-api) • [admin-api](.\u002Fservices\u002Fadmin-api) • [runtime-api](.\u002Fservices\u002Fruntime-api) • [vexa-bot](.\u002Fservices\u002Fvexa-bot) • [transcription-service](.\u002Fservices\u002Ftranscription-service) • [tts-service](.\u002Fservices\u002Ftts-service) • [mcp](.\u002Fservices\u002Fmcp) • [dashboard](.\u002Fservices\u002Fdashboard) • [agent-api](.\u002Fservices\u002Fagent-api) *(experimental)*\n- **Features:** [realtime-transcription](.\u002Ffeatures\u002Frealtime-transcription) • [bot-lifecycle](.\u002Ffeatures\u002Fbot-lifecycle) • [browser-session](.\u002Ffeatures\u002Fbrowser-session) • [remote-browser](.\u002Ffeatures\u002Fremote-browser) • [speaking-bot](.\u002Ffeatures\u002Fspeaking-bot) • [meeting-chat](.\u002Ffeatures\u002Fmeeting-chat) • [webhooks](.\u002Ffeatures\u002Fwebhooks) • [authenticated-meetings](.\u002Ffeatures\u002Fauthenticated-meetings)\n- **Deploy:** [Docker Compose](.\u002Fdeploy\u002Fcompose) • [Vexa Lite](.\u002Fdeploy\u002Flite) • [Helm\u002FK8s](.\u002Fdeploy\u002Fhelm)\n- **Guides:** [Vexa Lite Deployment](https:\u002F\u002Fdocs.vexa.ai\u002Fvexa-lite-deployment) • [Docker Compose Deployment](https:\u002F\u002Fdocs.vexa.ai\u002Fdeployment) • [Self-Hosted Management](https:\u002F\u002Fdocs.vexa.ai\u002Fself-hosted-management) • [Recording Storage](https:\u002F\u002Fdocs.vexa.ai\u002Frecording-storage)\n\n---\n\n## Contributing\n\nWe use **GitHub Issues** as our main feedback channel — triaged within **72 hours**. Look for `good-first-issue` to get started. Join [Discord](https:\u002F\u002Fdiscord.gg\u002FGa9duGkVz9) to discuss ideas and get assigned.\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-blue?style=flat-square)](LICENSE)\n\n## Links\n\n[Website](https:\u002F\u002Fvexa.ai) • [Docs](https:\u002F\u002Fdocs.vexa.ai) • [Discord](https:\u002F\u002Fdiscord.gg\u002FGa9duGkVz9) • [LinkedIn](https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fvexa-ai\u002F) • [X (@grankin_d)](https:\u002F\u002Fx.com\u002Fgrankin_d) • [Meet Founder](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdmitry-grankin\u002F)\n\n**Related:** [vexa-lite-deploy](https:\u002F\u002Fgithub.com\u002FVexa-ai\u002Fvexa-lite-deploy) • [Vexa Dashboard](.\u002Fservices\u002Fdashboard)\n","Vexa 是一个开源的会议机器人和转录API，支持Google Meet、Microsoft Teams和Zoom。其核心功能包括自动加入会议的机器人、实时WebSocket转录以及用于AI代理的MCP服务器。项目使用TypeScript编写，并提供自托管选项或使用其SaaS服务。适合需要保持数据主权的企业环境，允许用户通过自己的基础设施处理会议数据，从而避免敏感信息外泄。同时，对于希望降低成本并寻求将此类功能集成到自己产品的开发者而言，Vexa 提供了一个经济高效且灵活的选择。",2,"2026-06-11 03:48:01","high_star"]