keyhog vs KeyDrift: two takes on browser-asset scanning
keyhog advertises GPU-accelerated scanning including browser assets with live verification — a serious practitioner entry.
The topic page itself bills it as covering code, history, containers, cloud, browser assets, and CI with hundreds of detectors.
This page compares the two honestly: strengths credited specifically, differences traced to structure rather than quality, and a decision rule at the end. Verified August 2026.
What keyhog does well
GPU/SIMD acceleration story for throughput-heavy scanning.
- Browser-assets coverage acknowledges the JS surface.
- SARIF output integrates with code scanning.
- Broad multi-source incl. browser assets per its own description.
The gap KeyDrift fills: the deployed bundle
Nothing above describes a defect — it describes a boundary. keyhog answers questions about source and infrastructure with real competence. The question KeyDrift answers is different and narrower: what credentials can a stranger retrieve from this deployment right now? Because bundlers substitute literals and agents write client-side calls after review, that question sometimes has an answer the repository never saw.
- Fetched-and-diffed scanning of live URLs, including chunks reachable only through route manifests.
- Streamed server data (
self.__next_f.push,window.__NUXT__) read as carefully as chunk files. - Calibrated dispositions: Supabase anon keys, publishable keys and Firebase web keys recognised as public-by-design instead of reported as leaks.
- Drift transitions — created, regressed, resolved — so a reintroduced key alerts as a regression, not as news.
Feature-by-feature
- Surfaces scanned. 923-detector claim with live verification features. versus KeyDrift: deployed web artifacts fetched live, or pasted bundle source for anything behind a login.
- Detection approach. SARIF-centered reporting. versus KeyDrift: 21 secret detectors across 13 providers with placeholder rejection, alphabet-normalised entropy, payload decoding and a confidence floor below which matches are dropped rather than caveated.
- Change over time. Rust binary with GPU options. versus KeyDrift: scheduled scans diffed into created/regressed/resolved with alert routing to email, Slack, Discord and webhooks.
- Getting started. performance-focused practitioners scanning everything locally. versus KeyDrift: paste a URL at /scan — free, no account — or paste source for private surfaces.
Side-by-side
Every cell below states a specific capability. Where keyhog documents more detail than fits here, follow their docs; where KeyDrift claims something, it is verifiable in a two-minute free scan.
| Capability | keyhog | KeyDrift |
| --- | --- | --- |
| Primary surfaces | 923-detector claim with live verification features. | Deployed web artifacts fetched live: HTML, all chunks (incl. route-manifest-only), streamed payloads |
| Build-time substitution (NEXT_PUBLIC_/VITE_) | Source-side only — substitution happens after these scans complete | Detected in served output — exactly where it lands |
| Hydration payloads (self.__next_f.push, window.__NUXT__) | Outside source-scan scope | Read as carefully as chunk files |
| Public-vs-secret calibration | Varies by engine; anon-key false positives remain the classic complaint | Dispositions built-in: anon/publishable/Firebase-web reported informational, sample keys rejected by name |
| Change over time | Rust binary with GPU options. | Scheduled scans diffed into created/regressed/resolved; regression alerts name comebacks |
| Alert routing | Rust binary with GPU options. | Email · Slack · Discord · raw webhooks with per-destination severity thresholds |
| Getting started | performance-focused practitioners scanning everything locally. | Paste any URL at keydrift.dev/scan — free, no account; paste-source mode for behind-login surfaces |
| Privacy of findings | Varies by vendor | Masks + salted fingerprints only; no column anywhere can hold a live secret |
_Cells describing keyhog summarize their public documentation as of the verified date above._
Where each one wins
- keyhog wins when Heavy-local versus hosted-lightweight is a genuine architecture choice; calibration philosophy differences matter more than speed at portfolio scale.
- KeyDrift wins when the question is “what credentials can strangers retrieve from this deployment right now?” — live fetching, calibrated dispositions, and regression alerting without agents installed.
Switching from keyhog
Teams arriving from keyhog usually keep their existing setup and add one job: point KeyDrift at production, staging, and preview URLs. First week looks like this — day one, run the free scan on every deployment and triage findings by severity; day two, fix or schedule fixes using the linked guides; day three onward, monitoring watches for regressions while keyhog continues doing what it does best.
undefined
Decision rule
- Keeping keyhog for its documented strengths makes sense — it earns them.
- Add KeyDrift when deployment truth matters: post-build artifacts, preview URLs, and reintroduction watch on a schedule.
_Compared against keyhog documentation and pricing as verified August 2026. Capabilities change; check their site._ OSS (santhreal) and associated marks are trademarks of OSS (santhreal), referenced for identification and descriptive comparison.
Bottom line: the tools are complements wearing rivals' clothes. keyhog watches inputs; KeyDrift watches outputs. Teams that verify both stop being surprised by either.
How teams actually run keyhog and KeyDrift together
In practice the pairing is boring in the best way: keyhog stays authoritative for whatever it was built to do, KeyDrift runs on a schedule against every public deployment, and alerts route into the same channels your team already reads. Nothing is migrated; nothing is turned off. The only new habit is reading one more alert type — and that one arrives masked, classified, and linked to a fix guide.
What to verify on their site before deciding
- Their current scanned-surface list (923-detector claim with live verification features.) — confirm against your stack.
- Whether drift/change-detection over time is part of their product or a roadmap item.
- Free-tier shape: what you can prove about YOUR deployment before any purchase conversation.
Common questions
Is keyhog bad at security?
No — the page credits specific strengths above. The difference is which artifact gets inspected, not effort or care.
Pricing comparison?
Their list pricing lives on their site and changes; ours sits on the plans page with findings visible free at every tier. Numbers go stale; philosophy does not.
Run a free scan at keydrift.dev/scan — paste a URL or the bundle source itself, no account. Findings arrive masked, with the exact chunk they live in.