Product Overview

The Meeting Intelligence SDK

A lightweight daemon that captures meeting audio, video, and transcripts from every major platform. No meeting bots. No browser extensions. Just native OS-level capture.

Audio Capture

System-level audio without meeting bots

MeetCapture captures system audio directly from the OS audio pipeline. On macOS, it uses ScreenCaptureKit for zero-latency audio tapping. On Windows, WASAPI in loopback mode captures all desktop audio. No meeting bots, no browser extensions, no participants added to your call.

  • macOS: ScreenCaptureKit (requires macOS 12.3+)
  • Windows: WASAPI loopback capture
  • 48kHz / 16-bit PCM, Opus encoding optional
  • Configurable silence detection and auto-start
config.toml
[audio]
enabled = true
sample_rate = 48000
channels = 2
format = "pcm_s16le"
silence_threshold = -40  # dB
auto_start_on_meeting = true

Video Capture

H.264 screen recording with configurable FPS

Capture the meeting window or full screen as H.264 video, muxed to MP4. Configurable frame rate (1-30 FPS) and resolution. The daemon automatically identifies and captures the correct window for each meeting platform.

  • H.264 hardware encoding (VideoToolbox / Media Foundation)
  • 1-30 FPS, configurable quality preset
  • Auto window detection per platform
  • Output: MP4 container with synced audio
config.toml
[video]
enabled = true
fps = 15
quality = "balanced"  # low | balanced | high
codec = "h264"
output_format = "mp4"
capture_mode = "window"  # window | fullscreen

Real-time Transcription

Live speech-to-text with speaker diarization

Stream audio to Deepgram or AssemblyAI for real-time transcription with speaker diarization. Each utterance is timestamped and attributed to a speaker. Interim results stream in with sub-second latency; final results include confidence scores.

  • Deepgram Nova-2 and AssemblyAI supported
  • Speaker diarization with per-utterance attribution
  • Word-level timestamps and confidence scores
  • Bring your own API key or use MeetCapture's pooled keys
config.toml
[transcription]
enabled = true
provider = "deepgram"  # deepgram | assemblyai
model = "nova-2"
language = "en"
diarize = true
interim_results = true
# api_key = "your-key"  # or use DEEPGRAM_API_KEY env

Cloud Sync

Automatic upload to Supabase

When a meeting ends, the daemon automatically uploads the recording, transcript, and session metadata to your Supabase project. Recordings go to Supabase Storage with resumable uploads. Transcripts and metadata go to PostgreSQL tables with RLS policies.

  • Resumable uploads for large recordings
  • Signed URLs for secure playback
  • mc_sessions, mc_transcripts, mc_recordings tables
  • Row Level Security (RLS) per organization
config.toml
[cloud]
enabled = true
supabase_url = "https://xrhwfuquudleamotznzx.supabase.co"
# supabase_anon_key loaded from env
auto_upload = true
upload_recordings = true
upload_transcripts = true
storage_bucket = "recordings"

Platform Detection

Auto-detects Zoom, Teams, Meet, Slack, Webex

The daemon continuously monitors running processes and window titles to detect active meeting sessions. When a supported platform is detected, recording starts automatically. No manual intervention needed — it just works.

  • Process name and window title matching
  • Supports Zoom, Microsoft Teams, Google Meet, Slack Huddles, Webex
  • Configurable allow/deny list per platform
  • Detects meeting start, end, and participant changes
config.toml
[detection]
auto_detect = true
poll_interval_ms = 1000
platforms = ["zoom", "teams", "meet", "slack", "webex"]

# Optional: only record specific platforms
# allow_list = ["zoom", "teams"]
# deny_list = ["slack"]

Privacy & Local-First

Your data stays on device until you opt in

MeetCapture follows a local-first architecture. All audio capture, video recording, and transcription happen on the user's device. Data is stored locally in a configurable output directory. Cloud sync is entirely optional and requires explicit opt-in.

  • All processing happens on-device
  • Local storage with configurable retention
  • Cloud sync is opt-in, never automatic by default
  • No telemetry, no analytics, no tracking
config.toml
[storage]
output_dir = "~/.meetcapture/recordings"
retention_days = 30  # auto-delete after 30 days
max_storage_gb = 50  # pause recording if exceeded

[privacy]
telemetry = false
crash_reports = false
cloud_sync_default = false  # user must opt-in

How the pieces fit together

A single daemon process handles everything. No separate services to manage.

D

Daemon

Rust binary (<20MB) runs as a background service. Handles capture, encoding, transcription, and sync.

S

Supabase

PostgreSQL for metadata and transcripts. Storage for recordings. Realtime for live updates. Edge Functions for API.

D

Dashboard

Next.js web app for managing sessions, API keys, webhooks, team settings, and playback.

Ready to integrate meeting capture?

Get started with the free tier. No credit card required.