Webcam Tracker logs which apps access your camera, when they start and stop, and how long each session lasts. Metadata only — it never touches the video stream.
Use Cases
See if something turned on the camera when you didn't expect it. Review a timestamped history of every camera session — which app, when it started, and how long it ran.
Audit Zoom, Meet, Teams, and FaceTime usage. See how long each app had the camera active — not what was said or shown on screen. Useful for time-tracking and awareness.
Understand which apps accessed the camera on a family or shared machine. A local audit trail that stays on the device — no account required, no data leaves the Mac.
Export CSV session logs for personal records or lightweight compliance documentation. A simple, factual record of camera access — no enterprise claim, just your data.
The same signal macOS already logs — surfaced in a clean dashboard instead of a Terminal log stream. Useful when debugging camera access in your own apps.
Under the hood
The app never calls AVCaptureSession or reads frames. It only listens to system logs that macOS already writes when apps start or stop camera capture.
A background process runs Apple's log stream with a predicate on camera-related subsystems. The app auto-detects which subsystem your Mac uses — Sonoma+ often uses com.apple.controlcenter, older builds use com.apple.cameracapture, with fallbacks for SkyLight and cmio.
# Simplified predicate — actual implementation auto-selects subsystem
log stream --style syslog --predicate '(subsystem == "com.apple.cameracapture") ||
(subsystem == "com.apple.controlcenter")'
Each log line is parsed for the event type and the app that triggered it:
startRunning] / stopRunning], or equivalent per subsystem)FaceTime[1234]: → FaceTime)<private> redacted lines are discardedParsed events become session rows in a local SQLite database:
runningReading com.apple.cameracapture (and related) log data requires Full Disk Access on macOS. It's a one-time setup in System Settings → Privacy & Security. We only read logs needed for camera events — nothing else.
| ✓ We collect | ✗ We don't collect |
|---|---|
| App name, start/end time, duration | Video, audio, screenshots |
| Session status (running / completed) | Network upload, analytics |
| Local SQLite on your Mac | Account, email, cloud sync |
Product Preview
Privacy & Local-First
All session data is stored in a local SQLite database on your machine. There is no cloud service, no account creation, and no analytics SDK. Export is user-initiated through a standard macOS save dialog — the app never writes files or sends data without your explicit action.
On first launch, Webcam Tracker shows a consent screen explaining what it does and what permissions it needs. The entire project is MIT open source — you can read every line of code on GitHub.
Getting Started
xattr -cr /Applications/Webcam\ Tracker.app