Catch up instantly when you join a meeting late — without bots, servers, or creepy transcript storage.
Important
Repository Scope Notice: The website linked in this project's metadata is not part of this repository.
- Please do not open issues regarding UI/UX design changes or bugs for the website here.
- This repository is dedicated exclusively to the Late Meet Chrome Extension.
- The website link is being disabled to prevent further confusion. All contributions and issue reports should focus on the extension's functionality and performance.
Problem · Solution · Features · Architecture · Installation · Tech Stack · Roadmap · Contributing · Security
Joining a meeting late or losing focus for a moment leaves participants disconnected and scrambling for context. Existing AI note-takers add an obnoxious "Bot has joined" participant to your call, invade your team's privacy by storing transcripts on remote servers, and often generate massive, unreadable blocks of text instead of punchy, actionable insights.
Late Meet lives entirely natively within your browser. Without adding any disruptive bots to the call, it securely captures audio directly from the Chrome tab. It leverages ElevenLabs' Scribe API for state-of-the-art multilingual transcription and OpenAI GPT models for intelligent summarization, providing a stunning, high-performance side-panel dashboard.
We designed this with a local-first philosophy: all meeting data is processed locally using chrome.storage.local during the session, and you only need your own API keys. No external databases. No user tracking.
- Invisible & Native: Uses modern Chrome
tabCaptureand Offscreen APIs to intercept audio securely without adding bots to the participant list. - High-Fidelity Transcription: Utilizes the ElevenLabs Speech-to-Text API (Scribe) for industry-leading accuracy and robust multilingual support, gracefully falling back to OpenAI Whisper if needed.
- Late-Joiner Briefings: Instantly catches up late participants with targeted, private overlays summarizing missed context via hardened UI automation.
- Proactive Intelligence: Automatically detects meetings and initializes host-first (1+N) participant tracking for accurate reporting.
- Bring Your Own Key (BYOK): Full control over your data. Supply your own ElevenLabs and OpenAI API keys via the extension options.
- Premium Interface: A visually striking deep-monochrome UI with glassmorphism effects, smooth animations, and zero clutter.
The extension is built natively on Manifest V3 using TypeScript and Vite 5 for a modern, optimized build process.
background.ts(The Conductor): Acts as the central state manager. It proactively detects Meet tabs, routes audio chunks to ElevenLabs for transcription, and coordinates intelligence queries with OpenAI.offscreen.html&offscreen.ts(The Audio Engine): Runs a hidden offscreen document forchrome.tabCapture. It processes audio in chunks, ensuring zero data loss and handling raw media streams.content.ts(The UI Injector): Injects floating buttons and briefing overlays. It features a hardened chat automation engine (execCommandbased) to reliably deliver welcome messages to late joiners.- AI Intelligence Layer: Uses ElevenLabs STT for capturing speech and dynamic GPT models (like
gpt-4o-mini) for processing text into structured insights, including Decisions, Action Items, and Strategic Sentiment. - Local Storage: Securely stores session data in
chrome.storage.local. After each meeting, you decide to Save or Discard—nothing leaves your browser without your consent.
📖 For a detailed technical deep-dive, see
docs/ARCHITECTURE.md.
🚨 IMPORTANT DISTINCTION 🚨
- For Regular Users: You only need the compiled
dist/folder. This is the actual, ready-to-use extension. - For Developers: The
src/folder contains the raw TypeScript/source code. You must compile it first using the steps below.
- Clone the repository:
git clone https://github.com/shouri123/Late-Meet.git cd Late-Meet - Compile the Extension (Developers only):
This will generate the
npm install npm run build
dist/folder containing the final extension. - Load into Chrome:
- Open Google Chrome and navigate to
chrome://extensions/. - Enable Developer mode in the top right corner.
- Click Load unpacked and select the
dist/directory (NOT the root orsrc/directory).
- Open Google Chrome and navigate to
- Configure the Copilot:
- Click the extension icon in the toolbar and open the Options menu.
- Enter your ElevenLabs API Key (for superior transcription) and your OpenAI API Key (for summarization intelligence).
- Join a Meeting:
- Join any active Google Meet.
- Click the floating Start Copilot button.
- Open the full Side Panel dashboard to view live intelligence!
- Extension Architecture: Manifest V3 compliant, Offscreen Documents, Service Workers.
- Build Tools: TypeScript, Vite 5,
@crxjs/vite-plugin. - Design System: Custom Vanilla CSS, high-contrast monochrome aesthetic, SVG-native iconography.
- Storage:
chrome.storage.local(Local-first, NO BAAS dependencies). - AI Pipeline: ElevenLabs STT (Scribe v2) for transcription, and dynamic GPT models for Intelligence/Summarization.
- Native Google Meet integration without bot participants.
- Real-time offline audio capture via Chrome Offscreen APIs.
- Premium monochrome UI extension & side panel.
- BYOK integration for processing.
- Strip Supabase/backend dependencies.
- Local-first session management and storage.
- ElevenLabs Scribe integration for superior transcription.
- Intelligent rolling LLM context prompting.
- Offline/Native Support: Offline transcription via local Whisper / WebGPU.
- Smart Tracking: Speaker diarization and action item assignee routing.
- Multi-Platform: Zoom and Microsoft Teams support.
- On-the-fly Translation: Bridging language gaps during international calls.
📖 See the full roadmap with contributor-friendly tasks at
ROADMAP.md.
Contributions, issues, and feature requests are welcome! We have labeled issues for all skill levels.
⚠️ Before making ANY changes, you must fork this repository and create a new branch frommain. Direct commits to the main repository are not accepted. All contributions must come through Pull Requests from your fork.
Quick start:
- Fork the repo on GitHub (click the Fork button)
- Clone your fork:
git clone https://github.com/<your-username>/Late-Meet.git - Create a new branch:
git checkout -b feature/your-feature-name npm install→npm run build- Load the
dist/folder in Chrome - Make your changes, test, and submit a PR
Found a bug or have an idea? Open a public issue on the Issues page! We use issue templates for bug reports and feature requests to keep things organized.
Caution
Issue Scope: Please only report issues and feature requests for the Chrome Extension. Do not request UI/UX design changes or report bugs for the website.
When contributing:
- Emphasize vanilla, zero-dependency JavaScript workflows where possible.
- Adhere strictly to the monochromatic UI design system.
📖 See
CONTRIBUTING.mdfor full setup instructions, project structure walkthrough, and PR guidelines.
| Issue | Status | Link |
|---|---|---|
| Audio capture intermittently fails after migration from OpenAI Whisper to ElevenLabs Scribe STT | 🔴 Open | #1 |
If you encounter any other issues with the extension, please open a new issue with as much detail as possible. Screenshots and console logs are very helpful!
Late Meet follows a strict BYOK (Bring Your Own Key) model with local-only data storage. No meeting data ever leaves your browser without your consent.
If you discover a security vulnerability, please do not open a public issue. Report it privately to chakrabortyshouri@gmail.com.
📖 See
SECURITY.mdfor our full security policy and data handling practices.
Need help? Check out our Support guide or open a Discussion.
Distributed under the MIT License. See LICENSE for more information.
Built for high-performance teams who value focus and privacy.