Settings

Theme

Show HN: Meeting Detection – a small Rust engine that detects meetings on macOS

npmjs.com

2 points by Ayobamiu 2 months ago · 5 comments · 1 min read

Reader

I built a small open-source meeting detection engine for macOS. The goal is to provide a simple and accurate way for apps to know when a user is in a Zoom/Meet/Teams/Webex meeting.

A lot of meeting recorders, productivity tools, and focus apps try to detect meetings, but the results are often unreliable. Some apps pop up “You’re in a meeting” suggestions even when nothing is happening. I wanted something that works consistently and is easy for developers to integrate.

The engine is written in Rust and exposed to Node/Electron via napi-rs. It runs a lightweight background loop and uses two tiers: 1. Native app detection (Zoom, Teams, Webex) • process detection • meeting-related network activity 2. Browser meeting detection (Google Meet, Teams Web, Zoom Web, Webex Web) • reads browser tabs via AppleScript • validates meeting URL patterns • supports Chrome, Safari, and Edge

It exposes a very simple JS API:

init(); onMeetingStart((_, d) => console.log("Meeting started:", d.appName)); onMeetingEnd(() => console.log("Meeting ended")); console.log(isMeetingActive());

Would love feedback, especially from anyone building recorders, focus apps, calendar tools, etc. Windows + Linux support coming next.

tleyden5iwx 2 months ago

Thanks for sharing! Here's another approach that might interest you:

https://github.com/RecapAI/Recap

I believe it uses ScreenCaptureKit.

bdbdbdb 2 months ago

Nice work, thanks for making this! Would be great if music apps etc could just auto pause when you go into a call

  • AyobamiuOP 2 months ago

    Currently, on Mac, your music's volume reduces when you get on a call.

    • bdbdbdb 2 months ago

      Ah cool. Didn't know that. I usually turn off the music before I open zoom anyway so I don't know why I'm asking for that

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection