Show HN: Ghostmeet – Self-hosted meeting transcription and summaries

swq1151 pts0 comments

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...

audio meeting whisper panel claude start

Related Articles