Some secrets shouldn't be visible.
Leakwatch finds the ones that are.
Detect, verify, and report leaked API keys, tokens, and credentials across code, Git history, containers, and the cloud — then watch the redactions lift.
The case file
Every finding is logged like evidence: what it is, where it was found, how severe it is, and whether the key is still live. Verified-active keys are incidents — the rest is triage.
config/prod.yaml:12✓ verified activerotate now
.env:3✓ verified activerotate now
src/auth.go:88unverifiedreview
Six watch points
Secrets leak through more than source files. Leakwatch reaches into history, build artifacts, the cloud, and chat.
Walk a directory tree; skip binaries and lock files automatically.
Every commit — recover secrets that were committed and later deleted.
Inspect OCI/Docker image layers directly. No Docker daemon required.
Bucket objects via your existing AWS credential chain.
Cloud Storage objects with Application Default Credentials.
Message text across channels and DMs for pasted credentials.
Chain of custody
A keyword pre-filter shortlists candidate detectors before any regex runs, so scans stay fast even across full Git history.
Source
Stream chunks from files, Git, images, cloud, or Slack.
Pre-filter
Aho-Corasick keyword matching shortlists detectors.
Match
Shortlisted detectors run precise regex patterns.
Verify
Eligible findings are checked against the live provider API.
Report
Filter by severity; emit JSON, SARIF, CSV, or a table.
Is it still live?
Detection is half the job. For most secret types, Leakwatch makes a controlled, read-only API call to the provider to confirm whether a key is active — separating real incidents from noise.
Reports that fit your workflow
Structured findings for tooling and automation.
v2.1.0 — upload straight to GitHub Code Scanning.
Spreadsheet-ready, sanitized against formula injection.
Colorized terminal output for local triage.
Redacted index — 63 detectors
A sample of the catalog. 54 of these can be verified against the live provider. Add your own with YAML custom rules.
Declassify your repo
One static binary. No daemon, no runtime dependencies. Install it your way.
brew install HodeTech/tap/leakwatchgo install github.com/HodeTech/leakwatch@latestdocker run --rm -v $(pwd):/scan ghcr.io/hodetech/leakwatch scan fs /scan