Skip to content

shouri123/Late-Meet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

701 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Important

Repository Scope: This repo is dedicated exclusively to the Late Meet Chrome Extension. The website linked in project metadata is not part of this repository — please do not open issues about website UI/UX or bugs here.


🌟 The Problem

Problem statement

Joining a Google Meet late — or losing focus for just a moment — leaves you scrambling for context. Traditional AI note-takers make it worse:

Traditional AI Bots Late Meet
🤖 Participant Visibility ❌ "A Bot has joined" alert ✅ Completely invisible
☁️ Data Privacy ❌ Transcripts on remote servers ✅ Local-only, zero upload
💸 Cost Model ❌ Monthly subscription ✅ BYOK — free to run
📜 Output Quality ❌ Unreadable text walls ✅ Structured, punchy insights
🔓 Open Source ❌ Closed, audited by no one ✅ MIT, fully auditable

💡 Our Solution

Late Meet is a privacy-first, open-source Chrome Extension that lives entirely inside your browser. No bots. No external servers. No subscriptions.

  Join late  ──▶  Instant AI briefing  ──▶  Never miss context again

It uses Chrome's native tabCapture API to intercept audio without adding participants, feeds it through ElevenLabs Scribe v2 for state-of-the-art transcription, and uses OpenAI GPT to generate structured, actionable intelligence — stored locally in chrome.storage.local.


✨ Features

Feature tagline

Feature What it does
🤫 Invisible Audio Capture Chrome's tabCapture + Offscreen Document APIs — no bot joins, no alert shown
🔤 ElevenLabs Scribe STT Industry-leading multilingual transcription with OpenAI Whisper fallback
Late-Joiner Briefings Join 10 min late → hit "Catch Me Up" → get a private AI summary of what you missed
🧠 Proactive Intelligence Auto-detects Meet sessions, 1+N participant tracking, action-item extraction
🔑 BYOK Model Your ElevenLabs + OpenAI keys — zero vendor lock-in, zero subscriptions
💎 Premium Glass UI Deep-monochrome dashboard, glassmorphism, smooth animations
🏠 Local-First Storage chrome.storage.local only — Save or Discard after each session, your choice
🌍 Multilingual ElevenLabs Scribe handles multiple languages out of the box

🖼️ Screenshots & Workflow

Screenshots tagline

🎬 Workflow Demo — End-to-End Walkthrough
Late Meet end-to-end product workflow demo GIF

End-to-end workflow demo — Loading the unpacked extension in Chrome, configuring API keys, joining Google Meet, starting the Copilot, and viewing the live side-panel dashboard.
📊 Dashboard — Real-time Side Panel
Late Meet real-time side-panel dashboard

Live side-panel dashboard showing transcription, topics, action items, sentiment analysis, and speaker timelines.
⚡ Late-Joiner Briefing — Catch up Overlay
Start Copilot Google Meet overlay

Floating meeting copilot injected cleanly onto Google Meet. Join late -> catch up instantly without adding noisy bots.
🔌 Extension Loaded in Chrome — Developer Mode Setup
Late Meet loaded in Chrome extensions

Unpacked extension successfully loaded under Developer Mode in Chrome Extensions.
⚙️ Options Page — BYOK Key Configuration
Options page key configuration

Securely input your ElevenLabs and OpenAI API keys. Stored strictly in local browser storage — 100% private.
🔌 Extension Popup — Quick Action Control
Late Meet extension popup control

One-click Copilot control, live recording duration timer, and direct access to options.

💡 Want to add screenshots or GIFs? It's the single most impactful contribution you can make. Check out Issue #102 — beginner-friendly and fully guided.


🏗️ Architecture

Architecture tagline

System Overview

