Dual-stream capture
It records two separate streams — your microphone as Me, and your Mac's system audio (everyone else) as Them. Each is transcribed on its own, then interleaved into one clean, speaker-labeled conversation.
Nothing leaves this Mac
Simple Meeting Recorder captures both sides of a call — your microphone and the system audio from everyone else — and turns them into an accurate, speaker-labeled transcript. Every step runs locally. No cloud, no account, no upload.
What it does
Four things do the real work — everything else is just staying out of your way.
It records two separate streams — your microphone as Me, and your Mac's system audio (everyone else) as Them. Each is transcribed on its own, then interleaved into one clean, speaker-labeled conversation.
Speech-to-text and speaker diarization run locally on the Apple Neural Engine via FluidAudio and CoreML. Your voice is always Me; remote voices become Speaker 1, Speaker 2, and so on.
When your mic goes live and Microsoft Teams or Webex is frontmost, it quietly asks “Record this meeting?” Detection reads Core Audio device state — not audio — so it needs no microphone permission to notice.
An optional chat panel next to each transcript. Point it at an OpenAI-compatible endpoint running on your Mac — VibeProxy, LM Studio, Ollama — and ask for the summary, the action items, the thing you half-remember someone saying. Nothing is sent anywhere until you ask, and only to the endpoint you chose.
Two passes
A realtime pass keeps up with the meeting turn-by-turn. When you stop, a larger offline model re-transcribes the separated streams and replaces the live text with a corrected, properly diarized version.
Under the hood
From the moment you hit record to the transcript on disk — every step, and where it runs.
Your microphone is recorded as me.m4a and your Mac's system audio — everyone else on the call — as them.m4a, via a Core Audio process tap. A combined mix.m4a is written alongside.
A streaming speech model runs on the Apple Neural Engine (FluidAudio · CoreML) and transcribes each stream in near-realtime, interleaving turns in the transcript window as they happen.
A larger 600M offline model re-transcribes the separated files and runs offline speaker diarization. The live text is replaced with a corrected transcript: you are always Me, remote voices become Speaker 1, 2, …
Everything lands in ~/Recordings/meeting-…/ as ordinary m4a and text files. No database, no library, no export step. Delete the folder and it's gone.
Meeting detection reads Core Audio device state (“some app is using the mic”) plus which app is frontmost (Teams, Webex). It never touches audio to notice a meeting, so detection needs no microphone permission.
Releases are Developer ID–signed and notarized by Apple, and the app keeps itself current via Sparkle from this site's appcast.xml. The only other network traffic is the one-time model download.
Requirements
Download
A signed, notarized .app
in a small zip. No installer, no account — and once it's running it keeps itself
up to date via Sparkle.
Grab SimpleMeetingRecorder.zip — it always points at the latest release.
Unzip it and drag SimpleMeetingRecorder.app into Applications, then open it. It appears in your menu bar — no Dock icon.
The transcription models download once from Hugging Face; after that everything works offline.
You grant Microphone and System Audio Recording on your first recording — macOS asks for both.
# latest release version 1.0 size ~3.5 MB ✓ Developer ID signed ✓ notarized by Apple ✓ auto-updates via Sparkle
The one thing that comes over the network: on first run the transcription models
are downloaded once from Hugging Face. That's the models coming down to your Mac —
never your audio going up. After that, recording and transcription work entirely offline,
and everything stays in ~/Recordings. The optional AI chat is the only
feature that ever sends a transcript anywhere — and only to the local endpoint you
configure, only when you ask it a question.