Recall
Product & Desktop Engineer
About the Project
Recall captures your microphone and the other side of any desktop call — Zoom, Meet, Teams, WhatsApp Desktop, browser calls — streams it to Deepgram for a live transcript, and summarises the call with an LLM when you stop. It is deliberately local-first: audio, transcripts and summaries live on your machine in SQLite, and the only outbound traffic in the entire app is audio to Deepgram and transcript text to OpenAI. No backend, no telemetry. Built as an Electron app with packaged installers for Windows and macOS.
Key Highlights
- Captures mic and system audio together — WASAPI loopback on Windows, and a guided BlackHole virtual-device setup on macOS, where the OS gives no direct route to system audio
- Streams 16 kHz PCM from an AudioWorklet over IPC to a Deepgram WebSocket for a live diarized transcript, while a parallel MediaRecorder writes the Opus archive
- Generates a structured post-call summary with action items and decisions via OpenAI, stored alongside the transcript in SQLite
- Encrypts API keys through the OS keychain (Windows Credential Manager, macOS Keychain) rather than leaving them in a config file
- Added optional screen recording that raises the consent bar deliberately — the per-call checkbox rewords itself when video is on, and video never leaves the machine or reaches Deepgram
Technical Challenges
The architectural constraint is that MediaStream APIs do not exist in Electron's main process, so audio capture has to live in the renderer while transcription, storage, summarisation and key handling stay in main — and the renderer never touches ipcRenderer directly, only a typed bridge from the preload script. The decision I care about more is that consent is a feature, not a disclaimer: many jurisdictions require every participant to agree, so Recall never records on its own, shows a red indicator and tray icon the entire time, and degrades to microphone-only with an explicit message rather than silently failing when system audio is unavailable.