Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/bomly-dev/bomly-cli/explaingit clone --depth 1 https://github.com/bomly-dev/bomly-cliWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.00567 |
| Opus 5 | $0.00000 | $0.00283 |
| Sonnet 5 | $0.00000 | $0.00113 |
| Haiku 4.5 | $0.00000 | $0.00057 |
Grade A, and why
explain scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 62 lines — stays where its author put it; the contents beside it link to each section on GitHub.
bomly explain
Answer "why is this package here?" — trace every dependency path that pulls a package into the graph. explain runs the same detect and match stages as scan, then walks the graph from the project roots to the package you named.
Minimal invocation
bomly explain send
On a project that depends on express:
ecosystem npm
manager npm
package [email protected]
scope runtime
direct no
licenses
MIT [declared]
introduced by:
[email protected]
└─ [email protected]
├─ [email protected] [analyzed] (transitive)
└─ [email protected]
└─ [email protected] [analyzed] (transitive)
Every path is shown, not just the shortest one — here send enters both directly through express and again through serve-static, which matters when you're deciding what to bump.
Naming the package
Pass a package name or a full PURL. A PURL disambiguates when the same name exists in more than one ecosystem:
bomly explain lodash
bomly explain pkg:npm/react
bomly explain github.com/spf13/cobra --path ./backend
Targets and gates
explain accepts the same target flags as scan (--path, --recursive, --url/--ref, --image, --sbom) and the same pipeline gates. Add --enrich to include the package's vulnerabilities in the explanation, and --audit/--analyze when you want policy findings or reachability on it:
bomly explain send --enrich # include known vulnerabilities
bomly explain send --enrich --analyze # and whether they're reachable
bomly explain send --json # structured paths for tooling
The JSON shape is documented in the explain schema.
Exit codes
Same table as every command — see Exit Codes. Notably 5 when the target has no supported manifests, and 4 for a malformed PURL.
See also
- scan — the shared target, gate, and output flags
- diff — when the question is "what changed" rather than "why is it here"
- Interactive TUI — explore the same paths interactively with
bomly scan --interactive
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 62 lines · 0 tokens per session scan A c25554d545fc
explain is a command published in the GitHub repository bomly-dev/bomly-cli (11 stars, last pushed 2d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 567 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
audit
Scan a Rust project and produce a supply chain security gap analysis.
generate
Generate a single supply chain security config file.
verify
Verify that generated supply chain configs are valid and functional.
check-updates
Check for outdated GitHub Action SHAs and CLI tool versions in deployed workflows.
harden
Interactive wizard to generate missing supply chain security configs.
domains
Apply the CLI runtime and safety contract before executing a command. Runtime --help is authoritative.