Local AI transcription on Mac keeps client-call audio out of the cloud

By Kyle Nelson, Founder, Fazit

If you searched for "local ai transcription mac privacy cloud", the answer is simple: use local transcription when the call content can't leave your Mac. Cloud transcription sends audio to a vendor for processing. Fazit transcribes 1:1 client calls on the Mac, generates the note locally, writes Markdown into your Obsidian vault, and never writes the call audio to disk.

Local AI transcription Mac privacy: what actually changes

Privacy in transcription isn't decided by the summary template. It's decided by the audio path.

A cloud notetaker needs your call audio on a server so it can transcribe, summarize, store, search, and sync it. A local Mac notetaker can avoid that path entirely when capture, transcription, and note generation all run on the machine. Fazit's content path works that way: a Core Audio process tap reads the call app's output and the microphone, Parakeet via CoreML transcribes on-device, and a local model on localhost writes the note. In practice, if you're finishing a client call and want the note to land straight in your vault, that path is the part that matters.

That doesn't mean every byte related to the app is offline. According to Fazit's public accuracy notes, there is a clear line between call content and the account lane: models are downloaded once from public CDNs on first run, and account, licensing, payment, updates, and optional product analytics may use Fazit's cloud services. The privacy claim is about the client conversation itself: call audio, transcripts, and note content aren't uploaded for note generation.

For consultants, coaches, lawyers, financial advisers, and therapists, that distinction is the point. The sensitive material is what the client said, what you said back, and the note that records it. Fazit's product claim is narrow: call content stays on the Mac for note generation, while non-content app operations may contact online services.

Cloud transcription vs local transcription on Mac

The comparison that matters is where a durable artifact of the conversation appears. If a system creates a recording, transcript, or note in a vendor database, you've created a third-party copy of the call content. If the system works locally and writes the final note into your own vault, the vendor does not need to hold the conversation.

QuestionCloud transcriptionLocal Mac transcription with Fazit
Does a bot need to join?Often yes, or capture may still stream to serversNo bot joins the call
Where is transcription done?Vendor cloud or third-party speech serviceOn the Mac with Parakeet via CoreML
Is call audio written to disk by Fazit?Cloud systems may retain or delete recordings depending on the toolNo, audio exists in a fixed-size RAM ring buffer
Where does the finished note live?Vendor app or vendor database unless exportedPlain Markdown in an Obsidian vault, or Apple Notes
Does Fazit hold a copy of the note?Not applicableNo Fazit database holds a copy
What survives after the call?Depends on the vendor's retention modelOne Markdown note, with audio_retained: false in frontmatter

That table explains more than a feature list does. Fathom, Otter, Fireflies, tl;dv, Granola, and local tools can all produce readable summaries now. The remaining question is whether your client's voice became a vendor-held artifact along the way. If you've ever had to answer a retention question after a call, that's usually the first thing worth checking. For a broader comparison, see on-device vs cloud AI notetakers and Fazit vs the cloud notetakers.

In Fazit's pipeline, the final artifact is one Markdown note in your vault, not a row in Fazit's database.

Mac local transcription without a bot joining the call

A visible meeting bot solves capture by becoming a participant. That design has two side effects. Everyone can see the bot, and the bot provider receives the call content for processing.

Fazit uses a different path on macOS. Since macOS 14.4, Fazit uses Core Audio process taps to capture the call app's output and the microphone directly. Nothing joins Zoom, Meet, Slack, or WhatsApp Desktop. No calendar integration is needed to discover calls, because capture happens at the audio layer through the app itself instead of through a meeting invite. The app targets the call app, not the whole desktop. If you take a WhatsApp Desktop call that never touched your calendar in the first place, that difference is pretty obvious.

For 1:1 calls, the two-stream design also solves speaker attribution directly. Your microphone is "You." The call app's audio is "Them." The streams are transcribed separately, then merged by timestamp into a You/Them dialogue. Fazit deliberately limits this promise to 1:1 calls because multi-party speaker labels require diarization, and the research notes cite open local diarization error rates of 13.3% to 17.7% on named benchmarks.

The product scope follows the physics of the audio: 1 microphone stream plus 1 remote stream gives clean You/Them attribution for 1:1 calls.

Local AI transcription on Apple Silicon

Cloud transcription became common because older laptops struggled to run speech models fast enough. Apple Silicon changed that tradeoff.

Fazit's current architecture uses Parakeet through CoreML for on-device transcription. The repository research cites FluidAudio's Swift SDK running Parakeet TDT v3 at about 110 times real time on an M4 Pro, and covering 25 EU languages including German. That speed is more than enough for a 1:1 client call because the model does not need to wait for a server round trip before turning audio into text. If you've used live captions on a recent Mac, the feel of it is familiar.

