meetbot.dev

02 · desktop recording sdk

shipping Q3 2026 · macOS first · waitlist open

Bot-less capture, local.

A 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

Why this exists.

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

Where the desktop SDK stands today.

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

Spec, in the open.

item

Meetbot.start(opts)

Begins capture. Returns a session id. Audio chunks stream to disk and upload via background URLSession to your meetbot tenant.

item

Meetbot.stop()

Finalizes the session. Emits a completion delegate with the manifest path and content hash.

item

Meetbot.requestPermissions()

Triggers the OS permission flow (mic + screen-recording where required) with copy you can override.

item

@meetbot/desktop-sdk

npm package with prebuilt N-API binaries for mac-arm64, mac-x64, win32-x64 (later), linux-x64 (M4).

item

samples/granola-style-mac-app

Full Electron + UI reference implementation. MIT. Mirrors Recall's muesli-public.

item

Notarized + Developer ID signed

Apple notarization in the release pipeline. No 'damaged app' Gatekeeper popups for your end users.