← Help & Docs

Meeting Recorder

Capture and transcribe meetings locally in the TATER agent, then log them as meeting records - no cloud transcription, no audio ever leaves the machine. Last updated 2026-07-15

What it is

The Meeting Recorder is a component of the TATER agent that records the meetings you attend but don't host - the ones where you have no access to the host's transcript. It captures system audio (everyone else, via a WASAPI loopback) and your microphone (you) as two separate tracks, transcribes them entirely on your own machine with a local Whisper model, and turns the result into a TATER Meeting Record that your AI can mine for action items.

Nothing leaves your machine until you say so. Capture and transcription are 100% local and offline. Only after you review the draft and click Save to TATER is the text transcript uploaded - the audio is never sent anywhere.

Why local

ConcernHow the Meeting Recorder handles it
PrivacyAudio is captured, mixed, and transcribed on the endpoint. No cloud speech service, no audio upload.
CostNo per-minute transcription billing - the local Whisper model does the work on the CPU.
Meetings you don't hostLoopback capture records whatever you can hear, so you get a transcript even when the organizer's recording/transcript is off-limits.
Speaker attributionThe two-track split gives you free diarization: your mic = You, the system audio = Others.
Sharing your screen? The recorder window is pinned above other windows, so on a single-monitor setup it will be visible to everyone on the call — including the fact that you're recording. Click the πŸ“Œ always on top badge in the window's header to unpin it before you share. The tray icon still shows the elapsed time, so an unpinned recording is still hard to forget.

Recording a meeting

  1. Click the TATER agent tray icon β†’ πŸŽ™ Record Meeting. The recorder window opens, pinned above other windows.
  2. Press Record. A live indicator and elapsed timer show it's capturing.
  3. When the meeting ends, press Stop. The status changes to Transcribing locally… while Whisper processes the audio.
  4. A Review & save panel appears with the draft (see below).
  5. Adjust the details and click βœ“ Save to TATER - or Discard (the local transcript file is always kept either way).

You can also drive it entirely from the agent's local dashboard (the same window the tray opens).

Review & save

Nothing is auto-uploaded. You review every recording before it becomes a meeting record. The panel lets you confirm:

FieldNotes
Link to a calendar eventThe Outlook events that overlapped the recording, best match first (and pre-selected). Picking one adopts its subject as the title, its invitees as attendees, and its body as the notes, and links the recording to that event. Choose Don't link to an event to keep what you typed.
TitleTaken from the linked calendar event, or a timestamp default. Always editable — once you type your own, switching events won't overwrite it.
Attendees who were actually thereComma-separated. Prefilled from the linked event's invitees so you can delete the no-shows — but only for smaller meetings. Past ~12 invitees it's left blank rather than claiming everyone invited attended; the complete invite list is stored on the meeting record either way.
NotesPrefilled with the calendar invite's body (agenda and so on), with the Teams join boilerplate stripped. Edit freely.
Transcript previewThe speaker-tagged transcript, so you can confirm it captured cleanly before saving.
MetadataDuration, segment count, speakers, and the local file path (with a reveal link to open it in the file browser).

Saved recordings appear in the Recent recordings list with a βœ“ in TATER badge and quick links to the local file and the TATER meeting record.

Calendar matching

While you review a recording, the recorder lists the Outlook events that overlapped it (Microsoft Graph, app-only Calendars.Read) and pre-selects the best match. The event you pick supplies the subject, organizer, attendees, and Teams meeting id for the meeting record. If no event overlapped - or the grant isn't in place - the recording still saves with your own title; nothing is ever blocked on the calendar.

Granting Calendars.Read - get the app right. The recorder resolves Graph credentials from the tenant's stored tenant credential (Manage › Tenant Credentials) - not the sign-in / MSAL app registration. Grant application Calendars.Read to that app, then admin-consent it. Granting it to the wrong app looks identical to "no event matched": the lookup fails silently by design, so nothing is logged and no error is shown. If matching never works, check the grant on the tenant-credential app first. See Azure app registration.

What happens after you save

The transcript lands as a TATER Meeting Record with the transcript attached. From there, extraction (action items, decisions, summaries) happens in your own AI session via the TATER MCP server - Claude/Copilot pulls the transcript with get_meeting_transcript and writes tasks and decisions back with the standard MCP tools. TATER runs no server-side LLM; your AI subscription does the compute.

Finding your meetings later

My TATER › My Meetings lists every meeting you're connected to - ones you recorded with the agent, organized, attended, or were invited to - newest first, with a chip on each row saying which. Filter by relationship or search by title/organizer, and click through to the full record and transcript in Ops.

A recording is tied to you by the work account the agent resolves on your machine (whoami /upn), stored on the record as recordedBy. That's also what guarantees you can always read your own recording under the default attendees-only visibility, even when it matched no calendar event and lists no attendees.

Privacy & consent

Recording a meeting you don't host may require the consent of all participants under some state and national laws, and under many organizations' own policies. You are responsible for obtaining consent where required. TATER keeps everything local until you explicitly save, and the meeting record carries a consent attestation and sensitivity level.

Enabling it (administrators)

The recorder is opt-in and Windows-only. It ships as a sidecar (tater-meetingrec.exe + runtime DLLs) bundled in the agent MSI; the Whisper model is downloaded on first enable (SHA-verified) rather than shipped in the installer.

Enable it per machine/org in the agent's config.json:

{
  "meetingRecorderEnabled": true,
  "meetingRecorderModelUrl": "https://sttaterspeedtest.z13.web.core.windows.net/meetingrec/ggml-base.en-q5_1.bin",
  "meetingRecorderModelSha256": "4baf70dd0d7c4247ba2b81fafd9c01005ac77c2f9ef064e00dcf195d0e2fdd2f"
}

On next launch the agent downloads the model (~57 MB) to ProgramData\TATER\models, then the tray item and dashboard card appear. Point meetingRecorderModel at a local .bin instead to skip the download.

Model choice β€” speed vs. accuracy. base.en (above) is the default: it transcribes roughly 3× faster than small.en with near-identical results on clear speech. For maximum accuracy on hard audio (heavy accents, crosstalk) point the URL/SHA at ggml-small.en-q5_1.bin (bfdff4894dcb76bbf647d56263ea2a96645423f1669176f4844a1bf8e478ad30) instead. Changing the model here re-downloads it on the next agent launch.

Troubleshooting

SymptomCause / fix
No "Record Meeting" tray itemRecorder not enabled, or the sidecar/model isn't installed yet. Check meetingRecorderEnabled and that the model finished downloading (agent log).
Empty transcript / "no speech"The captured audio was silent - system output muted, or the default playback device isn't the one you're listening on. Confirm your default output device and that it isn't muted.
Calendar picker says it couldn't checkCalendars.Read isn't granted to the tenant-credential app (the common mistake is granting it to the sign-in app instead), no tenant credential is stored, or the device couldn't resolve your UPN. See the warning under Calendar matching.
Calendar picker lists no eventsThe lookup worked but no Outlook event overlapped the recording window (±30 min). Save with your own title.
Upload failedThe local transcript is always kept. Check the agent's API connectivity; the recording stays in Recent and can be re-saved.

Related