Drops straight into Obsidian
Point the output folder at a folder inside your vault and every transcript shows up as a note — searchable, linkable, backlinked alongside everything else you know. No plugin, no import step.
Snoopreme noun — a cheeky meeting transcription tool.
A macOS menu-bar app that captures your microphone and the audio of other apps at the same time, transcribes it on-device, and saves the result as plain Markdown in a folder you pick. No servers, no telemetry, no account.
macOS 26 (Tahoe) · Apple Silicon · MIT · source only
Two ears, one file
Apple's on-device speech has no per-speaker diarization. So Snoopreme splits the recording at the source instead: everything from your microphone is labelled Me, everything coming out of other apps — Zoom, Meet in a browser, anything — is labelled Them. Two capture paths, two transcriber streams, one transcript.
Me
Captured with AVAudioEngine, converted to the format the speech model wants, streamed straight into its own transcriber.
AVAudioEngine → SpeechTranscriber
Them
Captured with ScreenCaptureKit — no virtual audio device to install, no BlackHole, no rerouting your output.
ScreenCaptureKit → SpeechTranscriber
The output
Stop & Save writes one Markdown file. That's the whole storage layer. It opens in any editor, on any OS, long after you've moved on from this app — or from this Mac.
# Weekly Sync - **Date:** 2026-08-26 - **Meeting:** Weekly Sync · 3 attendees - **Recorded:** 10:03 --- **Them** `00:03` Can everyone see my screen? **Me** `00:09` Yep, all yours. Start with the release date? **Them** `00:17` Two weeks out. Audio capture is the last blocker. **Me** `00:26` I'll take that one. Notes land in the vault when we're done.
Point the output folder at a folder inside your vault and every transcript shows up as a note — searchable, linkable, backlinked alongside everything else you know. No plugin, no import step.
Because it's just Markdown, you pick the model: an Obsidian AI plugin, a local LLM, Claude, ChatGPT, a shell script. Snoopreme deliberately bakes in no AI service, so you're never tied to one provider or sending a meeting somewhere you didn't choose.
YYYY-MM-DD-{name}.md, where the name comes from the calendar event's attendees,
falling back to its title. Same folder every time, remembered between runs.
Four clicks, start to file
STEP 01
The popover shows your permission checklist and the meeting it found. Hit Start Transcription.
STEP 02
Prefilled from your calendar. Change it, pick the output folder, choose a language if it isn't the system one.
STEP 03
Live transcript in the popover, colour-coded by source, with a running clock. Volatile text settles as it's finalized.
STEP 04
One Markdown file in your folder. Nothing left running, nothing uploaded, nothing to clean up.
Privacy
SpeechAnalyzer. Audio and transcripts never leave your Mac.Auto-detect meetings
With the toggle on, Snoopreme polls your calendar every ~20 seconds and steps in at the two moments that matter — without ever starting a recording on its own.
Build & install
SpeechAnalyzer doesn't exist before it.Four permissions on first run: microphone, speech recognition, and calendar prompt in-app. Screen Recording — which is how ScreenCaptureKit hears other apps — has to be enabled in System Settings, then the app relaunched.
# get the code git clone https://github.com/bearonahill/snoopreme.git cd snoopreme # point at Xcode 26, then confirm the SDK sudo xcode-select -s /Applications/Xcode-26.app xcrun --show-sdk-version # must report 26.x # build → sign → install to /Applications brew install xcodegen scripts/make-signing-cert.sh scripts/install.sh open /Applications/Snoopreme.app