From install to first captured meeting in under 5 minutes. A lightweight daemon handles everything behind the scenes — including action item tracking that keeps your team accountable.
Lightweight binary, under 20MB
Download and install the MeetCapture daemon for your platform. It runs as a background service and auto-starts with your OS. No admin privileges required on macOS; a one-time UAC prompt on Windows.
# macOS + Linux
curl -fsSL https://fluentko.com/install.sh | bash
# Windows (PowerShell)
iwr https://fluentko.com/install.ps1 -UseBasicParsing | iex
# Or grab a binary directly from GitHub Releases:
# https://github.com/fyrosofttech/meetcapture-releases/releases/latest
# Verify install
meetcapture --version
# meetcaptured 0.1.1One config file, sensible defaults
Edit the config.toml file in your MeetCapture data directory. Set your API key, choose which platforms to monitor, configure audio/video settings, and optionally enable cloud sync. Most settings have sensible defaults.
# MeetCapture Configuration
[general]
api_key = "mc_live_abc123..."
output_dir = "~/.meetcapture/recordings"
log_level = "info"
[detection]
auto_detect = true
platforms = ["zoom", "teams", "meet", "slack"]
poll_interval_ms = 1000
[audio]
enabled = true
sample_rate = 48000
[video]
enabled = true
fps = 15
quality = "balanced"
[transcription]
enabled = true
provider = "deepgram"
model = "nova-2"
diarize = true
[cloud]
enabled = true
auto_upload = trueAutomatic meeting detection and recording
Once running, the daemon monitors your system for active meetings. When Zoom, Teams, Meet, Slack, or Webex is detected, it automatically begins capturing audio, recording video, and streaming to the transcription provider. You get a local notification and a system tray indicator.
[2026-04-05T10:30:12Z INFO] Daemon started, watching for meetings...
[2026-04-05T10:32:45Z INFO] Meeting detected: Zoom (pid: 4821)
[2026-04-05T10:32:45Z INFO] Window: "Q4 Planning - Zoom Meeting"
[2026-04-05T10:32:46Z INFO] Audio capture started (48kHz, stereo)
[2026-04-05T10:32:46Z INFO] Video capture started (1920x1080, 15fps)
[2026-04-05T10:32:46Z INFO] Transcription stream opened (deepgram/nova-2)
[2026-04-05T10:32:47Z INFO] Speaker detected: "Sarah" (confidence: 0.94)
[2026-04-05T11:01:22Z INFO] Meeting ended, finalizing...
[2026-04-05T11:01:24Z INFO] Recording saved: session_abc123.mp4 (84MB)
[2026-04-05T11:01:24Z INFO] Transcript saved: 847 segments, 4 speakersAutomatic upload to Supabase
After the meeting ends, the daemon uploads the recording to Supabase Storage and inserts session metadata and transcript segments into PostgreSQL. Uploads are resumable, so large recordings survive network interruptions. All data is organized under your organization with RLS policies.
[2026-04-05T11:01:25Z INFO] Starting cloud sync...
[2026-04-05T11:01:25Z INFO] Uploading recording (84MB)...
[2026-04-05T11:01:38Z INFO] Recording uploaded to: recordings/org_123/session_abc123.mp4
[2026-04-05T11:01:39Z INFO] Session created: mc_sessions.id = "session_abc123"
[2026-04-05T11:01:39Z INFO] Transcript synced: 847 segments to mc_transcript_segments
[2026-04-05T11:01:40Z INFO] Webhook fired: session.completed -> https://your-app.com/hooks
[2026-04-05T11:01:40Z INFO] Cloud sync complete.REST API, webhooks, or dashboard
Access your meeting data through the REST API, receive real-time webhook notifications, or use the web dashboard for playback and search. Since everything is stored in Supabase, you can also use any Supabase client library directly.
# List recent sessions
curl -s https://xrhwfuquudleamotznzx.supabase.co/rest/v1/mc_sessions \
-H "apikey: YOUR_ANON_KEY" \
-H "Authorization: Bearer YOUR_JWT" \
-H "Content-Type: application/json" \
| jq '.[] | {id, title, platform, duration_seconds, created_at}'
# Get transcript for a session
curl -s "https://xrhwfuquudleamotznzx.supabase.co/rest/v1/mc_transcript_segments?session_id=eq.session_abc123&order=start_ms" \
-H "apikey: YOUR_ANON_KEY" \
-H "Authorization: Bearer YOUR_JWT" \
| jq '.[] | {speaker, text, start_ms, end_ms}'
# Get signed URL for recording playback
curl -s "https://xrhwfuquudleamotznzx.supabase.co/storage/v1/object/sign/recordings/org_123/session_abc123.mp4" \
-H "Authorization: Bearer YOUR_JWT" \
-d '{"expiresIn": 3600}'One config. Every meeting fans out automatically.
Once a meeting is captured and summarized, MeetCapture automatically posts the AI summary, decisions, and action items to every destination you've configured — Slack channels, Microsoft Teams, Discord, Email, or Notion databases. No Zapier, no middleware, no extra cost. Configure your destinations once in /dashboard/integrations and every future meeting routes itself.
[2026-04-05T11:01:41Z INFO] AI summary generated (gpt-4o, 312 words)
[2026-04-05T11:01:41Z INFO] Destination fanout triggered for session_abc123
[2026-04-05T11:01:42Z INFO] → Slack #engineering-standup ... sent (200)
[2026-04-05T11:01:42Z INFO] → Teams "Product Team" channel ... sent (200)
[2026-04-05T11:01:43Z INFO] → Discord #meeting-notes ... sent (200)
[2026-04-05T11:01:43Z INFO] → Email: team@acme.com ... sent (250 OK)
[2026-04-05T11:01:44Z INFO] → Notion "Meeting Notes" DB ... sent (200)
[2026-04-05T11:01:44Z INFO] Fanout complete. 5/5 destinations delivered.From meeting to done — automatically.
Every action item the AI extracts gets its own persistent row with assignee, due date, and status. You can check off items directly from your dashboard, and email reminders go out automatically so nothing falls through the cracks. View all open items at a glance from the Overview page, or drill into any meeting for the full list.
# AI extracts action items from transcript
[2026-04-05T11:01:41Z INFO] mc_action_items: 4 items extracted for session_abc123
[2026-04-05T11:01:41Z INFO] → "Alice to share Q4 deck" (due: 2026-04-07, pending)
[2026-04-05T11:01:41Z INFO] → "Bob to set up staging env" (due: 2026-04-10, pending)
[2026-04-05T11:01:41Z INFO] → "Review PR #142 before EOW" (unassigned, pending)
[2026-04-05T11:01:42Z INFO] → "Send meeting notes to client" (due: 2026-04-06, pending)
# Reminder email sent 24h before due date
[2026-04-06T09:00:00Z INFO] mc-email-reminder: sent to alice@acme.com (item: share Q4 deck)
# Alice checks off the item in dashboard → one click
[2026-04-06T14:23:10Z INFO] mc_action_item_set_status: id=abc → completedPer-user analytics and productivity insights
Visit /dashboard/analytics to see a full picture of your meeting activity — daily session counts, top discussion topics, speaker talk-time breakdown, sentiment trends by week, action item completion rates, and integration delivery stats. Use the 7d / 30d / 90d toggle to zoom in on any period. All data is zero-filled so sparse weeks still render cleanly.
# /dashboard/analytics — 30-day window (default)
Hero stats
Total Meetings: 14
Total Hours: 18.4h
Action Completion: 78%
Total Summaries: 12
Daily Activity (bar chart)
Mon 28 Apr ████░░░░ 3 meetings
Tue 29 Apr ██░░░░░░ 2 meetings
Wed 30 Apr █████░░░ 4 meetings
Top Topics
Q4 Planning ×9 · 32% of talk time
API Design ×6 · 18% of talk time
Sprint Review ×5 · 14% of talk time
Speaker Breakdown
Sarah Chen ████████ 142m (9 meetings)
You ██████░░ 108m (14 meetings)
Bob Wilson ████░░░░ 72m (7 meetings)<20MB
Binary Size
<5min
Setup Time
~2%
CPU Usage
~50MB
RAM Usage
A cloud-hosted bot joins your Zoom or Google Meet call automatically — no software on your machine, no per-attendee install. Captures per-participant audio for ~99% speaker accuracy, then routes the same AI summaries + destination integrations as the local daemon. Microsoft Teams support is next. Connect a platform under Dashboard → Integrations or request early access below.
Install the daemon, configure your API key, and start capturing meetings today.