graph TB
    subgraph Browser["🌐 Google Chrome"]
        subgraph Meet["📹 Google Meet Tab"]
            Audio["🔊 Tab Audio Stream"]
        end
        subgraph Extension["🧩 Late Meet Extension"]
            BG["🎼 background.ts\nThe Conductor\n─────────────────\nCentral state manager\nMeeting detection\nMessage routing"]
            OFF["🎵 offscreen.ts\nAudio Engine\n─────────────────\nMediaRecorder API\nAudio chunk capture\nStream processing"]
            CONTENT["🖥️ content.ts\nUI Injector\n─────────────────\nFloating buttons\nLate-joiner overlays\nChat automation"]
            DASH["📊 dashboard.ts\nSide Panel\n─────────────────\nLive summary\nTopics & sentiment\nAction items & timeline"]
        end
        subgraph Storage["💾 chrome.storage.local"]
            S1["📝 Transcripts"]
            S2["📋 Summaries"]
            S3["✅ Action Items"]
            S4["🔑 API Keys"]
        end
    end
    subgraph AI["🤖 AI Layer"]
        EL["🎤 ElevenLabs\nScribe v2"]
        OAI["🧠 OpenAI\nGPT-4o-mini"]
        W["🔄 Whisper\nFallback"]
    end

    Audio -->|tabCapture| OFF
    OFF -->|audio blobs| BG
    CONTENT -->|UI events| BG
    BG -->|chunks| EL
    BG -.->|fallback| W
    EL -->|transcript| BG
    W -.->|transcript| BG
    BG -->|text context| OAI
    OAI -->|insights| BG
    BG <-->|read/write| Storage
    Storage -->|session data| DASH
    BG -->|briefing| CONTENT

    style Browser fill:#0d0d1e,stroke:#6C63FF,color:#c0c0f0
    style Extension fill:#16213e,stroke:#6C63FF,color:#c0c0f0
    style AI fill:#1a0d2e,stroke:#9B35FF,color:#c0c0f0
    style Storage fill:#0d1a2e,stroke:#00C9A7,color:#c0c0f0
    style BG fill:#6C63FF,color:#fff,stroke:#fff
    style OFF fill:#4a43cc,color:#fff,stroke:#fff
    style EL fill:#00897B,color:#fff,stroke:#fff
    style OAI fill:#412991,color:#fff,stroke:#fff
Loading

Data Flow — Sequence Diagram

sequenceDiagram
    participant U as 👤 User
    participant CS as 🖥️ Content Script
    participant BG as 🎼 Background Worker
    participant OD as 🎵 Offscreen Doc
    participant EL as 🎤 ElevenLabs Scribe
    participant GPT as 🧠 OpenAI GPT
    participant DB as 📊 Dashboard

    U->>CS: Clicks "Start Copilot"
    CS->>BG: startCapture message
    BG->>OD: Initialize audio engine
    loop Every 30s
        OD->>BG: Audio chunk (blob)
        BG->>EL: POST /speech-to-text
        EL-->>BG: Transcript segment
        BG->>GPT: Summarize + extract insights
        GPT-->>BG: JSON — topics, actions, sentiment
        BG->>DB: Push live update
        DB-->>U: Real-time dashboard refresh
    end

    Note over U,DB: User joins late
    U->>CS: Requests "Catch Me Up"
    CS->>BG: briefingRequest
    BG->>GPT: Generate late-joiner summary
    GPT-->>BG: Targeted briefing
    BG->>CS: Inject overlay
    CS-->>U: 📋 Private catch-up overlay
Loading

📖 Full technical deep-dive: docs/ARCHITECTURE.md


📁 Project Structure

Late-Meet/
├── .github/                    ← 🤖 CI/CD & Issue templates
│   ├── ISSUE_TEMPLATE/
│   └── workflows/              ← Lint · format · stale management
│
├── docs/                       ← 📚 Technical documentation
│   └── ARCHITECTURE.md
│
├── src/                        ← 🧠 Extension source (TypeScript)
│   ├── icons/                  ← Branding assets
│   ├── utils/
│   │   ├── api.ts              ← ElevenLabs & OpenAI client wrappers
│   │   └── prompts.ts          ← GPT prompt templates
│   ├── background.ts           ← 🎼 The Conductor (service worker)
│   ├── content.ts              ← 🖥️ UI injector (content script)
│   ├── dashboard.ts            ← 📊 Real-time side panel
│   ├── offscreen.ts            ← 🎵 Audio engine (offscreen doc)
│   ├── options.ts              ← ⚙️ BYOK key configuration
│   ├── popup.ts                ← Quick-action popover
│   └── types.ts                ← Shared TypeScript interfaces
│
├── package.json
├── tsconfig.json
├── vite.config.ts
├── CHANGELOG.md
├── CONTRIBUTING.md
├── ROADMAP.md
└── SECURITY.md

⚙️ Installation

Install tagline

Quick Install (For Regular Users)

No coding or terminal required! Get the extension running in under a minute.

  1. Go to the Releases page and download the latest Late-Meet.zip (or dist.zip) file.
  2. Extract/Unzip the downloaded file on your computer.
  3. Open Chrome and navigate to chrome://extensions/.
  4. Toggle Developer mode ON (top right corner).
  5. Click Load unpacked and select the unzipped folder.
  6. That's it! Proceed to the API Key Setup below.

