MeetScribe: a transcript and a debrief of your Google Meet calls
Transcribes the Google Meet call you are in and writes the debrief: key points, decisions, actions, open questions. It runs as a Chrome extension on your own OpenRouter key. There is no bot in the call, no Google recording or transcription (so it works on Workspace Business Starter, which has neither), and no server of ours. Your words are labelled You, everyone else's Meeting, and every point in the debrief carries the time of the line it came from.
Download MeetScribe v0.3.2 (zip, 52 KB)
Beta: do not use it for confidential meetings. Everything you transcribe is sent to OpenRouter, a third party, and what happens to it there is outside our control and our view. Where your audio goes says exactly what that means.
This build follows a code review of 18 findings and a fix from the first real call. It has been tested in Chromium with fake audio and replayed responses (61 automated tests), and its first real Meet calls are being made now. Expect rough edges, and please tell us what happened.

Try it in five minutes
- Download and unzip the zip. You get a folder called
meetscribe. - Load it in Chrome. Open
chrome://extensions, switch on Developer mode (top right), press Load unpacked and pick themeetscribefolder. Pin VoiceDebrief MeetScribe to the toolbar. - Add your OpenRouter key. The options page opens by itself. Paste a key and press Save and test. No key yet? Get one in five steps, and set a credit limit on it: a few dollars is plenty.
- In a Meet call, go to the Meet tab and click the MeetScribe icon in Chrome's toolbar. That click is what lets Chrome capture the tab; the side panel opens and names the tab. Tell the others you are transcribing (there is a notice to copy into Meet's chat), tick the box, press Start transcribing.
- After the call, press Stop, open Meetings, and press Write the debrief. Export it as Markdown, text or JSON.
Want your own voice transcribed as well? Press Allow the microphone on the options page once, then tick Also transcribe my microphone before you start. It has its own mute (Alt+Shift+M), separate from Meet's. Use headphones, or your microphone will hear the call too.
The full guide, with screenshots · What to do when something goes wrong
What you need
| Chrome | Version 116 or later, on a computer (Windows, macOS, Linux, ChromeOS) |
| An OpenRouter key | With credit on it. MeetScribe, like voicedebrief.ai, charges nothing and adds no margin: you pay OpenRouter directly |
| A Google Meet call | Any Google account or Workspace edition |
What it costs. At OpenRouter's listed prices on 3 November 2026, an hour of meeting costs roughly 5 to 15 US cents. That is about 3 to 11 cents to transcribe with the default openai/whisper-large-v3, depending on the provider OpenRouter picks, plus about 2 to 3 cents for the debrief with google/gemini-3.5-flash. Silence is never sent. Each meeting shows the cost OpenRouter actually reported; the models page lists every transcription model's price.
Where your audio goes
On our side, everything is client-side. MeetScribe has no server, no account and no analytics. Your meetings, transcripts, debriefs, the audio waiting to be sent and your key stay in this browser profile. They are stored like any extension's data, not encrypted, so anyone with access to your computer and Chrome profile can read them. Delete all MeetScribe data is on the options page; your key and settings are cleared separately.
Once audio leaves your browser, it is out of our hands. Your audio and its transcript are sent to OpenRouter, which passes them to a model provider. We do not know which provider handles your recording, and we have no control over what they do with it. We cannot see or verify who processes it, whether it is kept, or for how long.
MeetScribe asks OpenRouter for zero-data-retention routing. That is a request, applied according to your OpenRouter account's own settings, which we cannot see. It is not a guarantee we can give, so please don't read it as one.
So, during the beta: treat everything you transcribe as shared with a third party, and do not use MeetScribe for anything confidential.
Consent is yours to get. Meet's own recording tells everyone in the call; MeetScribe cannot, so it asks you to, every meeting. Recording or transcribing people without their consent is unlawful in some places.
What to expect
- It listens only while you can see it listening. The icon shows REC, Chrome shows its own capture indicator, and Stop is one click away. Closing the Meet tab also stops it.
- It is built not to lose speech quietly. Every stretch of speech is saved before it is sent. If the network drops or the key runs out, it waits and retries. What failed or came back empty shows as a gap with a reason and a retry. This is the design, tested with fake audio, and the beta is where it meets real calls.
- It tries not to guess. It does not know who in the call said what, so it says Meeting. A line that looks like your microphone hearing the call is dimmed (
probable-echo) rather than deleted, and so is a phrase models invent from silence (suspect). Both flags are heuristics and can be wrong. - Not there yet: names for the other speakers, editing the transcript, search across meetings, and the Chrome Web Store. What is built is the honest list.
Tell us what happened
Report a test as a GitHub issue, using a short form: what worked, what did not, and the eight questions this beta is meant to answer. Screenshots and exported transcripts help, but remove anything private first: an issue is public.
How it was built
MeetScribe started as a brief drafted by ChatGPT. It was reviewed claim by claim, rewritten, and built with the tests first. Everything below is the record.
Is it feasible?
Yes. Every API it needs exists and is documented: Chrome's tab capture into an offscreen document (Chrome 116 and later), getUserMedia for the microphone, and OpenRouter's /api/v1/audio/transcriptions, which listed 29 models on the day we looked. Nothing depends on Google, which matters: Google is shutting down the Meet Media API on 15 January 2027.
The first brief (v1.0, drafted by ChatGPT) had the facts mostly right and four choices that would have failed without an error:
| What v1.0 did | What goes wrong | v2.0 | |
|---|---|---|---|
| R1 | 20-second MediaRecorder chunks | Only the first chunk is a decodable file; the model invents text for the rest | Own the samples: worklet, 16 kHz PCM, a WAV per segment |
| R2, R3 | Fixed cuts with overlap; every segment sent | Words cut in half; silence comes back as "Thank you for watching" | Cut at pauses; drop silence before it is sent |
| R4 | Its own microphone stream | Records you while you are muted in Meet | Opt-in per meeting, its own mute and shortcut, said plainly |
| R5 | "Mic = You" | On speakers, the mic hears everyone; their words become yours | Echo cancellation, measured; echoes marked, never deleted |
The review has all 23 findings, the 14 claims that held, and a verdict on every section of v1.0.
Read
- Install and use v0.3.0: load unpacked, set the key, transcribe a call, write the debrief; a short script for the first real test.
- Build, test and release: no compile step; stamping, the tests, the gate, the site, the release and what CI does.
- MeetScribe and VoiceDebrief: what it shares with voicedebrief.ai, what differs, and the path into the website.
- What is built: the reality file, with what building it corrected.
- Review of brief v1.0: what holds, what is wrong, what is missing, what to change, with evidence.
- Brief v2.0: the specification to build from.
- The plan: Phase 0's eight go/no-go questions and the model bake-off, then three releases.
- Transcription models: the OpenRouter catalogue with price per hour, from a dated snapshot.
- Sources: every fact, where it was read.
- Brief v1.0, as received: kept unedited.
Where it comes from
MeetScribe is a VoiceDebrief product, and the Chrome extension the VoiceDebrief brief deliberately left for later: the same bring-your-own-key OpenRouter model, the same rule that the transcript is never overwritten, and the lessons of its issue queue. It is built the way the chrome-extensions.sgit.ai hub and Fix the Page say extensions should be: a deliberately stupid recorder first, null never 0, no remote code, and a release you can check against its source.