Record a Microsoft Teams Meeting on Mac Without a Bot
Capture Teams calls on macOS without sending Otter, Fireflies, or any cloud notetaker into the meeting. On-device transcription, no Copilot, no awkward attendee.
Dictanta captures the call's audio straight from the menu bar on your Mac — no bot in the call, free for your first 3 recordings, then from $9.99/mo.
Download on the App Store Dictanta for Mac, iPhone & iPadYou finished a Teams call ten minutes ago. There were six people on it. Two of them said something useful and you can’t quite remember which two. Your options are: pull up the Teams native recording in OneDrive (if your tenant lets you record at all), wait for Copilot’s recap to finish processing, or look at whatever your third-party notetaker decided to send to your inbox. Any of those works. None of them is private to your Mac, and at least one of them required a bot in the meeting that everyone else watched join.
This post is about the fourth option — recording a Microsoft Teams meeting locally on a Mac, with no bot in the call, no audio leaving the laptop, and a transcript and summary that exist only in your account. The same approach works for the Zoom case we covered earlier, but Teams has its own particular constraints worth covering directly.
What “without a bot” means in a Teams context
Teams has more meeting-bot variants than Zoom does, partly because Microsoft built bots into the product itself. When you connect a third-party notetaker to a Teams call, one of these things is happening:
- Otter, Fireflies, Read.ai, Fellow, Tactiq. These add a participant to the meeting (usually named after the service or after a fake person — “Fred from Fireflies”). The bot dials in, captures the audio stream Teams sends to participants, and ships it to a cloud vendor for transcription and summarization.
- Microsoft Copilot in Teams. Microsoft’s native AI recap, gated to certain Microsoft 365 licenses (E3/E5 with Copilot add-on). Runs on Microsoft’s cloud infrastructure. Doesn’t add a visible bot but processes the call on Azure.
- Teams native recording. Records the call and stores it in OneDrive/SharePoint, also on Microsoft’s cloud. Whether the resulting file gets transcribed depends on your tenant’s Stream/Premium licensing.
- A calendar-watcher service that auto-records every meeting. Same as #1 but you don’t have to manually invite it.
All four of these involve either a visible third-party attendee, a cloud pipeline you don’t control, or both. For a lot of people that’s fine. For an executive on a sensitive customer call, for a recruiter doing candidate interviews, for a manager doing performance reviews, for anyone in a regulated industry — it’s not always fine.
The on-device alternative captures the audio that Teams is already playing into your Mac’s output device and transcribes it locally, with no participant in the meeting and no cloud upload.
The macOS APIs that make this trivial
Two Apple frameworks shipped in macOS 26 (Tahoe) and iOS 26 do the work:
- ScreenCaptureKit with audio-only filters. Lets a sandboxed app subscribe to the system audio output of a specific running process. We point it at the Teams app and we get exactly the audio Teams is producing — nothing else on the system.
- SpeechAnalyzer, Apple’s on-device ASR introduced at WWDC 2025. Faster than Whisper Large V3 Turbo on the same hardware in independent tests, runs entirely on-device, supports a growing list of locales. No network required.
These are the same primitives the Zoom no-bot workflow uses. They are completely platform-agnostic about which meeting app is making the noise — Teams, Zoom, Google Meet, Webex, Discord, or a podcast playing in Safari all look the same to ScreenCaptureKit.
The end-to-end Teams flow
Here is what actually happens when you record a Teams meeting on a Mac running macOS 26 with Dictanta installed.
1. Join the Teams call normally
Open the Teams app (or join via the web client in Safari/Chrome — both work). Don’t enable Microsoft’s built-in recording unless you want a second copy in OneDrive. Don’t invite any third-party notetaker.
2. Start the recording from the menu bar
Dictanta lives in your menu bar. Click the waveform icon and hit Record. The icon turns coral
and pulses, and the panel shows a live caption of what’s being said plus a moving waveform.
⇧⌘R starts a new recording when Dictanta or its panel is frontmost; if you’d rather start
recording without leaving Teams, enable the optional global shortcut (⌃⌥⌘R) via the
“Global record shortcut” toggle in Settings — it’s off by default.
The first recording of system audio triggers a one-time macOS prompt for screen recording permission — Apple gates system audio capture behind the same TCC entitlement as screen capture. Grant it. No video frames are actually captured; this is just how the API contract is structured.
3. Dictanta auto-detects Teams
Dictanta recognizes Teams — both the new client and classic — among the meeting apps it watches for, so its source picker’s This meeting option already points at the running Teams call. The picker has exactly three options: My voice (just your mic), This meeting (the detected meeting app’s audio plus your mic), and Another app (the frontmost app’s audio plus your mic). On the two system-audio options your microphone is mixed in automatically, so the transcript covers both the audio Teams is playing (everyone else) and you.
Recordings start out titled with a timestamp, then rename themselves after the meeting topic once the summary lands.
4. Live partial captions during the call
During the meeting, the menu-bar panel shows a live caption line — short, glanceable, and it won’t show on a screen share unless you open the panel there. The same panel shows a moving waveform, so one glance confirms the capture is running. Same behavior as the Zoom flow.
The captions are real-time SpeechAnalyzer hypotheses, streaming in near real time. Useful when someone says a name or a number and you want to confirm you heard it right without breaking the conversation.
5. Stop, and get a finished transcript + summary
When you end the Teams call (or click stop in Dictanta’s menu-bar panel), three things happen on-device:
- The full transcript is finalized with per-segment timestamps. Each segment is tap-to-seek.
- Apple’s Foundation Models LLM generates a structured summary: TL;DR, action items (best-effort owner and due-date inference), decisions, and open questions.
- Every summary bullet is anchored to the audio span it came from. Hovering a bullet highlights the matching segment in the waveform; clicking scrubs the audio to that moment and highlights the transcript line.
The audio-anchored summary is the part most users care about within a week of using it. AI summaries are useful only if you can verify them in one click — and “click a bullet, hear the sentence” is the cheapest possible verification. The LLM organizes the audio; the audio remains the source of truth.
6. Export, or keep it on the Mac
By default, the transcript and summary sync to your other Apple devices via CloudKit. The audio itself never syncs — there is no setting that sends it anywhere. Exports available:
- Markdown — drops cleanly into Notion, Obsidian, Apple Notes, Bear, Logseq, Craft.
- PDF — a formatted transcript for anyone who just needs to read it.
- Word (.docx) — for teams that live in Word or Google Docs.
- SRT subtitles — timestamped caption blocks for video workflows.
- JSON — for tooling and Shortcuts integrations.
The raw audio file stays on your Mac until you delete the recording — deleting a recording removes its audio. The transcript and summary stay until you delete them.
Where Teams differs from Zoom in practice
The flow above is identical to Zoom in the broad shape. A few Teams-specific things worth flagging:
Teams web client vs. native client. Both work. The web client (Teams in Edge or Safari) produces system audio just like the native app, so Dictanta captures either equally well. If your IT has restricted the native Teams app install, the web version is a complete substitute from the recording side.
Microsoft Copilot doesn’t conflict. If your tenant has Copilot for Teams turned on, you can let it run and also record locally with Dictanta. They don’t interfere — Copilot operates on Microsoft’s side; Dictanta operates on your Mac’s audio output. You end up with two recaps from two pipelines, which is fine if you want a sanity check, or wasteful if you don’t.
Teams Premium “Intelligent Recap” requires a Teams Premium license for each user who wants the recap. Dictanta doesn’t. Whether your tenant has Premium licensing is irrelevant to whether you can take your own private notes.
Calls dialed into a phone number routed to a Teams app are still capturable. If you’re using Teams as a softphone for calls to or from phone numbers, the system audio capture path works identically. Just make sure the call itself is running on the Mac — a call taken on your phone produces no Mac audio to capture (see the limits section below).
Where this approach has limits
Worth being direct about:
- No automatic speaker tagging. Bots that join Teams calls can read the participant list and label each utterance with the speaker. Dictanta does not do that — speaker diarization from a system-audio mix is not yet production-grade on short clips on Apple’s on-device stack. Diarization is planned for a later release.
- You have to be at the Mac running the recording. Bots can sit in calls you’ve skipped. Dictanta needs your Mac present, awake, and joined to the meeting itself.
- No native CRM integration. Dictanta exports Markdown, PDF, Word, SRT, and JSON. If you want notes to flow into HubSpot or Salesforce automatically, you wire your own Zapier/Shortcut or use the JSON export with a webhook. Otter has built-in integrations there.
- The call has to run on the Mac. If you join the Teams call on your phone instead of the Mac, there’s no Mac audio to capture. Capture works whenever the call itself runs on the Mac, whatever headphones you use — ScreenCaptureKit taps the Teams app’s audio stream directly, so the output device doesn’t matter.
If those gaps matter, the cloud-bot category is still the answer. If they don’t — and for most indie operators, founders, and managers, they don’t — the local path is cleaner.
A note on macOS permissions and Teams
The first time Dictanta captures system audio with Teams running, macOS shows a sheet asking for screen recording permission. As mentioned, this is the API contract: ScreenCaptureKit’s audio capture path is gated by the same TCC entitlement as video capture, even when no frames are requested.
You can verify in System Settings → Privacy & Security → Screen & System Audio Recording that Dictanta is the only app with the entitlement turned on. You can also revoke it any time; on next launch Dictanta falls back to microphone-only recording, which still captures your own voice but not the other participants.
For managed Macs where IT has disabled the screen-recording entitlement entirely, Dictanta runs in mic-only mode. Useful for in-person meetings, less useful for remote Teams calls where you want the other side captured. If you want the full system-audio path on a managed Mac, talk to your IT admin about granting the entitlement to Dictanta specifically. The app is sandboxed and the entitlement is auditable.
Trying it on your next Teams call
Real first-time workflow:
- Install Dictanta from the Mac App Store. The download is small. macOS fetches the SpeechAnalyzer language model once if it isn’t already on the Mac; transcription then runs fully offline.
- Open Dictanta once. Grant microphone and screen recording permissions when prompted. If
you want to start recordings while Teams has focus, flip on the “Global record shortcut”
toggle (
⌃⌥⌘R) in Settings. - In your next Teams meeting, click Record in the menu bar (or press the global shortcut, if you enabled it) when the call starts. Don’t think about it again.
- After the meeting, open Dictanta. The recording is on the meetings list — named after the meeting topic once the summary lands, with the date, duration, and source type on the row. Click into it for transcript + summary.
- Export to Markdown if you want it in Notion or Obsidian. Or just leave it in Dictanta — the transcript and summary are searchable across all your recordings (search is on-device too).
The free tier gives you three meetings, which is enough to decide whether the summary quality holds up for what you actually need. If it does, the paid tiers are $9.99/mo, $79.99/yr, or $149.99 lifetime. There is no per-minute meter and no length cap at any tier — a six-hour all-hands transcribes the same way a fifteen-minute one-on-one does.
Bottom line
For Mac users on Teams who want a private, no-bot way to capture meetings, the path is: capture system audio with ScreenCaptureKit, transcribe with SpeechAnalyzer, summarize with Apple’s Foundation Models, all on-device. No participant in the call, no audio leaving the Mac, no vendor pipeline, no monthly meter.
That is the path Dictanta ships, both for Teams and for Zoom, Google Meet, Webex, and anything else that plays audio out of your Mac. The Mac is the most feature-complete target because system-audio capture is a Mac-only capability — iOS doesn’t let third-party apps listen to other apps’ audio.
If your Teams calls are routine and a cloud notetaker is fine for them, keep what’s working. If even one call per week involves something you’d rather not hand to a third party — a customer escalation, a hiring debrief, a strategy review — having the local option available costs you nothing and unlocks the difference between “had to take the meeting cloud-side or not at all” and “took the meeting, kept the notes, told no one.”