💻 Developer Setup (For Contributors)

Want to build from source or contribute to the codebase?

Prerequisites:

  • Chrome 116+ (Native Side Panel API required)
  • Node.js v18+ (LTS recommended)
  • npm v9+

① Clone the repository

git clone https://github.com/shouri123/Late-Meet.git
cd Late-Meet

② Install & Build

npm install
npm run build
# Compiles TypeScript → bundles into dist/

③ Load into Chrome

chrome://extensions  →  Developer Mode ✓  →  Load Unpacked  →  select dist/

⚠️ Always load the dist/ folder — never src/ or the project root.

Dev Scripts

npm run build        # Production build → dist/
npm run dev          # Watch mode (dev build)
npm run lint         # ESLint checks
npm run format       # Prettier auto-format
npm run type-check   # TypeScript validation

💡 For a detailed developer setup guide with screenshots, check out the docs/GETTING_STARTED.md guide.


🔑 API Key Setup

BYOK tagline

Late Meet uses a Bring Your Own Key (BYOK) model. You connect your own accounts — we never see your keys.

🔑 For provider checklists, troubleshooting, and detailed setup tips, read the full docs/API_KEYS.md integration guide.

Step 1 — Get your ElevenLabs API Key (Speech-to-Text)

ElevenLabs powers high-accuracy multilingual transcription via Scribe v2.

1. Go to  →  elevenlabs.io  →  Sign up free
2. Click your avatar  →  Profile + API Key
3. Click "Generate API Key"  →  name it "late-meet"  →  copy it

💡 The free tier includes generous monthly transcription minutes. Most users never exceed it for regular meeting usage.

Step 2 — Get your OpenAI API Key (Summaries & Intelligence)

OpenAI powers meeting summaries, action item extraction, sentiment analysis, and late-joiner briefings.

1. Go to  →  platform.openai.com  →  Sign in
2. Left sidebar  →  API Keys  →  "+ Create new secret key"
3. Name it "late-meet"  →  copy the key immediately

💰 Cost estimate: Late Meet uses gpt-4o-mini. A typical 1-hour meeting costs ~$0.01–$0.05 total.

Step 3 — Enter keys into the extension
1. Click the Late Meet icon in your Chrome toolbar
2. Click "Options"  (or right-click icon → Options)
3. Paste your ElevenLabs API Key
4. Paste your OpenAI API Key
5. Click Save  ✓

🔒 Keys are stored in chrome.storage.local on your machine only. They are only ever sent to your own ElevenLabs / OpenAI endpoints — never to us.


🛠️ Tech Stack

Layer Technology Purpose
Language TS Type-safe development
Build Vite Fast, modern extension bundling
Extension MV3 Latest Chrome extension architecture
Audio Chrome Bot-free browser-level audio capture
STT Primary ElevenLabs Multilingual high-accuracy STT
STT Fallback OpenAI Reliable transcription fallback
AI / LLM GPT Summarization & structured insights
Storage Chrome Local-first, zero BaaS dependencies
Styling CSS Glassmorphism + monochrome design system
Quality ESLint Code quality & consistency
Git Hooks Husky Pre-commit quality gates

🗺️ Roadmap

Roadmap tagline
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#6C63FF', 'edgeLabelBackground': '#1a1a3e'}}}%%
gantt
    title Late Meet — Project Roadmap
    dateFormat YYYY-MM
    axisFormat %b %Y

    section ✅ Phase 1 · Core
    Native Meet Integration         :done, p1a, 2024-01, 2024-03
    tabCapture Audio Engine         :done, p1b, 2024-02, 2024-04
    BYOK Key System                 :done, p1c, 2024-03, 2024-05
    Premium Glass UI                :done, p1d, 2024-04, 2024-06

    section ✅ Phase 2 · Privacy
    Strip Supabase Backend          :done, p2a, 2024-06, 2024-08
    ElevenLabs Scribe Integration   :done, p2b, 2024-07, 2024-09
    Local-First Storage             :done, p2c, 2024-08, 2024-10
    Rolling LLM Context             :done, p2d, 2024-09, 2025-01

    section 🔄 Phase 3 · Intelligence
    Speaker Diarization             :active, p3a, 2025-06, 2025-09
    Offline Whisper via WebGPU      :p3b, 2025-07, 2025-11
    Meeting History Viewer          :p3c, 2025-08, 2025-10
    Real-Time Transcript Search     :p3d, 2025-09, 2025-11

    section 🔮 Phase 4 · Multi-Platform
    Zoom Support                    :p4a, 2025-11, 2026-03
    Microsoft Teams Support         :p4b, 2026-01, 2026-05
    On-the-fly Translation          :p4c, 2026-02, 2026-06
    Firefox Extension Port          :p4d, 2026-04, 2026-08
