Mona Lisa is a lightweight menu-bar agent that checks who is sitting at your Mac. If it can't verify an enrolled face, it locks every screen and records whoever's there — until your password is entered (or a trusted face is). The lock survives a reboot.
Requires macOS 14 Sonoma or later and a camera. Apple Silicon & Intel.
Download & drag
Grab MonaLisa.dmg, open it, and drag Mona Lisa onto the Applications shortcut.
Open it the first time
Mona Lisa is distributed independently — not through the App Store — so macOS asks you to confirm the very first time you open it. This is normal for indie apps, and you only do it once:
Right‑click (or Control‑click) Mona Lisa in your Applications folder, choose Open, then click Open in the dialog.
Or open System Settings → Privacy & Security, scroll down to “Mona Lisa” was blocked, and click Open Anyway.
After that, it launches normally like any other app.
Enroll, set a password, go
Click the shield in the menu bar: Add a Person to enroll your face (grant camera access when asked), set an unlock password in Settings, then hit Start Monitoring. Done — it auto-starts at login from now on.
How it works
Three moving parts, all native macOS. No accounts, no cloud, no agents phoning home.
1
Capturing 8 / 12…
Enroll the faces you trust
A live preview guides you through five head positions — front, both sides, up, and down — capturing 15 samples so the face is recognized from every angle, and auto-calibrates a match threshold. Add as many people as you like and remove them any time.
2
Thu 21:36
Checking camera… owner ✓
It watches from the menu bar
Every 30 seconds (you choose), it wakes the camera for a single frame, runs Apple's Vision framework on-device, and goes back to sleep. The camera light just blinks — and between checks the app sits at ~0% CPU.
3
This Mac is locked
Recording video
••••••••
Strangers get locked out — on camera
The moment it's sure an unrecognized person is using the Mac, it drops a full-screen lock over every display and records video of the whole locked period. It disables force-quit and app switching, re-applies itself after a reboot, and unlocks with your password — or a trusted face passing a blink check.
Features
Intruder video — records the entire locked period
Multiple trusted people — enroll anyone by name
Survives a reboot — restarting won't unlock it
Separate password — PBKDF2-hashed, never stored in plaintext
Fully tunable — interval, strictness, camera choice
Activity log — every sighting and lock, timestamped
A deterrent against opportunistic use, not full-disk encryption — pair it with FileVault for real theft protection.
Versions
Keep scrolling — glide through the releases, newest to oldest.
v0.4.6Latest
Free-tier polish
The free daily capture limit is enforced reliably; once it's used up for the day, protection pauses and invites you to unlock the full version
Free-version lock screen now reads “Photo captured” (it takes a photo, not a video)
Choose a plan right in the app — pay by card or with crypto (USDC on Base)
A free version stays available (photo-only intruder capture, one saved face); paying unlocks video recording, unlimited faces, and unlimited captures
Check cadence moved into the menu: drag to “Live” (always on) or 2–120 seconds
v0.4.4
Harder to shut off
A Terminal kill / killall can no longer silently stop protection — it goes through the same password / blink check as Pause and Quit
Builds on 0.4.3: authenticate to pause or quit, and the in-panel update prompt
v0.4.3
Can't be switched off
Pausing or quitting requires your unlock password — or a blink — the same check as the lock screen, so an unauthorized person can't just turn protection off
Redesigned, in-panel update prompt
v0.4.2
Automatic updates
Checks for a newer version on launch and once a day, and guides you to update when one is available — so everyone stays on the latest build
On-device SFace recognition, fail-secure presence lock, and video capture of the locked period
v0.4.1
Real face recognition
On-device SFace Core ML model — reliably tells people apart, with precise 5-point alignment
Fail-secure presence lock: a clearly-unrecognized person is locked out in about a second
Records video of the whole locked period, not a photo
Face unlock with a blink liveness check — a photo can't unlock; password always works