Hit record. MeetingNotes captures any app's audio, then transcribes, diarizes, summarizes, and extracts action items — every step on your machine. No cloud, no uploads, no API keys.
Overview. Q3 roadmap sync — the team locked the migration window and split ownership of the launch checklist.
The app is an orchestrator. It spawns each engine on demand, runs it against your audio, and shuts it down when idle to keep memory free. Ports are loopback; the network is never touched at inference time.
A codesigned Swift helper taps any app's audio + your mic into a mixed M4A.
Metal-accelerated speech-to-text with a hallucination filter on the output.
Speaker diarization in a Python sidecar — who spoke when, aligned to the transcript.
Any chat model in LM Studio or Ollama writes the summary and pulls action items.
Transcribe and diarize run in parallel off one 16 kHz decode; the rest is sequential. Midway, the pipeline pauses so you can name unknown voices — then bakes real names into the transcript before the LLM ever sees it.
whisper.cpp over the mixed audio.
:8080pyannote speaker turns.
:8765Stitch turns to text; match voice embeddings against your roster.
rosterPause for unknown speakers. Play an 8-second sample, label, continue — or skip.
awaitingYour LLM writes the structured notes and pulls action items with provenance.
:1234transcript.md · summary.md · action-items.json
✓ savedAuto-detect meetings in browsers and native apps, or fire a URL scheme from a Shortcut, Stream Deck, or calendar hook.
Name a voice once; it's recognized across every future meeting by its embedding. Confirm, skip, or correct anytime.
Preview / split / edit modes. Fix a hallucination or redact in place — changes write straight to summary.md.
Click any action item to jump to the exact summary line it came from. Edit the summary, hit re-extract, done in seconds.
A Mon–Sun narrative with cross-meeting themes, decisions, and your open action items — cached so re-opening is instant.
Push items to Apple Reminders, Google Tasks/Docs, or any webhook. ⌘K searches every title, summary, and transcript.
Some local models "think" before they answer — and occasionally spiral, burning their whole budget without writing a word. MeetingNotes flags them, canary-tests your pick, strips the <think> blocks, and auto re-samples the rare spiral instead of failing your meeting.
Clone, install the two Homebrew binaries, and run setup. The app spawns everything else on demand — a five-step wizard walks you through permissions, models, and your token on first launch.
# clone and enter git clone https://github.com/dbbaskette/MeetingNotes.git cd MeetingNotes # the two native dependencies brew install whisper-cpp ffmpeg # one interactive setup, then launch ./scripts/setup.sh ./scripts/start.sh