An AI notetaker should not be a participant in your call.
By Fazit
The moment a bot joins your meeting, your AI notetaker stops being a tool and becomes a third party on the line. An AI notetaker without a bot is not a feature preference — it is a different architecture, with different consent, confidentiality, and trust properties.
How meeting bots actually work
The dominant notetaker architecture attends your meeting. The vendor runs a headless meeting client (or uses the platform’s bot APIs) that joins the call like any other participant. It appears in the participant list, usually named something like “Notetaker” or “[Vendor] Assistant.”
From there the pipeline is fixed by physics:
- The bot receives the server-mixed audio of every participant, streamed to the vendor’s infrastructure.
- The audio is persisted — it has to be, for their ASR, diarization, playback, and “ask questions about your meeting” features.
- Everyone on the call is now in a data-processing relationship with a company only one of them chose.
That last point is the structural problem. Your client never signed the vendor’s terms of service. Their voice is on the vendor’s servers anyway.
The bot is a third party — legally, not just socially
Recording-consent law was written for exactly this shape. In the US, federal law (18 U.S.C. §2511(2)(d)) permits recording with one party’s consent, but roughly a dozen states — including California (Penal Code §632) — require all parties to consent to recording a confidential communication. A bot that joins, records, and stores the call puts you squarely inside those statutes, and the “the platform showed a recording indicator” argument is doing a lot of load-bearing work for a lot of companies right now.
In the EU the framing is different but the conclusion is worse: the bot vendor becomes a processor under GDPR Art. 28. If you serve EU clients, that vendor belongs on your processing records and, for enterprise clients, on the subprocessor list procurement asks for. And from August 2, 2026, the EU AI Act’s Article 50 transparency obligations apply to AI systems that interact with people — the regulatory direction of travel is more disclosure of AI in the room, not less.
(None of this is legal advice; it is a description of which laws your architecture makes relevant. A local pipeline still requires you to disclose transcription — more on that below.)
The client-perception cost is real even where the law is quiet
If your work is coaching, consulting, legal, or finance, you already know what happens when “Notetaker has joined the meeting” appears in the sidebar. The conversation changes. People hedge. Some counterparties ask you to remove it; some firms have standing policies to refuse calls with bots present.
The value of your calls is that people say true things in them. An observer in the participant list — one that visibly works for a data company — taxes exactly that.
Capture at the OS, not in the meeting
There is a second place to get call audio, and it does not involve the meeting at all: the operating system that is already playing it. Since macOS 14.4, Core Audio exposes process taps — a supported API for reading the audio a specific app is outputting:
// Tap the call app's output locally — nothing joins the meeting. let tap = CATapDescription(stereoMixdownOfProcesses: [callApp.pid]) tap.isPrivate = true var tapID = AudioObjectID(kAudioObjectUnknown) AudioHardwareCreateProcessTap(tap, &tapID)
This is how Fazit works. It taps the call app’s output plus your microphone, entirely on your Mac. The consequences fall out of the architecture:
- Nothing joins the call. No participant-list entry, no bot to admit from the lobby, no vendor fingerprint on the meeting.
- It is app-agnostic. Zoom, Meet, Teams, FaceTime, a phone call relayed through your Mac — a process tap doesn’t care what the app is, only that it plays audio. Bot vendors must integrate each platform; an OS-level tap gets them all.
- The audio path stays local. Samples go into a fixed-size ring buffer in RAM, transcription runs on-device, and the buffer is destroyed on every exit path. No audio file ever exists — the invariant is the subject of Why “Never Records” Is Not Marketing.
- The only output is a Markdown note written into your Obsidian vault, with
audio_retained: falsestamped in the frontmatter — the file-not-rows argument is here.
What this architecture refuses to do
Honesty section, because the trade-offs are the point:
- Fazit cannot attend meetings for you. A bot can sit in a call you skipped. We consider that a bug in the category, not a feature gap: if nobody who was invited is present, nobody consented to anything.
- Local capture is not a consent exemption. You still owe participants disclosure that you’re transcribing. Fazit ships a one-line disclosure notice for exactly this. What the architecture changes is what you’re disclosing: “software on my laptop takes notes, nothing is recorded, no third party receives audio” is a materially easier sentence than a subprocessor list.
- You need Apple Silicon. The on-device ASR and note generation that make zero-cloud possible are a 2026-era local-ML dividend; the details are on the security page.
FAQ
Does Fazit work with Zoom, Google Meet, and Teams?
Yes — and with anything else that plays call audio on your Mac. Because capture happens at the OS via a process tap, there is no per-platform integration to break.
Do other participants see anything?
No. Nothing joins the meeting and nothing is injected into it. Which is precisely why you should tell them — Fazit includes a one-line disclosure notice for the start of a call.
Isn’t this just recording by another name?
No, and the distinction is load-bearing: audio exists only in a RAM ring buffer during the call and is unconditionally destroyed. There is no file to keep, leak, subpoena, or delete. Recording means persistence; Fazit has none.
Does it capture both sides of the conversation?
Yes — the process tap captures the remote side (what your Mac plays) and your microphone captures you. The note’s transcript is labeled You/Them.