Flex Utils - Free online tools including calculators, image compressor, and AI utilitiesFlex Utils - Free online tools including calculators, image compressor, and AI utilities

AI Meeting Note-Taker

Record or import meetings and get an AI transcript plus structured minutes with decisions & action items, persisted on-device in a local knowledge graph - 100% private, runs in your browser

ai meeting note-taker
meeting transcription
meeting summarizer

Loading Meeting Note-Taker...

How to Use
  1. Click Start Recording and grant microphone permission.
  2. Optionally toggle "Include tab / system audio" to capture a shared tab or call as a separate [Remote] channel.
  3. Optionally toggle "Identify speakers (diarization)" to group the [Remote] channel into Speaker 1..N (opt-in, best-effort, downloads extra models).
  4. Optionally toggle "Capture slides / screen share (vision)" to read on-screen text with Florence-2 (opt-in, heavy multi-GB models, Chromium-only).
  5. Stop recording to transcribe, or import an existing audio file or transcript instead.
  6. Review the timestamped transcript (your mic is labeled [Self], tab/system audio [Remote], imports [Participant]).
  7. Use the Search Transcript box to find any moment by meaning or keyword (hybrid BM25 + vector search), then click a result to jump to it.
  8. Click Generate Minutes to produce a summary, decisions, action items, and open questions.
  9. Export your notes as Markdown or JSON.
How it Works

The entire pipeline runs on-device in your browser using Web Workers, WebGPU (with a WebAssembly fallback), and AI models from Transformers.js:

1. Dual-Channel Capture

Your mic ([Self]) and optional tab/system audio ([Remote]) are captured as two separate channels through an AudioWorklet and resampled to 16kHz mono PCM.

2. Whisper / Moonshine ASR

Each channel is transcribed into timestamped utterances with Whisper (Moonshine is available for fast short turns).

3. Optional Diarization

If enabled, a best-effort pass (voice-activity detection, segmentation, speaker embeddings, and cosine clustering) groups the [Remote] channel into Speaker 1..N labels.

4. Optional Vision Ingestion

If enabled, a shared screen/tab's video is sampled, a perceptual hash keeps only visually-distinct keyframes, and Florence-2 (with an optional SmolVLM2 caption) reads the on-screen text locally. Keyframes are shown as thumbnails and bound into the knowledge graph as VisualArtifact nodes. Opt-in and heavy (multi-GB models), Chromium-only.

5. Candidate Tagging

A deterministic tagger flags utterances that look like decisions, action items, or open questions, shown inline in the transcript.

6. Hybrid Transcript Search

15-30s speaker turns are embedded with bge-small-en-v1.5 into an Orama index. A hybrid BM25 + vector search finds the right moment by meaning or keyword; int8 and 1-bit quantized vectors keep it fast and lightweight.

7. Minutes (hardware-tier engine)

Qwen2.5-0.5B turns the transcript into structured minutes, and all three hardware-tier engines are grammar-constrained to emit schema-valid JSON. On WebGPU-capable devices with ample memory it runs WebLLM with XGrammar grammar-constrained decoding; constrained WebGPU devices use the Transformers.js map-reduce summarizer, grammar-constrained with @huggingface/transformers-structured-output (a StructuredOutputProcessor applied to both the map and reduce passes); and devices without WebGPU use the wllama CPU/WASM engine (Qwen2.5-0.5B GGUF via single-thread llama.cpp Wasm) with GBNF grammar-constrained decoding. The active engine and tier are shown in the badges.

8. WebMCP Tool-Calling (agent mode)

Optionally, the on-device model can act as an agent: it emits grammar-constrained calls to five meeting tools (record a decision, upsert an action item, query the transcript, update or synthesize a topic summary). The calls run through an actual Model Context Protocol (MCP) server that lives entirely in your browser over a MessagePort - no network, no stdio. The deterministic pipeline still works when agent mode is off.

9. On-Device Knowledge Graph

In agent mode, decisions and action items are saved into a local SQLite knowledge graph in your browser's Origin Private File System (OPFS), so they survive a reload in this tab. When vision ingestion is on, captured keyframes are bound in as VisualArtifact nodes (with DEPICTS and MODIFIES_VISUAL_STATE edges). If durable storage is unavailable (an unsupported browser, or the storage lock is held by another tab), it falls back to memory-only and the badge says so. Updates supersede older versions instead of overwriting, and a crash-recovery write-ahead log replays unfinished writes on startup.

10. Structured Output

You get a summary plus decisions, action items, and open questions.

11. Export

Download everything as Markdown or JSON for sharing or archiving.

Privacy & Security

Everything happens entirely in your browser. No audio, transcript, or minutes are ever uploaded to a server.

  • • Audio is processed locally using Web Workers
  • • AI models run on-device via WebGPU or WASM
  • • No recordings or notes leave your browser at any point
  • • Models are cached locally after the first download
  • • Persisted decisions and action items are stored only on your device (local SQLite in OPFS), never uploaded, and stay in a single tab
  • • Optional vision ingestion is opt-in and local: captured screen frames are read on-device with Florence-2 and never uploaded
  • • Ideal for confidential meetings and sensitive discussions
Frequently Asked Questions