Recap
Privacy-first macOS meeting recorder that transcribes and summarizes your calls locally using WhisperKit and Ollama — no data ever leaves your Mac.
Recap is an open-source, macOS-native application that records audio from meetings and any other app, then transcribes and summarizes the content entirely on your device. It uses Apple’s CATapDescription API to intercept per-process audio without drivers or virtual cables, feeds the recording to WhisperKit’s CoreML-accelerated Whisper models for transcription, and routes the transcript to a locally running Ollama LLM for summarization. Nothing leaves your machine unless you deliberately opt into the OpenRouter cloud fallback.
Built for Apple Silicon Macs running macOS 15.0 or later, Recap surfaces as a menu bar application. It monitors active windows via ScreenCaptureKit to automatically detect when Zoom, Microsoft Teams, or Google Meet meetings are running, starting recordings without manual intervention. System audio and optional microphone input are captured simultaneously and combined into a single transcript that preserves speaker context.
The app stores transcripts and summaries locally through Core Data and manages sensitive API keys (Hugging Face, OpenRouter) in the system Keychain. Users can select from multiple Whisper model sizes to balance accuracy against local compute requirements, and configure custom summarization prompts via the settings panel. Recap is still in active development — the README explicitly notes it as a proof-of-concept heading toward production readiness with features like live transcription and background audio processing on the roadmap.
What You Get
- Process Audio Tap - Captures system audio from specific applications using CATapDescription and AudioHardwareCreateProcessTap, requiring no kernel extensions, virtual audio drivers, or third-party software.
- On-Device Whisper Transcription - Transcribes captured audio using WhisperKit’s CoreML-accelerated Whisper models downloaded directly from Hugging Face, with multiple model sizes selectable in Settings.
- Automatic Meeting Detection - Monitors window titles via ScreenCaptureKit to detect active Zoom, Microsoft Teams, and Google Meet sessions and automatically trigger recording without manual user action.
- Dual-Audio Recording - Records system audio and optional microphone input simultaneously, then combines both streams into a unified transcript that contextualizes the user’s own voice against meeting audio.
- Ollama Local Summarization - Routes transcripts to any locally installed Ollama model for fully offline AI summarization, keeping all meeting content on the user’s Mac.
- OpenRouter Cloud Fallback - Optionally routes summarization to cloud LLMs via OpenRouter for users who lack sufficient local compute, with API keys stored securely in the macOS Keychain.
- Custom Prompt Templates - Allows users to define their own summarization prompt instructions in Settings, enabling domain-specific output formats like action-item lists or executive briefs.
- Persistent Recap History - Stores all transcripts and summaries in a local Core Data database accessible through a Previous Recaps panel for review and reference.
Common Use Cases
- Legal professionals handling confidential calls - An attorney records client strategy calls via Zoom and generates local summaries using Ollama, ensuring privileged communications never reach third-party servers.
- Developers staying informed across standups - An engineer runs Recap in the background during daily standups, reviewing the auto-generated summary afterward instead of splitting attention between code and the meeting.
- Consultants documenting client deliverables - A freelance consultant records Google Meet project reviews on an M2 Mac, uses the summary to draft follow-up emails, and retains the full transcript for invoice documentation.
- Researchers capturing qualitative interviews - An academic researcher transcribes hour-long interview sessions offline using the Large v3 Whisper model, then summarizes each session locally to build a searchable findings database.
- Product managers compiling sprint notes - A PM captures weekly planning meetings in Teams and uses a custom summarization prompt to extract only decisions and assigned action items.
- Remote workers managing asynchronous context - A distributed team member uses Recap to stay caught up on meetings they joined late, generating summaries of the portions they missed without rewatching recordings.
Under The Hood
Architecture Recap follows a layered MVVM architecture anchored by a centralized dependency injection container that wires together all services, repositories, and view models at application startup. Responsibilities are clearly separated: view models manage UI state and user interactions, services encapsulate core business logic including transcription, summarization, and meeting detection, and repositories handle data persistence. Recording is orchestrated through coordinators that compose independent audio capture modules via protocol abstractions, enabling an in-memory test mode without touching real audio or storage. Event-driven communication flows through Combine publishers for cross-component state like meeting detection status and LLM provider availability. The application is entirely menu-bar resident, with the panel manager serving as the top-level composition root. The design reflects solid layering for a focused solo-developer project, though the dependency container serves as a broad service locator rather than a narrower, scope-limited wiring approach.
Tech Stack Recap is written entirely in Swift 5.9+ targeting macOS 15.0+, using SwiftUI for the menu bar panel interface with AppKit integration via NSApplicationDelegate and NSStatusItem. Audio capture uses Apple’s Core Audio framework directly through CATapDescription and AudioHardwareCreateProcessTap for driver-free per-process audio interception, paired with AVAudioEngine and AVAudioFile for microphone recording and PCM file writing. On-device transcription is handled by WhisperKit (argmaxinc/WhisperKit) with CoreML-accelerated Whisper models sourced from Hugging Face. Local summarization routes through the Ollama Swift SDK (mattt/ollama-swift) while the cloud fallback uses a custom OpenRouter HTTP client. Persistence relies on Apple’s Core Data, and API tokens are managed via Keychain Services. The UI renders AI-generated summaries with formatting through swift-markdown-ui, and tests use XCTest with Mockable for protocol-level mock generation.
Code Quality
The project includes an XCTest suite covering meeting detector implementations for Zoom, Teams, and Google Meet, the meeting detection service, and use-case layers including onboarding and settings flows. Mockable is used throughout to generate mock types from protocols, enabling properly isolated unit tests of service dependencies. The README explicitly lists comprehensive test coverage as a roadmap item, indicating the current suite is incomplete rather than comprehensive. Source files are consistently structured with clear naming conventions — PascalCase types, camelCase methods, and a Type suffix on all protocol names. Error handling uses typed enums such as TranscriptionError, LLMError, and KeychainError with descriptive cases, though some audio processing error paths log and swallow failures rather than propagating them to callers. No linter or formatter is currently configured, noted explicitly in the README as planned future work. There is no CI pipeline.
What Makes It Unique Recap’s defining technical contribution is its use of CATapDescription with AudioHardwareCreateProcessTap — a macOS 14.2+ API that captures audio output from individual processes in user space without kernel extensions, virtual audio cables, or privilege escalation. This is architecturally cleaner than all prior macOS audio capture approaches and eliminates the system integrity and security surface created by driver-level interception tools. Combining this with WhisperKit’s CoreML-accelerated on-device Whisper inference produces a genuinely private transcription pipeline where audio never traverses a network. The meeting detection layer adds a further automation layer using ScreenCaptureKit window title pattern matching with per-application regex detectors, enabling hands-free recording triggered by the presence of an active meeting window. This composition of OS-native process audio tap, on-device ML transcription, and local LLM summarization with a graceful cloud fallback is technically coherent and meaningfully differentiated from cloud-dependent meeting tools.
Self-Hosting
Recap is released under the MIT License, one of the most permissive open-source licenses available. This means you can use it freely for personal, educational, or commercial purposes, modify the source code without restriction, and redistribute original or modified versions without any copyleft obligations. There are no usage fees, no seat limits, and no requirement to share modifications with the upstream project. The only obligations are preserving the copyright notice and the license text in any distribution.
Running Recap yourself requires an Apple Silicon Mac with macOS 15.0 or later and Xcode 15 or later for building from source, since no pre-compiled binaries are currently available. The local Ollama path demands substantial hardware: Apple M1 minimum with 16 GB RAM and 10 GB free storage, with M2 Pro and 32+ GB RAM recommended for larger models. The Whisper Large v3 model download adds several gigabytes on top of that. There is no Docker image, no server component, and no managed installer — you clone, open the Xcode project, configure environment variables in the scheme editor, and build. Ongoing responsibility for updates, model management, and any debugging falls entirely on the person running the app.
There is no paid tier, hosted cloud version, or commercial product from the developers. This is a proof-of-concept project actively seeking contributors rather than a production-ready tool. Compared to commercial alternatives such as Fireflies, Otter.ai, or Granola, Recap offers significantly stronger data privacy guarantees at the cost of requiring technical setup, accepting that the app is explicitly noted as broken in some respects, and bearing all operational responsibility yourself. Users who need reliability guarantees, support SLAs, cross-platform access, or calendar integrations will find those absent here — the value proposition is entirely about keeping sensitive meeting content off third-party infrastructure.
Related Apps
AutoGPT
Automation · Productivity · AI Assistants
Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.
AutoGPT
OtherDify
No Code Platforms · AI Development · Developer Tools
Visual LLM workflow platform with RAG pipelines, agent capabilities, and model management for building production AI applications.
Dify
OtherOpen WebUI
AI Assistants · AI Agents
The extensible, privacy-first AI platform that runs Ollama, OpenAI, and any LLM backend behind a polished, feature-packed web interface.