MeetScribe / voicedebrief

MeetScribe and VoiceDebrief

MeetScribe is a VoiceDebrief product: voicedebrief.ai's transcript and debrief, for a meeting instead of a voice note. This page says what it shares with the website now, what differs and why, and how its code is meant to move into the website.

What is the same

Read from the VoiceDebrief website repository (VoiceDebrief/VoiceDebrief__Website, branch dev, commit 30ae8d9) on 3 November 2026.

voicedebrief.aiMeetScribe
The keyBring your own OpenRouter key, kept in the browser; "we charge nothing and add no margin"; the guide at /openrouter-key/ with set a spend limit as the step that mattersThe same, in the same words, linking to the same guide
Where the audio goesroutingHonest: "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. Do not use this for anything you would not hand to a third party."The same sentence, unchanged, on the consent step, the options page and the site's footer
The caveatmodelCaveat, shown with the transcript, never before itThe same sentence, above every transcript
The artefactsTranscript, then an optional translation, then a summary ("debrief"), then an optional infographic. The transcript is never overwritten (issue 055)Transcript, then the debrief. The transcript is never changed; the debrief is a separate document
The debriefsummary-prompt.md: Key points, Actions, In one sentence; only what is in the transcript; written in the reader's {{language}} with the locale's {{tone}}The same prompt made for a meeting (extension/lib/prompts.js): the same three sections and rules, plus Decisions, Open questions and a time on every point
Language and toneFour locales: en-gb, en-us, pt-pt, pt-br, each with a language and a tone in culture.jsonThe same four, with the same values, for the debrief
The debrief modelgoogle/gemini-3.5-flash (the declared workflow's summary step)The same default, changeable on the options page
Colourvd-tokens.css: five schemes (Signal, Night, Paper, Blueprint, Ember), and no colour written anywhere elseThe same file, vendored unchanged (admin/build/vendor-vd.mjs), in the site and the extension; the same five schemes to choose from; the gate refuses a colour outside it
BrandVoice*Debrief*, with BETA as permanent chromeVoice*Debrief* MeetScribe, with BETA, in the site and in every extension page
CostRead back from OpenRouter, "unknown" never zerousage.cost as reported; a missing cost is counted, never zero
StackStatic, vanilla JS, web components, no framework, no build stepStatic, vanilla JS modules, no framework, no build step, no dependencies

What differs, and why

The path into voicedebrief.ai

The extension is the only way to capture a Meet tab's audio without a prompt each time, so the extension stays. What moves is everything after the capture:

  1. The pure modules in extension/lib/ (wav, vad, openrouter, queue, transcript, debrief, prompts) use no extension API except db and settings. They can be served by the website as they are, as versioned, immutable files, which is how it publishes its components.
  2. A meetings page on voicedebrief.ai can read an exported meeting (the JSON export, meetscribe/meeting version 1) and offer the website's own steps on it: translation, the debrief, the infographic, the chat.
  3. A web-only capture is possible too: a page can capture a tab's audio with getDisplayMedia, after the user picks the tab in Chrome's dialog. It is one more click per meeting and no install, and could live at voicedebrief.ai/tools/ with the same modules. This is proposed, not built.

When the website adopts any of these, it takes the files at a version, and this repository's tests stay the gate for them.