kingfisher / javascript
AGENTS.md1.3k starsChanged 10 days agoApache-2.0View on GitHub
Guidance for extending and maintaining the JavaScript/TypeScript SDK. - Applies to javascript/. Follow the repository guidance and consult this guide for Node-facing changes in the Node-API bridge or shared Rust crates; those crates retain their own applicable instructions. - The npm package is kingfisher-secret-scanner. It calls the shared kingfisher-core, kingfisher-rules, and kingfisher-scanner crates in process through napi-rs/Node-API, not through Python or a CLI subprocess. - Keep the pipeline composable: Rule loading configures these stages. Revocation is a separate, explicitly authorized…
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about mongodb/kingfisher
- A Hacker News story“Show HN: Kingfisher, a fast OSS secret scanner with validation and blast radius”Hacker News · Jan 6, 2026 · 3 points
- oxsecurity/megalinter“Consider adding Kingfisher support”GitHub · Oct 6, 2025 · 1 reactions
- NixOS/nixpkgs“kingfisher: 2.14.0 -> 2.16.0”GitHub · Nov 4, 2026
- hevnsnt/CVEngine“Plan: exposed secrets with Kingfisher (1.4)”GitHub · Nov 1, 2026
- Homebrew/homebrew-core“kingfisher 2.15.0”GitHub · Oct 28, 2026
The biggest 5 of 51 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 51
Talked about on GitHub and Hacker News (51 times).
On GitHub · 50
- Oct 6, 2025Consider adding Kingfisher support — oxsecurity/megalinter1 reaction · 7 comments
- Nov 4, 2026kingfisher: 2.14.0 -> 2.16.0 — NixOS/nixpkgs0 reactions
- Nov 1, 2026Plan: exposed secrets with Kingfisher (1.4) — hevnsnt/CVEngine0 reactions
- Oct 28, 2026kingfisher 2.15.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 23, 2026kingfisher: 2.8.0 -> 2.14.0 — NixOS/nixpkgs0 reactions
45 more on GitHub
- Oct 22, 2026[Request]: Kingfisher — ScoopInstaller/Main0 reactions
- Oct 8, 2026kingfisher 2.11.1 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 6, 2026kingfisher 2.11.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/scripts0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/openshift0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/website0 reactions · 1 comment
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/wllegal0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/weblate_schemas0 reactions · 1 comment
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/weblate0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/wlc0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/munin0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/translation-finder0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/unicode-segmentation-rs0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/language-data0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/siphashc0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/fail2ban0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/meta0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/hosted0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/kotlin-sdk0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/helm0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/docker-base0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/docker-compose0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/graphics0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/fonts0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/docker-dev0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/customize-example0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/docker0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/arsc-writer0 reactions
- Oct 5, 2026[pre-commit.ci] pre-commit autoupdate — WeblateOrg/.github0 reactions
- Oct 4, 2026kingfisher 2.10.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 2, 2026kingfisher 2.9.1 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 1, 2026kingfisher: 1.113.0 -> 2.8.0 — NixOS/nixpkgs0 reactions · 1 comment
- Sep 29, 2026kingfisher 2.8.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Sep 24, 2026kingfisher 2.7.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Sep 23, 2026kingfisher 2.6.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Sep 18, 2026kingfisher 2.5.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Sep 17, 2026kingfisher 2.4.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Sep 16, 2026kingfisher 2.3.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Sep 9, 2026kingfisher 2.2.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Aug 30, 2026kingfisher 2.1.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Aug 18, 2026Add mongodb/kingfisher as an hk builtin (and decide whether its live-verification network calls belong in a pre-commit hook) — ray-manaloto/knowledge-base0 reactions
- Aug 8, 2026kingfisher 1.112.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Aug 3, 2026[Evaluate] Secret Scanner — JJediny/LocalObserve0 reactions · 1 comment
- Jun 5, 2026[REVIEW] secrets-management: add brokered agent credential and canary-token gates — UnitOneAI/SecuritySkills0 reactions · 3 comments
- Apr 15, 2026Add MongoDB Atlas and connection string detection rules — gitleaks/gitleaks0 reactions
On Hacker News · 1
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,439 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository14 other files it gives its agents.
- AGENTS.mdAGENTS.md
- crates/kingfisher-python/AGENTS.mdAGENTS.md
- crates/kingfisher-rules/AGENTS.mdAGENTS.md
- crates/kingfisher-rules/data/AGENTS.mdAGENTS.md
- crates/kingfisher-scanner/AGENTS.mdAGENTS.md
- docs/AGENTS.mdAGENTS.md
- docs/benchmark/AGENTS.mdAGENTS.md
- docs-site/docs/features/agents.mdAGENTS.md
- docs/viewer/AGENTS.mdAGENTS.md
- python/AGENTS.mdAGENTS.md
- src/access_map/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- docs-site/docs/llms.txtllms.txt
- llms.txtllms.txt
The file
We split this AGENTS.md into the rules it gives an agent
11 rules. About 1 is common, 9 are distinctive, and 1 is very specific to this project.
≈1
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
Keep the pipeline composable:
- Distinctive: line 22
Put JS argument checks, async-iterator adapters, and composition in the facade.
- Distinctive: line 23
Keep the native bridge focused on conversion, ownership, and execution controls.
- Distinctive: line 25
Keep input acquisition, extraction, detection policy, and report filtering independent.
- Distinctive: line 31
Add capabilities through explicit options or composable APIs, not silent scope expansion.
- Common: line 36
Default JSON and inspection output must redact credentials, captures, payloads, and potentially sensitive provider messages.
- Distinctive: line 59
Keep support claims aligned with the SDK platform guide and native build guide.
- Distinctive: line 62
Use Node path/URL APIs and subprocess argument arrays, not shell interpolation or Unix-only utilities.
- Distinctive: line 69
Follow the checkout build/test steps or the SDK build guide.
- Very specific: line 74
Use deterministic local fixtures and mock provider services, not live credentials.
- Distinctive: line 84
Add commented runnable examples and update the SDK guide and package README for public changes.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md
Guidance for extending and maintaining the JavaScript/TypeScript SDK.
Scope and Architecture
- Applies to
javascript/. Follow the repository guidance and consult this guide for Node-facing changes in the Node-API bridge or shared Rust crates; those crates retain their own applicable instructions. - The npm package is
kingfisher-secret-scanner. It calls the sharedkingfisher-core,kingfisher-rules, andkingfisher-scannercrates in process through napi-rs/Node-API, not through Python or a CLI subprocess. Keep the pipeline composable:
enumeration -> content transforms -> detection -> validation -> reportingRule loading configures these stages. Revocation is a separate, explicitly authorized action; detection stays offline. Do not add implicit acquisition, extraction, provider calls, or mutation to scanning convenience APIs.
- Put JS argument checks, async-iterator adapters, and composition in the facade. Keep the native bridge focused on conversion, ownership, and execution controls. Implement reusable engine behavior in the shared Rust crates with one rule catalog. Keep input acquisition, extraction, detection policy, and report filtering independent.
Public Contracts and Sensitive Data
- Preserve public exports, CJS/ESM and subpath class identity, TypeScript declarations, defaults, serialization shapes, byte-offset semantics, and lossless string fingerprints. Add capabilities through explicit options or composable APIs, not silent scope expansion.
- Preserve original per-input raw findings and scan context, including invisible
component helpers, until dependent validation completes. Keep original native
ValidationResultsnapshots for analysis and revocation; never rebuild operational state from redacted reports or caller-supplied endpoint variables. - Default JSON and inspection output must redact credentials, captures, payloads, and potentially sensitive provider messages. Raw access remains explicit. Filter visibility at reporting time, not before component resolution or validation.
- Retain source paths, Git filename bytes, repository/object identity, and extraction provenance through transforms. Document offset coordinates and limits; do not invent origin history. Snapshot mutable caller buffers before asynchronous native work.
- Existing YAML/TOML rules must work unchanged. HTTP fallbacks default off; both primary-reuse flags default false. Validation reuse does not imply revocation reuse. Preserve confirmation, selected-target snapshots, and no mutation failover.
Controls, Errors, and Portability
- Preserve
KingfisherError.code,AbortError/ERR_KINGFISHER_CANCELLED, andTimeoutError/ERR_KINGFISHER_TIMEOUT, including causes and revocation outcome-unknown signals. Do not turn cancellation, timeouts, or budget failures into empty successes, raw-content fallback, or partial findings for a failed input. - Cancellation is cooperative, not hard preemption. Keep native work off the Node
event loop, carry deadlines across stages, bound pending work, and release native
resources with
close()before worker termination. Failed scans must not poison reusable scanner resources or commit successful-scan deduplication state. - Support Node 22, 24 and 26 only, tested minimum 22.13.0. Keep npm engines
at
^22.13.0 || ^24.0.0 || ^26.0.0; CI tests pinned 22.13.0, 22.23.4, 24.0.0, 24.22.2, 26.0.0 and 26.13.0, including each major's supported floor. Keep support claims aligned with the SDK platform guide and native build guide; do not infer browser/WASM, Bun, Deno, musl, or other Node-major support from Node-API compatibility. - Use Node path/URL APIs and subprocess argument arrays, not shell interpolation or Unix-only utilities. Account for Windows x64/ARM64 locking, separators, and line endings. Read sources without modifying caller files or executing untrusted content; clean up only private temporary storage after closing handles.
Verification and Releases
- Follow the checkout build/test steps or the SDK build guide. Rebuild the addon before testing native changes. Documentation-only edits do not require a native build. Run focused shared Rust/CLI regressions where semantics move; report skipped checks and pending Windows verification explicitly.
- Use deterministic local fixtures and mock provider services, not live credentials. Cover grouping/provenance, raw snapshots versus redacted reports, controls/errors, scanner reuse, native/JS parity, and CJS/ESM/types for changed public behavior.
- For packaging/loader changes, test staged packed tarballs with
npm run test:package: a clean unrelated consumer must install offline with--ignore-scripts, without source-tree addon fallback, Rust, or registry publication. Preserve packaged examples, exact native-package versions, licenses, and notices; passing checkout tests alone is not package verification. After native dependency changes, follow the notices workflow: rootmake noticesupdates attribution;npm run check:noticesverifies coverage. - Add commented runnable examples and update the SDK guide and package README for public changes. Keep sample output redacted.
- 0.1.0 is a preview of npm support, versioned independently of the CLI, Python SDK, and Rust crates. Keep this version for the initial npm release; do not bump it just for a CLI release. Follow the npm publishing guidance; account changes, tags, and uploads require separate authorization. Never publish the private development manifest.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

