Your face unlocks your Mac.

A secure, lightning-fast face-recognition unlock daemon for macOS. Everything is processed locally. Nothing leaves your Mac.

FaceUnlock Dashboard
10:42
Thursday, July 2
100%

Local Processing

Zero telemetry. No cloud.

<15s

Scan Timeout

Lightning fast verification.

AES

256-bit GCM

Touch ID protected

Everything FaceUnlock does

A quick overview - the enrollment walkthrough and full security model are just below.

๐Ÿง 

Face Recognition

ArcFace 512-d embeddings enrolled from 7 poses, matched on-device via the Apple Neural Engine for near-instant results.

๐Ÿ‘๏ธ

Liveness Detection

Passive yaw/roll movement analysis tells a live face from a photo or screenshot - no extra hardware needed.

๐Ÿ”

Security

Touch ID gates a single AES-256 GCM session key. Without it, your password and face data stay fully encrypted.

โšก๏ธ

Auto-Unlock

Wake your display, glance at the camera, and your password is typed in for you - done in under seconds.

๐Ÿ“‹

Activity Log

Every lock and unlock event is tracked locally in the Activity tab, so you always know what happened and when.

๐ŸŒ

Background Noise Ignored

ROI filtering only considers a face centered in frame - people walking behind you never trigger a false match.

See exactly what's being measured

Every pose reports live yaw, roll, and quality scores in real time - enrollment isn't a black box.

1. Straight - tap to see what's measured

1
2

2. Turn left

3. Turn right

3
4

4. Tilt Left

5

5. Tilt Right

6

6. Move Closer

7

7. Final Pose

Done - 7 embeddings - tap to see what's measured

8

Security model

FaceUnlock works alongside your macOS password to provide fast, secure unlocking. Here's how it protects your data and what it's designed for.

โœ… What's guaranteed

  • ArcFace 512-d embeddings - cosine similarity vs. your enrolled centroid and max, both must clear the threshold.
  • Passive movement liveness - natural yaw/roll variance over ~0.4s. A flat photo or screenshot can't accumulate it.
  • ROI filtering - only a face centered in frame is considered; background people are ignored.
  • AES-GCM encryption of both the password and enrollment data, unlocked only by a session key held in memory.
  • Touch ID gate on enrollment, reset, and password clear.
  • Hardened Runtime, anti-debugger (PT_DENY_ATTACH), zero network calls, zero telemetry.

๐Ÿ” Security considerations

  • FaceUnlock works alongside your macOS password, adding a faster way to unlock your Mac while keeping your existing security in place.
  • Liveness is movement-based, not depth-based. Photos and simple looped videos don't fool it in testing; a highly sophisticated video attack could theoretically still succeed.
  • Look-alikes carry small risk. ArcFace is highly accurate but not perfect - identical twins in particular. Raise the threshold to tighten this.
  • FaceUnlock is designed to protect your encrypted data and streamline unlocking. Like other local security tools, it works within macOS's existing security model.
Bottom line: Your Mac password is still the real lock - FaceUnlock is the fast front door.

Set up once, unlock forever

Four one-time steps. Everything after this is a glance at your camera.

1

Grant permissions

Allow Camera access, then enable Accessibility so FaceUnlock can type into the lock screen.

2

Set your Mac password

Enter it twice. It's encrypted immediately with a fresh AES-GCM session key.

3

Enroll your face

Touch ID required. Follow the 7-pose guide - straight, turn left/right, roll left/right, closer, farther.

4

Turn on auto-unlock

Enable "Auto-unlock when display wakes" in Settings - and you're done.

Requirements

macOS Tahoe

Version 26.5 required. Earlier versions may work but are untested.

Apple Silicon

Strongly recommended for best ANE performance.

Camera

Built-in FaceTime, external webcam, or Continuity Camera.

Touch ID / Password

Required to unlock the encryption session key.

QUICK INSTALL

Get started in seconds

Install via Homebrew or download the zip from the releases page.

Step 1 — Tap the formula

$ brew tap sh4dow-clone/tap

Step 2 — Install the cask

$ brew install --cask sh4dow-clone/tap/faceunlock

If macOS blocks the app on first launch

Run this command to remove the quarantine attribute:

$ xattr -dr com.apple.quarantine /Applications/FaceUnlock.app

— or —

Download ZIP from Releases

The app isn't notarized yet (requires a $99 Apple Developer membership). The one-line xattr command above is the only workaround needed.

If you'd like to help fix that for everyone —

Support me on Ko-fi