ghostmeet — the invisible AI meeting assistant
sshlab — dispatch 001v0.1 · open source · MIT<br>The invisible<br>AI meeting<br>assistant.<br>Live captions and smart summaries for any meeting — captured silently from your browser tab, transcribed locally with Whisper, summarized with Claude on demand.<br>Your audio never leaves your machine.
press play on the demoskip to install →<br>audio egress<br>0 bytes
accounts required<br>none
install command<br>1 line
license<br>MIT
§ 01a silent demo<br>Press play.<br>It works like this.<br>A fully scripted re-enactment of a real session. All speakers, names, and content are fictional.
start demoreset<br>elapsed 00:00 / 00:22<br>meet.generic.invalid / weekly-syncrec 00:00
Alex
Jordan
Sam
Morgan
4 participants · audio-onlythe meeting does not know ghostmeet is here
👻 ghostmeetside panel<br>idle<br>no captions yet. press start to watch a live session unfold.
summarize
§ 02the capabilities<br>Six things it does,<br>quietly, on your laptop.
faster-whisper<br>Real-time transcription<br>Whisper STT runs in a loop, updating captions every 10 seconds. tiny → large models, pick your size.
claude api<br>AI-powered summaries<br>Key decisions, action items, next steps. On demand — hit Summarize when the meeting ends.
context input<br>Meeting context<br>Attach an agenda, a design doc, or a prior transcript. The summarizer actually reads them.
zero egress<br>100% local audio<br>Audio is captured, streamed, and transcribed on your machine. Nothing is sent to a server you don't own.
docker<br>One-command setup<br>docker compose up -d. Three services, one port, ready in 30 seconds once the image pulls.
side panel<br>Invisible to others<br>Runs as a Chrome side panel. No bot joins the call. No one in the meeting knows it's there.
§ 03the pipeline<br>From a tab playing audio,<br>to a structured summary,<br>without leaving your machine.
01
Browser tab<br>Any tab that plays audio — Meet, Zoom, Teams, a podcast, a training video.<br>chrome.tabCapture
02
Extension captures<br>Chrome side panel taps the tab's audio stream directly. No microphone, no screen.<br>manifest v3 · chrome extension
03
WebSocket → local<br>Audio frames stream to a FastAPI backend running on localhost:8877.<br>binary ws
04
Whisper transcribes<br>faster-whisper processes 10-second chunks. Captions appear in the side panel as they're ready.<br>faster-whisper · ctranslate2
05
Claude summarizes<br>When you click Summarize, the full transcript + any attached context goes to Claude. Structured output returns.<br>claude api · optional
the only external call<br>If you enable AI summaries, your transcript text (never audio) is sent to the Claude API using your own key. That is the complete list of times your data leaves your machine.
§ 04the install<br>Running in under<br>a minute.<br>Clone, start the backend, load the Chrome extension. That's the whole setup.
dockermanual<br>~/projectscopy<br>1$ git clone https://github.com/Higangssh/ghostmeet.git<br>2$ cd ghostmeet<br>3$ cp .env.example .env # add your Anthropic key (optional)<br>4$ docker compose up -d
note. First run downloads the Whisper model (~150MB for base). Subsequent starts are instant.
01<br>Start the backend<br>docker compose up -d. Backend binds to localhost:8877. Health check returns model info.
02<br>Load the extension<br>chrome://extensions → Developer mode → Load unpacked → pick /extension from the repo.
03<br>Start a meeting<br>Click 👻 in the toolbar to open the side panel. Hit ▶ Start. Captions stream in real time.
04<br>Summarize when done<br>Click 📋 Summarize. A structured summary — decisions, action items, next steps — appears in the panel.
§ 05who this is for<br>Three meetings a week<br>you stop taking notes for.
01<br>for engineering
Standups that write themselves.<br>Start the panel, join the daily. Walk away with structured notes and a list of action items tagged by owner. No copy-paste into Notion.
← no bot joins · no dial-in · no seat license
02<br>for 1:1s
Coaching you actually re-read.<br>Private conversations deserve private tooling. Your weekly 1:1 transcript lives on your laptop, not in a vendor's S3 bucket.
← audio stays local · summaries only if you ask
03<br>for research
User interviews, without the compliance review.<br>Customer conversations often come with NDAs that forbid third-party transcription services. ghostmeet sidesteps the entire category.
← self-hosted · no data processor agreements
§ 06the questions<br>Fair questions,<br>direct answers.
Is my audio really private?Yes. Audio is captured by the Chrome extension, streamed over WebSocket to a backend running on localhost, and transcribed by Whisper on your machine. It is never uploaded. The only external call — and only if you opt in — is a Claude API request with the transcript text when you click Summarize.<br>Which meeting apps are supported?Any browser tab that plays audio. Google Meet, Zoom Web, Microsoft Teams Web, Discord, Around, Whereby, as well as recorded talks, podcasts, or training videos. Native Zoom/Teams desktop apps are not supported — use the web client.<br>Do I need a GPU?No. The default `base` Whisper model runs fine on...