MIT licensed 100% local No API keys Google Meet + Zoom

Your meetings,
transcribed & summarized
on your machine.

An open-source Otter / Gemini alternative. Live transcription, speaker diarization, AI summaries, action items, and an “ask-your-meeting” chat — with nothing leaving your computer and no subscription.

Why not just use Otter?

Otter sends your audio to the cloud, charges $8–30/user/mo, and caps your minutes. MeetingScribe doesn’t.

Otter.aiMeetingScribe
Where audio is processedTheir serversYour machine / your GPU
Price$8–30 / user / monthFree (MIT)
Minute caps300–1,200 / moUnlimited
API keys / accountRequiredNone
Works with Meet & ZoomYesYes (system-audio capture)
Source codeClosedOpen

Everything you’d expect — locally

The features that make notes actually useful, running on hardware you control.

🎙️

Live transcription

Watch text appear as people talk — a small Whisper model drafts it in real time on your CPU. Pick a language or auto-detect.

👥

Speaker diarization

Separates who said what. Your mic is anchored as “Me”; remote voices become Speaker 1, 2, …

🧑‍🤝‍🧑

Recognizes returning speakers

Name a voice once and MeetingScribe remembers it — the same person is auto-labeled in your future meetings (local voice embeddings, no cloud).

🧠

AI summary & decisions

A local quantized LLM writes the overview, key points, and decisions. Extractive fallback always works — no keys.

✅

Action items

Auto-extracted with owner and due date, checkable right in the dashboard.

💬

Ask your meeting

”What did we decide about the budget?” — chat over the transcript and get a grounded answer.

🧠

Ask all your meetings

Cross-meeting Q&A with citations across your whole history — like Fireflies AskFred or Fathom Perfect Recall, but 100% local.

🔤

Custom vocabulary

Teach it names and jargon so proper nouns land right — edit live in the dashboard, no retraining.

🔊

Synced audio playback

Click any transcript line to jump there. The playing line highlights and auto-scrolls as you listen.

✨

Highlights & comments

Star the lines that matter and leave notes — collaboration features without sending anything to a server.

✂️

Clips & highlight reels

Download any transcript line as an audio clip, or stitch every starred line into one shareable reel — like tl;dv, but local.

📊

Talk-time analytics

Who dominated the call? Per-speaker talk share, word counts, and words-per-minute.

✏️

Rename speakers

Turn “Speaker 1” into real names in one click — flows through the transcript, exports, and analytics.

📤

Export anywhere

Markdown, plain text, SRT/VTT subtitles, and JSON — your notes, your formats.

🔎

Search everything

Full-text search across every past meeting, powered by SQLite FTS5.

📅

Auto-record any calendar

Connect Zoom or paste any calendar's secret .ics URL — capture starts when a scheduled meeting begins and stops when it ends. No OAuth needed for .ics.

⚡

Live notes

A rolling summary and detected action items appear while the meeting is still going — catch up at a glance.

🗂️

Tags & folders

Organize meetings with tags and filter your whole history in one click.

☑️

Task tracker

Every action item across every meeting in one list — filter to what's open, tick things off, jump to the source.

🏷️

Auto topics

Each meeting gets salient topic keywords pulled from the transcript — skim what it was about at a glance.

⚡

GPU offload

Heavy batch ML (large-v3 + diarization) can run on a remote SLURM GPU node, or fully on local CPU.

🔐

Private by design

No cloud, no accounts, no telemetry. Your recordings and notes never leave your disk.

How it works

It listens to your system audio + mic — so it works the same for Meet and Zoom, with no bot or vendor API.

1
Capture localRecords your microphone (“Me”) and your computer’s audio output via WASAPI loopback (“Others”) to two WAV files.
2
Live draft CPUA small faster-whisper model transcribes each window in near-real-time and streams it to the dashboard.
3
Batch pass GPU or CPUOn stop: large-v3 transcription + speaker diarization + an LLM produce the polished transcript, summary, and action items. Offloads to a SLURM GPU node if configured.
4
Review & ask dashboardBrowse meetings, rename speakers, tick off action items, search across everything, and chat with the transcript.

Quickstart

Python 3.10–3.12. faster-whisper needs no GPU; everything runs on CPU (just slower).

# install
python -m venv .venv && .venv\Scripts\activate    # Windows
pip install -e .

# configure (optional: HF token only for the gated pyannote diarizer)
copy .env.example .env

# run the dashboard
meetingscribe serve            # → http://127.0.0.1:8765

# …or record from the terminal
meetingscribe record -t "Team standup" -p meet

Then join your Meet/Zoom call, hit Start, and hit Stop when you’re done. Notes appear automatically.

Honest by default

A few things we’re upfront about.

Auto-record, not auto-join

It records the meetings you attend (hands-free, on schedule). A bot that joins a call while you’re away would need the Zoom Meeting SDK — deliberately out of scope for a key-free tool.

Diarization quality

High-quality pyannote diarization by default (free Hugging Face weights), with a fully key-free embedding-based fallback that needs no token at all.

You own the data

Recordings, transcripts, and notes live in a folder on your disk. Delete a meeting and it’s gone — no server copy.

🔒 No analytics, no phone-home, no account. The only network calls are optional: downloading model weights once, and (if you opt in) a remote GPU you control.