Docs / Meeting Recording / How Recording Works

How Recording Works

Dual-stream audio capture with local transcription. No bot joins your call.

QuickContract records meetings by capturing two separate audio streams simultaneously: one for the other participants on the call and one for your own voice. These streams are transcribed locally on your Mac using Whisper, so nothing is uploaded or sent to any server.

Dual-stream audio capture

Most recording tools capture a single mixed audio stream, making it difficult to distinguish who said what. QuickContract takes a different approach by maintaining two independent streams throughout the recording:

  • System audio (them) — Captures the audio output from your meeting app using the macOS AudioHardwareTapping API, introduced in macOS 14.2. This is the voice of everyone else on the call. Because it taps the audio hardware directly, it works with any meeting app without requiring Screen Recording permission or injecting a bot into your call.
  • Microphone (me) — Captures your voice through the built-in or connected microphone via CoreAudio HAL. This stream is kept separate so your words are always attributed to you in the transcript.

Each chunk of audio is labeled with a speaker tag — "me" or "them" — before it reaches the transcription engine. The result is a transcript with clear speaker attribution, so you can see exactly who said what during negotiations, deal discussions, or project calls.

Real-time transcription in chunks

Audio is processed in 10-second chunks. As each chunk completes, it is immediately sent to the local Whisper engine for transcription. This means text starts appearing in the transcript within seconds of being spoken, not after the meeting ends.

The chunked approach also keeps memory usage low. Rather than buffering an entire meeting's audio, QuickContract processes and discards audio data continuously. A one-hour meeting uses roughly the same amount of memory as a five-minute call.

Local transcription with Whisper

Transcription is handled by whisper-cpp, an optimized C++ implementation of OpenAI's Whisper model that runs as a sidecar binary alongside QuickContract. When you start a recording, QuickContract feeds each 10-second audio chunk to whisper-cpp, which returns the transcribed text.

You can choose between two model sizes — base for speed or large for maximum accuracy — depending on your needs and hardware. Both models run entirely on your Mac. See Whisper Models for details on choosing the right one.

Your audio never leaves your Mac

Unlike cloud-based tools, QuickContract doesn't send a bot to your meeting or upload your audio. Everything — recording, transcription, and storage — stays on your Mac. The only network calls happen if you later choose to generate a contract from the transcript using an AI provider.

What happens after recording

Once a recording ends, the full transcript is saved to QuickContract's local database. From there you can review the conversation, search through it, or use the Deal-to-Contract agent to turn the discussion into a draft agreement. The transcript retains speaker labels, so the AI knows which terms were proposed by which party.