Loading
✅ Phase 1 — Core Foundation (Complete)
  • Native Google Meet integration — zero bot participants
  • Real-time audio capture via Chrome Offscreen + tabCapture APIs
  • Premium monochrome glassmorphism UI with side panel
  • BYOK integration for ElevenLabs + OpenAI
  • Late-joiner briefing overlays
✅ Phase 2 — Privacy Overhaul (Complete)
  • Full removal of Supabase and all BaaS dependencies
  • Local-first session management with chrome.storage.local
  • ElevenLabs Scribe v2 STT integration
  • Intelligent rolling LLM context prompting
  • GSSoC 2026 contributor infrastructure
🔄 Phase 3 — Intelligence Expansion (In Progress)
  • Speaker diarization — who said what, tracked precisely
  • Offline transcription via local Whisper / WebGPU
  • Meeting history viewer with export
  • Real-time keyword search and highlighting
  • API cost & token usage tracker (local-first)
  • Action item assignee auto-routing
🔮 Phase 4 — Multi-Platform (Planned)
  • Zoom support — full feature parity
  • Microsoft Teams support — enterprise ready
  • On-the-fly translation during calls
  • Firefox extension port

🤝 Contributing — GSSoC 2026

GSSoC

Late Meet is proudly part of GirlScript Summer of Code 2026!

🟢 New to the project? Read the full docs/CONTRIBUTOR_GUIDE.md to understand onboarding, branch conventions, PR templates, and workflow diagrams.

Star this repo before contributing — it helps us grow!

Contribution Workflow

# 1. Fork & clone your fork
git clone https://github.com/YOUR_USERNAME/Late-Meet.git && cd Late-Meet

# 2. Create a feature branch
git checkout -b feature/your-feature-name

# 3. Make your changes, then run all checks:
npm run format        # auto-fix formatting
npm run lint          # must return zero errors
npm run type-check    # must compile cleanly

# 4. Commit with a descriptive message
git commit -m "feat: add real-time transcript search (#107)"

# 5. Push and open a PR on GitHub
git push origin feature/your-feature-name

Open Issues by Difficulty

🟢 Beginner — level-1

# Title Skills
#402 [FEATURE] Handle IndexedDB Connection Cleanup During Database Upgrades General
#378 [FEATURE] Add storage usage insights and session cleanup tools General
#104 [FEAT]: Show live recording duration timer in the popup UI General

🟡 Intermediate — level-2

# Title Skills
#418 [UI] Improve Responsiveness of Extension Popup Across Different Screen Sizes General
#412 [Enhancement] Add support for Google Meet breakout room transcription General
#410 [Bug] `background.ts` service worker fails to restart after Chrome updates extension General
#409 [Enhancement] Add meeting duration tracking to the summary view General
#407 [Bug] `popup.ts` throws uncaught error when opened outside a Google Meet tab General
#406 [Enhancement] Add export to Markdown format for meeting transcripts General
#404 [Bug] Meeting transcript continues recording after tab is navigated away from Google Meet General
#401 [FEATURE] Strengthen `asStoredSession()` Runtime Validation General
#395 [Bug] Speaker attribution breaks when participant names contain non-ASCII characters General
#394 [Enhancement] Add meeting summary export to PDF format General
#391 [Bug] Extension popup closes unexpectedly when switching between Google Meet tabs General
#380 [FEATURE] Add first-time onboarding and setup wizard General
#374 [FEATURE] feat: add timestamp-linked transcript references for summaries and action items General
#363 [BUG] Options page passphrase visibility toggle button missing `aria-label` — inconsistent with other toggle buttons General
#362 [BUG] Dashboard transcript re-renders entire list on every state update — destroys search highlights and scroll position General
#361 [A11Y] Accent color picker buttons never update `aria-pressed` — screen readers cannot identify the selected color General
#359 [BUG] TXT export uses `generateMarkdown()` — outputs markdown syntax instead of plain text General
#354 [PERF] `offscreen.ts` sends 20 `chrome.runtime.sendMessage` per second for waveform data — unnecessary service worker wake-ups and rejected messages General
#353 [BUG] `storageDashboard.ts` uses native `confirm()` dialog for delete — inconsistent with custom modal UX pattern General
#352 📋 Issue 1: Individual Copy-to-Clipboard Buttons for Action Items and Decisions General
#350 [BUG] Dashboard capture ignores denied microphone permission and still requests mic in offscreen document General
#289 [BUG]persistMeetingSession silently discards transcript updates after MV3 service worker restart — duplicate ID guard causes permanent data loss General
#238 [Security] `credentials.ts` stores API keys in plaintext in chrome.storage.local General
#236 [Bug] `sessionStorage.ts` does not handle `chrome.storage` quota exceeded errors General
#212 UI/UX Feature: Implement a Professional Empty States Design System for Dashboard General
#207 Feature/UX: Add Delete Functionality and Confirmation Modal for Action Items General
#200 [FEATURE] Make dashboard insight sections collapsible General
#198 [FEAT]: Add one-click copy summary button in side panel General
#138 Feature: Implement One-Click Export to Markdown and PDF for Meeting Summaries & Transcripts General
#112 [SEC]: Implement API key rotation reminders and age tracking General