The note-writing step also runs locally. In the current repository setup, Fazit uses Ollama on localhost for the note generation step. The product notes say the output is a finished session note with a summary, key moments, action items with owners, a paste-ready follow-up email, and a You/Them transcript, written as Markdown into <vault>/Fazit/.

If you want the hardware background, read Cloud Transcription Was a Hardware Workaround. The short version for privacy reviews is simpler: if the Mac can transcribe locally, the audio doesn't need to leave the Mac.

RAM-only transcription and why no audio file matters

"Delete the recording later" is weaker than "the recording was never created." Deletion depends on retention settings, backups, logs, subprocessors, account state, and whether anyone exported the file before deletion. A RAM-only design avoids creating the audio file in the first place.

According to the public architecture notes, Fazit's audio exists in one place during capture: a fixed-size RAM ring buffer. Those notes say that buffer has no write API, and it is destroyed on every exit path including errors. The README names the design invariant: audio exists in AudioRingBuffer, and CaptureController.destroyAudio() runs to destroy it. Every note records audio_retained: false in its frontmatter. If you later review a note in Obsidian, the text is there, and the audio file is not because none was created.

That doesn't mean no data ever touches disk. The transcript and generated note do, because the whole purpose of the app is to create a useful record. The difference is that the saved artifact is text in your Obsidian vault or Apple Notes, not call audio in a vendor system. For an architecture-level explanation, see Why never records is an invariant and AI meeting notes without recording.

The privacy claim rests on a concrete implementation choice: Fazit has no audio file to delete because Fazit never writes call audio to disk.

Obsidian Markdown notes instead of a cloud database

A meeting note is easier to govern when it's a file you own. Obsidian stores notes as plain Markdown files, which means you can back them up, search them, move them, diff them, or delete them using your own tools and policies.

Fazit writes one Markdown file into a folder of your Obsidian vault. There is no Fazit database holding a copy. That matters for anyone who already has document-retention habits around client work: consultants with engagement folders, lawyers with matter files, financial advisers with firm retention policies, therapists with session documentation rules, and coaches who want client notes without a second SaaS archive. If your normal workflow is "open client folder, find the note, archive under your own rules," a Markdown file fits that routine cleanly.

The product is intentionally narrow here. It doesn't promise CRM sync, cloud search, multi-party diarization, mobile capture, cellular capture, or always-on detection. The repository says those were cut from scope. The app is a macOS menubar workflow for 1:1 client calls, ending in a Markdown note.

For the Obsidian side of the argument, see Obsidian meeting notes should be files. Fazit's durable output is a local Markdown file in the user's vault.

Consent, confidentiality, and local transcription

Local transcription reduces vendor exposure. It doesn't remove your duty to handle consent and professional conduct.

This is not legal advice, and consent and professional-conduct duties apply to the person running the call. If your jurisdiction or profession requires notice or consent, you still need to get it. Fazit's architecture can keep the vendor out of the call content path, but it can't decide whether you were allowed to transcribe that conversation. A therapist, lawyer, or adviser still has to make that call before pressing record or capture.

The legal posts on this site discuss the primary-source issues by profession and jurisdiction. For example, the recording-law overview explains federal one-party consent and all-party consent in roughly a dozen US states, and the German §201 StGB post treats client-call transcription as a consent question first. Lawyers should also read the attorney-client privilege analysis, and tax professionals should read the § 7216 analysis before sending client-call content to any third party.

The practical privacy point remains architectural. A cloud notetaker can turn a confidential call into a vendor-held record. Fazit is built so the vendor never receives the call audio, transcript, or generated note for note generation.

What to ask any local AI transcription Mac app

Ask about the audio path before you ask about the summary quality. Good notes are common. A clean content path is rarer.

Ask whether a bot joins the meeting. Ask whether the app reads your calendar. Ask whether audio is streamed to a vendor or third-party speech service. Ask whether audio is written to disk. Ask where transcripts and notes are stored. Ask whether the vendor has a database copy after the call. Ask what non-content services still contact the internet for licensing, updates, payments, model downloads, or analytics. If you're vetting a tool for client work, this is the checklist that usually surfaces the real differences.

Fazit's answers are specific: no bot joins, no calendar access is needed for capture, transcription runs on the Mac, note generation runs locally on localhost, call audio is never written to disk, and the output is Markdown in your Obsidian vault or Apple Notes. Account, licensing, payment, updates, optional product analytics, and first-run model downloads are separate from the call-content path.

The clean answer to "local ai transcription mac privacy cloud" is to keep the client conversation on the Mac, create the note locally, and never create an audio file.

Sources