leakferret — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited leakferret (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You have access to a secret-scanning toolkit installed as the leakferret gem. Use it any time the user asks about hardcoded credentials, leaked keys, secret scanning, or wants help moving secrets out of source code.
leakferret scan shell command.The output is JSON when you pass --format json; the CLI returns one finding per candidate with path, line, pattern, and a redacted match preview (first 4 + last 4 chars). The full secret value never appears in the JSON output.
in the file. Mark each as one of:
under app/, lib/, src/, config/, etc., AND the matched value has live provider structure.
spec/, test/, fixtures/, docs/, etc., OR the value contains obvious dummy markers (EXAMPLE, xxxx, placeholder, CHANGEME).
propose_rewrite command handles the language-aware mechanics — call it with the finding and it returns:
ENV.fetch (or process.env.X / os.environ['X'] etc.) call toreplace the literal
.env.example line the user should addruns these themselves; the tool never sees or stores the secret value
first.
leakferret scan PATH [--format json|pretty|sarif] [--exclude GLOB]
leakferret verify PATH # adds heuristic verdicts
leakferret rewrite PATH [--apply] # propose rewrites; --apply writes them
leakferret mcp # used by IDE integrations; ignore hereYou're reviewing regex hits that may be hardcoded secrets in source code.
For each candidate you'll get: file path, pattern name, redacted preview
(first 4 + last 4 chars only), ~7 lines of surrounding context.
Classify each as REAL, FIXTURE, or UNKNOWN. Bias toward FIXTURE on paths
containing spec/ test/ tests/ fixtures/ examples/ docs/ demo/ sample/
mock/ dummy/ or files named .env.example / .env.sample. Bias toward REAL
on paths under app/ lib/ src/ config/ (except config/credentials.yml.enc)
with live provider structure. Default to UNKNOWN on genuine ambiguity.
Output JSON only: [{"id": "...", "verdict": "REAL|FIXTURE|UNKNOWN",
"reason": "...", "confidence": 0.0-1.0}]This skill never transmits secret values over the network. The CLI redacts matches to the first 4 + last 4 chars before any output. Seed commands emit placeholder text the user fills in locally.
gem install leakferret
# Then add to .mcp.json if you also want the MCP server form:
# { "mcpServers": { "leakferret": { "command": "leakferret", "args": ["mcp"] } } }~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.