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 skills/fmind/dot/trivynpx skills add fmind/dot --skill trivygit clone --depth 1 https://github.com/fmind/dotWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/fmind/dot/trivy)<a href="https://agentmods.dev/skills/fmind/dot/trivy"><img src="https://agentmods.dev/badge/skills/fmind/dot/trivy.svg" alt="Measured on agentmods" height="20"></a>What 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.00042 | $0.00815 |
| Opus 5 | $0.00021 | $0.00407 |
| Sonnet 5 | $0.00008 | $0.00163 |
| Haiku 4.5 | $0.00004 | $0.00081 |
Grade A, and why
trivy 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 — 57 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Trivy
One scanner for the whole repository: dependencies, infrastructure as code, secrets, licenses, container images, and SBOMs. The policy lives in trivy.yaml (HIGH/CRITICAL, ignore-unfixed, scanners: vuln, misconfig, secret, license) so local runs and CI report the same findings.
Commands
trivy --config trivy.yaml fs . # repository: deps, IaC, secrets, licenses
trivy --config trivy.yaml config . # IaC only: Dockerfile, Terraform, Kubernetes, GitHub Actions
trivy --config trivy.yaml image --input tmp/image.tar # local image tarball, before any push (check:image)
trivy --config trivy.yaml image <registry>/<slug>@<digest> # pushed image, by immutable digest
trivy --config trivy.yaml image --format cyclonedx -o sbom.json <registry>/<slug>@<digest>
trivy --config trivy.yaml fs --tf-vars terraform.example.tfvars . # OpenTofu modules need variables to evaluate
Mise Task
Expose the repository scan as check:scan in mise.toml per mise; mise run check then runs it locally and in CI:
[tasks."check:scan"]
description = "Scan dependencies, IaC, licenses, and secrets (Trivy)"
run = "trivy --config trivy.yaml fs ." # mise appends extra path arguments
Language-native scanners stay separate as check:vuln (govulncheck, uv audit, pnpm audit) because they know the lockfile semantics better; keep both tasks, trivy fs adds IaC, secrets, and licenses on top.
Triage
- Group findings by severity, then split fixable from
unfixed. - Prefer the minimal upgrade of the affected dependency or base image; re-run the scan to prove the fix.
- Record an accepted risk in
.trivyignore(one CVE or path per line, with a#reason) instead of lowering the global severity bar. - Treat a secret finding as compromised: rotate it, then clean the history per gitleaks.
Gotchas
- Always pass
--config trivy.yaml: precedence is--config>TRIVY_CONFIG>./trivy.yaml, and the owner's shell exports a globalTRIVY_CONFIG, so a baretrivy fs .silently uses the global policy. - Commit a project
trivy.yaml: copy the global one so CI, hooks, and agents share one policy. - Scan digests, not tags: a tag can move after the scan; the digest is what ships.
- Databases update on first run: a scan needs network access once per day for the vulnerability database; use
--skip-db-updatein offline reruns.
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 · 57 lines · 42 tokens per session scan A c35cbfb3d5cc
trivy is a skill published in the GitHub repository fmind/dot (4 stars, last pushed today), licensed MIT. It adds 42 tokens to every session and 815 once invoked, about $0.0002 per session on Opus 5. 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-09-03.
Other skills, from other repositories
k8s-local
Create and manage local Kubernetes clusters (k3d or kind) and deploy to them with kubectl, helm, helmfile, and skaffold. Use for local k8s cluster setup, dev loops, and debugging.
cloud-run
Deploy container services to Google Cloud Run with Artifact Registry, keyless CI identity, Secret Manager, ko, or Dockerfiles.
security-scan
Scan repositories with Trivy and gitleaks for vulnerabilities, IaC, secrets, licenses, images, and git history; triage concrete findings.
containerize
Build minimal, non-root OCI images — ko for Go or a distroless multi-stage Dockerfile — then scan, sign, and SBOM them. Use when containerizing or packaging an app for deployment.
dot-cli
Use the dot CLI (fmind/dotfiles) to verify the environment, pull repos, manage the local k3d cluster, log agent sessions, and prune caches. Use when running or scripting any dot command.
go-stack
Build Go projects, libraries, CLIs, TUIs, web apps, or ADK agents with the standard package layout and pinned tooling.