Smart Meet

Smart Meet – AI Meeting Copilot

A Chrome/Edge extension that listens to your online meetings with you. It flags questions that need an answer and points worth clarifying in a side panel while people talk. When the meeting ends, you can ask anything about the conversation. It runs on your own LLM API key, and there is no backend.

Install

From a release: download smart-meet-<version>.zip from Releases and unzip it. Then follow steps 2–4 below, selecting the unzipped folder.

From source:

  1. npm run icons (only needed if you change the icon; the PNGs are committed).
  2. Open chrome://extensions (or edge://extensions) and turn on Developer mode.
  3. Click Load unpacked and select this folder.
  4. The settings page opens. Add an API key, pick a capture mode, then open a meeting, click the toolbar icon, and press Start.

Requires Chrome or Edge 116+. Firefox and Safari don’t support the side panel and tab-capture APIs this extension uses.

Quick start configurations

Goal AI model Transcription Capture mode
One key, best quality OpenAI gpt-5-mini OpenAI gpt-4o-mini-transcribe Automatic
Claude Anthropic claude-opus-5-5 (optionally a faster live model such as claude-haiku-4-5) Groq or OpenAI Automatic
Cheapest Groq llama-3.3-70b-versatile Groq whisper-large-v3-turbo Automatic
No speech-to-text bill Any None Live captions (turn on CC in the meeting)
Fully local Ollama Custom → local Whisper server (e.g. speaches / faster-whisper-server) Audio

For Ollama, start it with OLLAMA_ORIGINS=chrome-extension://* so the extension is allowed to call it.

How it works

 Meeting tab ──tabCapture──▶ offscreen document ──▶ speech-to-text API
      │                     (VAD-chunked webm/opus,     │
      │                      tab audio + mic)           ▼
      └─ caption content script ───────────────▶ service worker ──▶ IndexedDB
                                                  │  (session, transcript,
                                                  │   insight scheduling,
                                                  ▼   summary)
                                              LLM provider
                                                  ▲
 Side panel (Live · Ask AI · History) ────────────┘ streaming Q&A, draft replies

Claude-specific behaviour

For Anthropic models, the extension calls the Messages API directly from the browser with the anthropic-dangerous-direct-browser-access header. It caches the transcript-bearing system prompt (cache_control) so follow-up questions are cheaper. Effort is set only on models that support it: low for live detection and draft replies, medium for Q&A and summaries. JSON comes from structured outputs (output_config.format).

On Claude Opus 5 / 5.5, Sonnet 5.5 and Fable 5.1, requests opt in to server-side refusal fallback (fallbacks: "default"), and a refusal stop reason produces a clear error message. To turn the fallback off, remove anthropicSupportsFallback in providers.js.

Development

npm test          # unit tests (node:test, no dependencies)
npm run check     # validates manifest + every file reference
npm run build     # check, then package dist/smart-meet-<version>.zip

There are no runtime or dev dependencies. CI (.github/workflows/ci.yml) runs the tests and uploads the store zip as a build artifact on every push. Pushing a v<version> tag runs .github/workflows/release.yml, which publishes the zip as a GitHub release.

Manual test checklist before a release

Deployment

Smart Meet has no backend. Deploying it means publishing the privacy policy on GitHub Pages, tagging a release, and submitting the zip to the Chrome Web Store and Microsoft Edge Add-ons. The full step-by-step guide is in docs/DEPLOYMENT.md.

In short:

  1. Bump version in both manifest.json and package.json (npm run check enforces that they match), then update CHANGELOG.md.
  2. Run npm run verify and go through the manual test checklist above.
  3. Commit, then git tag v<version> and git push origin main v<version>. The Release workflow builds smart-meet-<version>.zip and attaches it to a GitHub release.
  4. Upload the zip to the Chrome Web Store Developer Dashboard and Edge Partner Center. The listing text is in docs/STORE_LISTING.md, and the screenshots, promo tile and logo are in docs/store/.
  5. Privacy policy URL for both stores: https://ammarkarimi.github.io/smart-meet/PRIVACY.html. Enable it once under Settings → Pages (main branch, root folder).

Limitations