Show HN Local-First macOS Privacy

Local-only meeting transcription for Mac. No cloud. No bots.

Pre-launch. Founding member waitlist open. Mac app, v0.1.9.

A few months ago I was on a sensitive client call. Midway through, a Fireflies bot joined. Nobody invited it. Someone's integration had auto-enabled it.

That call had attorney-client privileged information on it. It ended up on Fireflies' servers, processed by their AI, stored indefinitely. Nothing I could do about it after the fact.

I went looking for a local alternative and found nothing. The entire market is cloud-first: Otter, Fireflies, Grain, tl;dv, Fathom. Every one of them uploads your audio to their servers. Otter's privacy policy explicitly permits training their AI models on your meeting data. Others share with third parties.

So I built MeetingVault.

How it works

MeetingVault captures your system audio and microphone, runs Whisper locally on your Mac, and gives you a transcript. The audio never touches disk. It's held in memory during transcription, then zeroed and released. The transcript stays on your machine in a local SQLite database.

No bot joins your call. No integration to configure. It works with Zoom, Google Meet, Teams, or any Mac app that produces audio. Audio capture uses ScreenCaptureKit in audio-only mode. It cannot see your screen.

The technical details

Whisper runs on-device via MLX on Apple Silicon. On M2 and newer it handles real-time transcription. On M1 it runs slightly behind real-time but is still practical. The app uses whisper-medium by default, which balances accuracy against memory use.

Built in Swift and SwiftUI. No Electron, no web view. Native macOS from top to bottom. Requires macOS 14+.

Notes live in a local SQLite database. Search, tagging, and export are in progress. The data model is deliberately simple so you can inspect it yourself.

What I'm not doing

No cloud sync (yet). No mobile app. No "AI summaries" that phone home. No freemium-to-enterprise funnel. This is an indie Mac app, not a platform play.

I will eventually offer optional iCloud sync for people who want transcripts across Macs. It will be opt-in and encrypted. Your call content will never touch my servers.

What happens to your audio

The audio buffer lives in memory during transcription. When transcription finishes, it's zeroed and released. Audio is never written to disk. The only artifact is the text transcript in your local SQLite database.

If you delete the app, your data is gone. I have no copy. I don't collect telemetry during transcription. No network calls are made while MeetingVault is recording or transcribing. The waitlist collects your email. That's the only data I hold.

Why it's a subscription

Honest answer: ongoing development. There are no server costs for transcription because there's no server. The subscription funds continued work on the app: model updates, new features, macOS compatibility as Apple changes things. One-time pricing doesn't work economically for a solo developer maintaining a native app long-term.

Founding members lock in $9/month for the life of their subscription. Standard pricing after launch will be $19/month.

Who this is for

Lawyers, therapists, consultants, and healthcare workers have a real problem with cloud recorders. You can't put a privileged conversation through Otter. You can't run a HIPAA-covered call through Fireflies. The standard tools are non-starters for those use cases.

MeetingVault works for those cases because the data never leaves your machine. You're the only custodian. And it's for anyone who just doesn't want their meetings on someone else's servers.

What's coming: give Claude access to your meetings

We're building an MCP server for MeetingVault. When it ships, Claude Desktop users will be able to ask Claude about any meeting they've transcribed. "What did we decide in last Tuesday's planning call?" "Pull every commitment I made in Q1 that we haven't shipped." "Summarize the last three client calls before I write this proposal."

The MCP server runs locally. It reads from the same SQLite database MeetingVault writes to. Nothing leaves your machine. You can read the source at github.com/LocalFlowApp/meetingvault-mcp, or read more about how the integration works.

// architecture
audio capture → ScreenCaptureKit, audio-only mode (macOS 14+)
transcription → Whisper via MLX (on-device, Apple Silicon)
model → whisper-medium (default)
storage → local SQLite, transcript only
audio → zeroed + released from memory after transcription
network calls → zero during recording/transcription
telemetry → none
cloud sync → none (planned: opt-in iCloud, encrypted)
platform → macOS 14+, Apple Silicon required
stack → Swift, SwiftUI, SwiftData
version → 0.1.9 (active development)

Try it today or lock in the founding rate

Download the current build and run it on your Mac. No account needed. Or join the waitlist at $9/month founding rate, locked for life.

Apple Silicon required. ~500 MB Whisper model downloads on first use.

Or join the founding member waitlist:

Questions? I'm happy to answer. Reach me at sully@getmeetingvault.com.