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/localplugins/plugins/cv-makegit clone --depth 1 https://github.com/localplugins/pluginsWhat 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.00027 | $0.00874 |
| Opus 5 | $0.00014 | $0.00437 |
| Sonnet 5 | $0.00005 | $0.00175 |
| Haiku 4.5 | $0.00003 | $0.00087 |
Grade A, and why
cv-make 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 — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/cv-make
Turn resume.json into a finished, ATS-friendly résumé. No Node at any point
— a sh splice builds the HTML, and the browser (yours, via Save as PDF) does
the actual rendering.
Steps
-
Resolve the active résumé. Read
resume.jsonfrom the repo root. If it's missing, tell the user to run/cv-newand stop. -
Resolve the active template. Read line 1 of
cv/.activefor the template slug (e.g.classic-ats). Ifcv/.activedoesn't exist, default toclassic-atsand mention that/cv-newnormally sets this. Confirm the template exists at"${CLAUDE_PLUGIN_ROOT}/templates/<slug>/template.html"— if not, list the available slugs undertemplates/*/and stop. -
Validate
resume.jsonagainst the schema. Read${CLAUDE_PLUGIN_ROOT}/schema/json-resume.schema.jsonand check the file the same way/cv-newdoes:basicsandbasics.nameare required;basics.email(if present) must look like an email; everywork[]needsname+position; everyeducation[]needsinstitution; everyskills[]needsname. Stop and report the exact bad field (e.g.education[0].institution is required) rather than rendering a broken résumé — don't guess or silently drop the offending entry. -
Splice the render. Run the literal splice script — pure
sh+awk, no Node, no network:mkdir -p output slug="<kebab-case-of-basics.name>" # Claude computes this, e.g. "Alex Rivera" -> "alex-rivera" sh "${CLAUDE_PLUGIN_ROOT}/lib/render.sh" \ "${CLAUDE_PLUGIN_ROOT}/templates/<slug-of-template>/template.html" \ "${CLAUDE_PLUGIN_ROOT}/templates/_shared/render-core.js" \ resume.json > "output/resume-${slug}.html"This inlines the shared renderer and the résumé JSON straight into the template's two markers (
/*__RENDER_CORE__*/,/*__RESUME_DATA__*/), producing one self-contained HTML file — no external<script src>or<link>, so it opens correctly from disk with no server. Ifshisn't available for some reason, splice the same three pieces with your file tools instead: read the template, replace each marker line with the full contents of the corresponding file, and write the result — same output, same no-Node guarantee.
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 · 69 lines · 27 tokens per session scan A 007dee4c0c8b
cv-make is a command published in the GitHub repository localplugins/plugins (5 stars, last pushed 1mo ago), licensed MIT. It adds 27 tokens to every session and 874 once invoked, about $0.0001 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-08-31.
Other commands, from other repositories
to-gif
Convert an animated HTML file (like /fig output) to a perfectly looping high-quality small GIF using Playwright + ffmpeg.
security-audit-static
Static security audit of AI-built code — map trust boundaries, cross-reference documented intent, self-refute every finding, and report only evidence-backed risks.
performance-audit-static
Static performance audit of AI-built code — find N+1 queries and request waterfalls, over-fetching, missing indexes, and caching opportunities, ranked by effort and impact.
document-app
Reverse-engineer an AI-built codebase into the system documents reviewers and auditors need — a core set (architecture, flows, permissions, variables) plus conditional docs (emails, cron, SEO, automation) when they apply.
plan-okrs
Brainstorm team-level OKRs aligned with company objectives — qualitative objectives with measurable key results.
write-stories
Break a feature into backlog items — user stories, job stories, or WWA format with acceptance criteria.