Skip to content

Gaze vs. Other Linux Face Auth

Gaze is one of several projects bringing Windows Hello-style facial authentication to Linux. They all plug into PAM, they are all open source (MIT), and they all solve the same basic problem: log in with your face instead of a password. They differ in how far they push security, how they are architected, and how much of the desktop they cover.

This page compares Gaze with the three most common alternatives, Howdy, Visage, and Biopass, as fairly as we can. It is written by the maintainers of Gaze, so treat it as informed and neutral to the best of our abilities; however, make sure to verify anything that matters to you against each project's own docs.

At a glance

GazeHowdyVisageBiopass
LanguageRustPython + CRustC++ + Tauri
Face detectionSCRFDdlib (HOG/CNN)SCRFDYOLOv8-face
RecognitionArcFace / ResNet50dlib ResNet (128-d)ArcFace (w600k_r50)EdgeFace
Inference runtimeONNX RuntimedlibONNX RuntimeONNX Runtime
IR camera supportYes, hybrid RGB+IR combiningYesYes, built-in UVC emitterYes
FingerprintNoNoNoYes
ArchitectureRoot daemon + system DBusSubprocess per auth (no daemon)Daemon + DBusDaemon + DBus
Model reload per authNo (warm daemon)Yes (cold each time)No (warm daemon)No (warm daemon)
Templates at restOptional TPM-sealed encryptionPlaintext encodingsSQLite storeLocal store
Model integritySHA-256 verified on downloadBundledSHA-256 pinnedBundled
InterfacesCLI + GTK GUI + GNOME ext + HyprlandCLI onlyCLI onlyGUI (Tauri) + CLI
Desktop integrationGNOME lock screen, Hyprland/hyprlockPAM onlyPAM onlyPAM + polkit
Configurationconfig.toml + CLI + GUIManual ini fileConfig file / NixGUI
Guided multi-angle enrollmentYesBasicBasicBasic
Built-in health checkYes (one doctor command)PartialPartialGUI status
Camera sourcesGStreamer / PipeWireV4L2 device pathV4L2 device pathV4L2 device path
Runs on older (pre-AVX2) CPUsYes (clients don't link ML runtime)YesVariesVaries
Packagingdeb / rpm / Arch / scriptdeb / AUR / COPRdeb / Nix / AURdeb / rpm / AUR
LicenseMITMITMITMIT

Liveness and anti-spoofing

Liveness detection is the biggest security difference between these projects. It's what prevents someone from unlocking your machine with a photo or video of you.

ApproachPrinted photoScreen replayVideo replay
GazeMiniFASNet-V2 CNN (RGB) + eye-motion check (IR)BlockedBlockedPartial
HowdyNone (only skips over-dark frames)Not blockedNot blockedNot blocked
VisageLandmark-stability, zero-model eye micro-movementBlockedNot blockedNot blocked
BiopassMobileNetV3 anti-spoof CNN + IR-camera checkBlockedBlockedPartial

Gaze and Biopass run an actual anti-spoofing model on the face crop, so they reject both photos and screens. Visage's check is motion-only and, by its own docs, does not stop video replay. Howdy does no active anti-spoofing and its own README warns it "is in no way as secure as a password." No project fully defeats a high-quality video replay or 3D mask, which is why a password fallback stays recommended everywhere, Gaze included.

A note on the alternatives

All of these projects are worth your respect! They are OSS, maintained by developers solving a real problem in the Linux desktop, and any of them can give you face authentication that works. Howdy defined the category and is the most widely packaged; Visage is a clean Rust daemon with strong IR handling; Biopass brings fingerprint and a polished GUI. This page highlights where Gaze differs, but the right choice is the one that fits your hardware, desktop, and threat model, and we'd rather you use the one that fits you best than blindly trusting Gaze.