Meetbot.start(opts)
Begins capture. Returns a session id. Audio chunks stream to disk and upload via background URLSession to your meetbot tenant.
02 · desktop recording sdk
shipping Q3 2026 · macOS first · waitlist openA native SDK you embed in your Electron, Tauri, or Swift app. The user records their own meetings — no bot in the call, no second participant tile, no admit gate. macOS ships first in Q3 2026.
overview
For Granola-style products that want zero meeting-bot footprint, the Desktop SDK is faster, cheaper, and more private than running a bot in the call. The user installs your app, grants permission once, and we capture meeting audio off the system audio graph with the participant's own microphone — no second tile, no admit lobby, no anti-bot screen to fight.
macOS path. On macOS 14.4+ we use the Core Audio Process Tap (CATapDescription) — audio-only, no screen-recording permission required. Massive UX win. Fallback to ScreenCaptureKit's SCContentFilter audio-only on 13.0–14.3 for users still on older OS versions. Distributed as a signed .xcframework.zip for Swift integrators and as @meetbot/desktop-sdk on npm with prebuilt mac-arm64 + mac-x64 .node binaries for Electron.
Windows lands later in Q3 2026 — a C++ DLL using ActivateAudioInterfaceAsync plus VIRTUAL_AUDIO_DEVICE_PROCESS_LOOPBACK (Windows 10 build 20348+). Linux follows in M4 via libpipewire's .monitor source. The API surface is identical across platforms; you write your integration once. Reference implementation lives at github.com/meetbot — MIT-licensed, including the sample Granola-style Electron app.
honest scope
We've scoped the surface, picked the capture paths, and started the macOS framework. None of it is a binary you can pnpm-install yet.
works today
Bot-based capture (the alternative path)
/product/meeting-bot-api ships today and covers most server-side use cases without needing the user to install your app. Use it while the desktop SDK bakes.
macOS capture-path research, finalised
Core Audio Process Tap (CATapDescription) for macOS 14.4+ — audio-only, no screen-recording permission. ScreenCaptureKit fallback for 13.0–14.3. Reference impl: insidegui/AudioCap (CATap, permissive license).
Sample-app spec, public
samples/granola-style-mac-app pre-architected. Electron + N-API binding + the auth-on-first-launch flow are documented in docs/sdk-shipping-strategy.md.
not yet
macOS .xcframework binary
Targeted Q3 2026. Apple Developer ID + notarization pipeline both pending.
@meetbot/desktop-sdk on npm
Targeted Q3 2026 alongside macOS GA. Will ship mac-arm64 + mac-x64 N-API .node binaries first; Windows + Linux follow.
Windows DLL
Q3 2026 (later half). C++ DLL using ActivateAudioInterfaceAsync + VIRTUAL_AUDIO_DEVICE_PROCESS_LOOPBACK on Windows 10 build 20348+.
Linux .so via libpipewire
M4 (Aug–Sep 2026). PipeWire .monitor source path.
Granola-style sample app, runnable
Repo will land in github.com/meetbot-dev when the SDK can actually capture audio.
While you wait, the bot-based capture covers most server-side meeting recording use cases — see /product/meeting-bot-api.
planned surface
Begins capture. Returns a session id. Audio chunks stream to disk and upload via background URLSession to your meetbot tenant.
Finalizes the session. Emits a completion delegate with the manifest path and content hash.
Triggers the OS permission flow (mic + screen-recording where required) with copy you can override.
npm package with prebuilt N-API binaries for mac-arm64, mac-x64, win32-x64 (later), linux-x64 (M4).
Full Electron + UI reference implementation. MIT. Mirrors Recall's muesli-public.
Apple notarization in the release pipeline. No 'damaged app' Gatekeeper popups for your end users.