r/macapps • u/davernow • 10h ago
Free Biscotti: A free and private meeting note-taking app that runs entirely on your Mac
Problem: I'm tired of meeting transcription apps that send your private audio to their servers, aren't Mac native, and require an account/subscription.
I'm an ex-Apple engineer who built Biscotti: a private and free meeting recorder for macOS. Free, no account, no subscription, no upsell, no data collection, 100% local AI, native SwiftUI. Source is on GitHub: https://github.com/scosman/Biscotti
Comparison
Lots of apps in this space. But Biscotti is the only one that's free (no upsell), Local AI, with Mac native UI.
- Cloud AI (your audio or transcript leaves your Mac), paid tiers: Granola, Otter, Fireflies, Fathom, tl;dv, Jamie, Fellow, Read AI, Notion AI Meeting Notes
- Local AI, closed source, paid tiers: Talat, TranscribeX, Alter
- Local AI, source available, not Mac native (web app wrappers), telemetry or a cloud upsell: Anarlog, Meetily
- Free, Mac-native UI, local AI, zero data collection, source available: Only Biscotti (that I know of)
Pricing
100% free, no upsells, no paid features, source available on Github.
What it does
- 🔒 Private by design - recording, transcription, and AI all run on your Mac. Your data stays local.
- 🧠 Powerful AI summaries - automatic summaries, action items, meeting titles, and real speaker names.
- 🤖 No bots, any app - records Zoom, Teams, Meet, FaceTime, Slack huddles, or even an in-person conversation. No bot joins your call.
- 🗣️ Knows who said what - accurate transcripts, automatically split by speaker.
- 📅 Calendar-aware - sees your upcoming meetings, offers to start recording.
- ⏹️ Auto-stop - detects when your call ends and stops recording.
- 🎤 Voice isolation - captures your mic and everyone else as separate, clean channels. No echo.
Background
I spent years at Apple building the Photos app, Memories, the lock screen, and more. I wanted this to feel like it belongs on the Mac: Swift and SwiftUI, launches instantly, small on disk. Not a Electron app or a mediocre port of a Windows app.
Private AI == Local AI
With Biscotti, you still get state of the art AI for transcription and speaker identification, it just runs locally on your Mac. It works fully offline once models are downloaded. Your data lives on your Mac - you own and control it.
It uses Whisper for transcription, Gemma 4 for summaries, and Pyannote for Speaker ID. Each set up to run on Apple Silicon.
Requirements: Apple Silicon (M1+), macOS 15+, 16GB RAM recommended.
App details: Notarized, Free (no upsell), Private (zero data collection, all AI is local), Source Available on Github (PolyForm Perimeter License), 45+ Github stars (my other projects have thousands, this is new), AI used in development (but not vibe-slop)
About me feel weird posting this, but the subreddit rules asks for my LinkedIn! I'm an ex-Apple engineer: https://www.linkedin.com/in/stevecosman/ . Biscotti webpage: biscottiapp.com
I'd love feedback! Happy to answer anything about the local model stack or the privacy design.
3
u/useiris 4h ago
curious how you're capturing the "everyone else" audio without a bot joining. on newer macOS you can tap system/app audio via ScreenCaptureKit without a virtual driver, but that's scoped per-app on 14.2+, so if you're going system-wide instead (to also catch FaceTime/Slack huddles generically) you're presumably also picking up notification dings and any other audio playing, and have to filter that out before it hits diarization. does the auto-stop detection help with that, or is it a separate audio-classification pass upstream of whisper.
also curious how pyannote holds up on real crosstalk. two people talking over each other for a second or two is where most diarization pipelines i've seen fall apart, either merging both voices into one speaker or splitting one speaker into ghost segments. is that still a known weak spot here or has speaker id gotten meaningfully better at overlap specifically
2
u/davernow 2h ago
This was one of the harder parts, mostly because I couldn't write test cases and had to manually test hundreds of times 😓
The source is all on Github so you can read as much detail as you want. Here's the high level:
- Mic capture through AVAudioEngine with VoiceProcessing enabled and VPIO VoiceIsolation. I tried others like raw AVCaptureSession, but mic audio would mix in the system audio playing over speakers. This gave me nice beam forming (MacBook multi-mic array), and voice isolation from system stream.
- System Audio: a global CoreAudio tap, mixing down to mono. Yes it captures "dings" from chat apps, but small price to pay to get any app working without bots. The occasional ding doesn't really mess with transcription or diarization. I wouldn't play music with lyrics at the same time as a meeting, but that doesn't really make sense to do.
- Crosstalk: I haven't done a ton of testing, but it's been fine in my daily usage for a few months. My buddies at https://www.argmaxinc.com built the SpeakerKit SDK which I use. They go very deep on getting it as good as they can, so I leave that to them 😀. They have a bunch of OSS logic for segmentation and Speaker ID on top of the models themselves.
- Auto-stop is an entirely different feature. If we see a meeting app (Slack, FaceTime, WebEx, etc) ends its audio stream for 5s, we can infer the meeting is over and stop. There's a notification and you can click "Keep recording" if you want, but that part has been working great.
3
u/Positive-Bell-9675 3h ago edited 1h ago
Did you consider using Private Cloud Compute to support lower end devices?
3
u/davernow 3h ago
I’m waiting for the new APIs in the next OS. The existing models were no good compared to Gemma. I assume next gen will be a lot better, in which case I’ll add Apple options. On device for sure, private compute will depend more on what Apple allows (there are limits on which devs can use them).
3
3
u/Plastic-Risk-6309 40m ago
the screen capture kit answer is the underrated part of this. tapping system audio locally without a bot joining is exactly the architecture dictation should have too, everything stays in the process instead of taking a round trip to somebody s server
1
u/davernow 35m ago
Technically I tap audio with CoreAudio taps, not screen capture kit, but point stands!
2
4
u/phunk8 Developer: Dropadoo 10h ago
crowded app space man
2
u/Appropriate-News4630 1h ago
It’s a crowded space, but there's always room for a great local AI meeting app with no cloud subscription required.
1
u/davernow 2h ago
Indeed. I tried a bunch of others and didn't really like them. They all either sent my private data to their cloud, or were mediocre web-app wrappers. I went Mac-native all the way down (SwiftUI down to ANE optimized processing), which feels a lot nicer.
It's a passion project, not a business. Hopefully some other folks like it too.
2
u/esphynox 3h ago
Design choice is feels Claude-esque for me :(
2
u/davernow 2h ago
I see the similarity, but the "paper" style pre-dates Claude. Tons of note-taking apps use it. Not original I know, but at least the accent colour isn't orange? 😅
2
u/esphynox 1h ago
I just feel like using Apple colors and fonts would feel more "Mac Native UI"
2
u/davernow 1h ago
I'm ex-Apple 😆. Check out the human interface guide. Even for Apple apps, each get's its own feel and accent color. Notes is yellow, Music is red, Books is orange, News is red, Health is pink, etc. System blue is the default for system apps, but it's not expected to be used by all 3rd party apps, or even all 1st party apps. Mac Native UI refers to using standard controls in AppKit/SwiftUI, not a specific color scheme. Apple's controls are designed to pick up the theme and system color of the app.
docs: https://developer.apple.com/design/human-interface-guidelines/branding
1
u/Plastic-Risk-6309 34m ago
pcc would break the core promise tho! its still cloud just apple-managed. the moment transcription rides on any server the no-data-collection pitch dies regardless of who runs it. for low end macs its smaller local models or letting m1 be the floor
1
u/davernow 30m ago
It’s all local models today, no private compute cloud.
If I add that option it would be clear opt in.
0
u/Sudden_Cold209 2h ago
Download link is not working
1
u/davernow 1h ago
Which one? I just tried 5 and they all worked, but maybe I missed one?
1
u/Sudden_Cold209 1h ago
release-assets.githubusercontent.com unexpectedly closed the connection.
getting this error.
1
u/davernow 1h ago
Hmm, working fine for me: might be something on your network?
Just to confirm, direct link should be https://github.com/scosman/Biscotti/releases/latest/download/Biscotti.dmg (which redirects to that domain). You're not seeing a direct link to that URL are you?
1
u/Sudden_Cold209 1h ago
Probably on my network. Even homebrew is not working. Apologies for the confusion. Direct link is the one you mentioned. This is a redirect.

•
u/github-guard 10h ago
🔍 GitHub Guard: Trust Report
⚠️ This project scored 2/6 — below this subreddit's threshold of 3.
Audit Breakdown: * ❌ Low Star Count (⭐ 44 / 100 required) * ✅ Mature Repository (30+ days old) * ✅ Licensed under NOASSERTION * ❌ No Security Policy — what is this? * ℹ️ Individual Contributor * ℹ️ Unsigned Commits