{"adoption": {"forks": 53, "observed_at": "2026-08-28T04:04:20.604359+00:00", "stars": 1315}, "canonical_url": "https://ross.abutalabs.com/products/wsl-hello-sudo", "card": {"archived": false, "artifact_type": "plugin", "description": "Let's sudo by face recognition of Windows Hello on Windows Subsystem for Linux (WSL). It runs on both WSL 1 and WSL 2. This is a PAM module for Linux on WSL.", "domain": ["security", "developer-tools", "operating-systems"], "enriched": true, "function": ["auth", "security", "cli"], "health_score": 20, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["nullpo-head/WSL-Hello-sudo"], "name": "nullpo-head/WSL-Hello-sudo", "platform": ["windows", "rust", "cli"], "pushed_at": "2023-05-21T13:53:55+00:00", "repo": "nullpo-head/WSL-Hello-sudo", "stars": 1315, "tags": ["wsl", "windows-hello", "pam-module", "biometric-authentication", "sudo", "face-recognition", "linux"], "topics": ["wsl", "linux-pam"], "urls": [], "use_cases": ["authenticate sudo with face recognition on WSL", "use Windows Hello fingerprint for Linux commands in WSL", "replace sudo password prompts with biometric login", "add biometric authentication to su and other PAM apps in WSL", "avoid typing passwords in Windows Subsystem for Linux"], "what_it_is": "A Linux PAM module plus companion Windows CLI app that lets WSL users authenticate sudo and other PAM-based logins via Windows Hello biometrics (face, fingerprint, or PIN). Written in Rust and works on both WSL 1 and WSL 2.", "when_to_avoid": ["you don't run Windows or WSL", "you need guaranteed security - the project ships with no warranty and should be used at your own risk", "your distro lacks PAM or you can't modify PAM configuration", "you need a solution maintained with frequent updates - the latest release is from 2023"], "when_to_choose": ["you use WSL daily and want faster, more convenient sudo authentication", "you want biometric (face/fingerprint) login for Linux tools inside WSL", "you prefer a PAM module over a sudo fork so all PAM-aware apps benefit"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/wsl-hello-sudo", "repo": "nullpo-head/WSL-Hello-sudo", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:48:42.768899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c39033ee6edaadc7d8424752adae53f0de7e01e43963196c39c508dbbae9f64", "fetched_at": "2026-08-28T04:04:20.604359+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nullpo-head/WSL-Hello-sudo"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:48:42.768899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c39033ee6edaadc7d8424752adae53f0de7e01e43963196c39c508dbbae9f64", "fetched_at": "2026-08-28T04:04:20.604359+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nullpo-head/WSL-Hello-sudo"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:48:42.768899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c39033ee6edaadc7d8424752adae53f0de7e01e43963196c39c508dbbae9f64", "fetched_at": "2026-08-28T04:04:20.604359+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nullpo-head/WSL-Hello-sudo"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:48:42.768899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c39033ee6edaadc7d8424752adae53f0de7e01e43963196c39c508dbbae9f64", "fetched_at": "2026-08-28T04:04:20.604359+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nullpo-head/WSL-Hello-sudo"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:48:42.768899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c39033ee6edaadc7d8424752adae53f0de7e01e43963196c39c508dbbae9f64", "fetched_at": "2026-08-28T04:04:20.604359+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nullpo-head/WSL-Hello-sudo"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:48:42.768899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c39033ee6edaadc7d8424752adae53f0de7e01e43963196c39c508dbbae9f64", "fetched_at": "2026-08-28T04:04:20.604359+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nullpo-head/WSL-Hello-sudo"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.604359+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:48:42.768899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c39033ee6edaadc7d8424752adae53f0de7e01e43963196c39c508dbbae9f64", "fetched_at": "2026-08-28T04:04:20.604359+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nullpo-head/WSL-Hello-sudo"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:48:42.768899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c39033ee6edaadc7d8424752adae53f0de7e01e43963196c39c508dbbae9f64", "fetched_at": "2026-08-28T04:04:20.604359+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nullpo-head/WSL-Hello-sudo"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:48:42.768899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c39033ee6edaadc7d8424752adae53f0de7e01e43963196c39c508dbbae9f64", "fetched_at": "2026-08-28T04:04:20.604359+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nullpo-head/WSL-Hello-sudo"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:48:42.768899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c39033ee6edaadc7d8424752adae53f0de7e01e43963196c39c508dbbae9f64", "fetched_at": "2026-08-28T04:04:20.604359+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nullpo-head/WSL-Hello-sudo"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3272, "days_push": 1200, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}