🔴 Advanced — level-3

# Title Skills
#411 [Performance] `speakerAttribution.ts` allocates new arrays on every audio frame General
#408 [Security] No integrity validation on meeting data loaded from storage General
#405 [Performance] Dashboard renders all past meeting summaries at once without virtualization General
#403 [Security] Extension stores OpenAI API key in sync storage accessible across devices General
#393 [Performance] `audioChunkQueue.ts` processes audio chunks synchronously blocking the main thread General
#392 [Security] Meeting transcription data sent to external API without transport encryption validation General
#356 Graceful Error Handling and Actionable UX for Invalid/Expired API Keys General
#346 [BUG] Unscoped participant updates from background Meet tabs can leak late-joiner summaries into the wrong meeting chat General
#235 [Performance] `speakerAttribution.ts` does not debounce speaker detection, causing excessive processing General
#234 [Bug] `audioProcessing.ts` does not handle microphone permission denial gracefully General

PR Checklist

Before submitting, verify all boxes:

  • npm run format — zero formatting issues
  • npm run lint — zero ESLint errors
  • npm run type-check — TypeScript compiles cleanly
  • npm run builddist/ builds successfully
  • Issue number referenced in PR title (e.g. fix: #73 validate past date inputs)
  • PR template filled out completely
  • Screenshots/GIFs included for any UI changes

📚 Documentation Hub

Doc Description
README.md 📖 Project overview & quick start (you are here)
docs/GETTING_STARTED.md 🚀 Getting Started & Installation Guide
docs/API_KEYS.md 🔑 API Keys Integration & BYOK Guide
docs/PRIVACY.md 🛡️ Privacy & Local-First Storage Details
docs/TROUBLESHOOTING.md 🔧 Troubleshooting Common Errors
docs/WORKFLOW.md 🎬 End-to-End Product Workflow & Journey
docs/ARCHITECTURE.md 🏗️ System design & technical deep-dive
CONTRIBUTING.md 🤝 Full contribution guidelines
docs/CONTRIBUTOR_GUIDE.md 🟢 GSSoC Contributor Onboarding Guide
ROADMAP.md 🗺️ Detailed feature roadmap
CHANGELOG.md 📝 Version history & release notes
IMPROVEMENTS.md 💡 Ideas & enhancement backlog
SECURITY.md 🔒 Security policy & responsible disclosure
SUPPORT.md 💬 How to get help
CODE_OF_CONDUCT.md 🌟 Community standards
STATE.md 📊 Extension state machine documentation

🐛 Known Issues

Status Issue Description
✅ Resolved #1 Audio capture intermittent failure after migration from Whisper to ElevenLabs Scribe

🐛 Found a new bug? Use our Bug Report template to open a structured report.


⌨️ Keyboard Shortcuts

Control Late Meet without touching your mouse — perfect for accessibility and power users.

Shortcut Mac Action
Ctrl+Shift+S Cmd+Shift+S Toggle recording on/off
Ctrl+Shift+P Cmd+Shift+P Open the side panel

Shortcuts can be customized at chrome://extensions/shortcuts.


🔒 Security & Privacy

Privacy tagline

  ╔═══════════════════════════════════════════════════════╗
  ║                                                       ║
  ║   🔑  BYOK — your keys, your data, your control      ║
  ║   💾  chrome.storage.local — zero cloud upload       ║
  ║   🤫  tabCapture — no bot joins the call             ║
  ║   🚫  No Supabase, no BaaS, no external DB           ║
  ║   ✅  MIT licensed — fully auditable by anyone       ║
  ║                                                       ║
  ╚═══════════════════════════════════════════════════════╝
Guarantee How It's Enforced
🔑 Bring Your Own Key You supply API keys — we have no access to your credentials, ever
💾 Local-only storage All data stays in chrome.storage.local on your device — zero cloud
🤫 No bots, no presence chrome.tabCapture captures audio at browser level — other participants see nothing
🚫 No telemetry Zero analytics, zero usage reporting, zero tracking of any kind
🗑️ You control deletion Every session ends with Save or Discard — your explicit choice
🌐 Minimal network Only your own API key calls leave the browser (ElevenLabs / OpenAI)
🔓 Fully auditable MIT licensed — read every line of source code yourself

Late Meet's Privacy-First Architecture guarantees:

🛡️ For detailed information on data flow, local encryption, and what data may leave the browser, check the docs/PRIVACY.md document.

  • BYOK — you supply your own API keys; they never leave your device
  • Local-only storagechrome.storage.local, no third-party DB
  • Invisible capturetabCapture operates at browser level; other participants see nothing
  • No BaaS — Supabase removed completely in Phase 2

⚠️ Found a security vulnerability? Do not open a public issue. Email privately: chakrabortyshouri@gmail.com See SECURITY.md for our responsible disclosure policy.


❓ FAQ

Does Late Meet add a bot to my Google Meet call?

No. Late Meet uses Chrome's native tabCapture API to capture audio at the browser level. Other meeting participants will never see any bot, notification, or indication that Late Meet is active.

Where is my meeting data stored?

All meeting data — transcripts, summaries, action items — is stored exclusively in chrome.storage.local on your device. Nothing is uploaded to any server. At the end of each session, you choose to Save or Discard the data.

Do I need to pay for Late Meet?

Late Meet itself is 100% free and open-source (MIT). You only pay for your own API usage via your ElevenLabs and OpenAI accounts. ElevenLabs offers a free tier, and gpt-4o-mini is very affordable (~$0.01–$0.05 per 1-hour meeting).

Which Chrome version is required?

Chrome 116 or higher is required for the native Side Panel API. Check chrome://version/ if unsure — most users are already far beyond this version.

Does it support Zoom or Microsoft Teams?

Not yet. Late Meet currently supports Google Meet only. Zoom and Teams support are planned for Phase 4 of the roadmap. Contributions toward this are very welcome!

What languages does Late Meet transcribe?

ElevenLabs Scribe v2 handles multiple languages out of the box including English, Spanish, French, German, Hindi, Mandarin, Japanese, Portuguese, Arabic, and many more. The OpenAI Whisper fallback covers 50+ languages. See ElevenLabs documentation for the full list.

Transcription isn't starting — what should I check?
  1. Confirm Chrome 116+ → check at chrome://settings/help
  2. Verify your ElevenLabs API key is entered correctly in Options
  3. Make sure you clicked Start Copilot after joining the Meet — not before
  4. Reload the extension at chrome://extensions/ → click the refresh icon → rejoin
  5. Check the Issues board for known audio capture bugs

🔧 For a complete troubleshooting matrix with common setup, build, runtime, and provider issues, check out the docs/TROUBLESHOOTING.md guide.

How do I delete my meeting data?

After every session, Late Meet prompts Save or Discard. Choosing Discard immediately clears all transcripts and summaries from chrome.storage.local. You can also manually clear extension storage via chrome://settings/content/all → find Late Meet → Clear data.

How do I report a bug or request a feature?

Use our GitHub Issue templates:

For security issues, email privately to chakrabortyshouri@gmail.com.

I'm a GSSoC 2026 contributor — how do I start?
  1. ⭐ Star this repository
  2. Browse Issues for gssoc-tagged issues
  3. Comment on your chosen issue requesting assignment
  4. Wait for a maintainer to assign you before starting work
  5. Fork → Branch → Code → PR following our Contributing Guide

🌐 Community

Discussions Issues PRs GSSoC

Contributors

Contributors

Star History

Star History Chart


📜 License

Distributed under the MIT License. See LICENSE for full details.

MIT License — Copyright (c) 2024 Shouri Chakraborty

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...

Footer Footer typing

Star Fork Watch


Made with 🖤 by the Late Meet community · Report Bug · Request Feature · Join GSSoC 2026

About

AI-powered Chrome extension for Google Meet with real-time transcription, meeting summaries, participant intelligence, and productivity workflows.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors