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 skills add ericwang915/PythonClaw --skill pdf_protectgit clone --depth 1 https://github.com/ericwang915/PythonClawWrote 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/ericwang915/pythonclaw/pdf_protect)<a href="https://agentmods.dev/skills/ericwang915/pythonclaw/pdf_protect"><img src="https://agentmods.dev/badge/skills/ericwang915/pythonclaw/pdf_protect/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ericwang915/pythonclaw/pdf_protect"><img src="https://agentmods.dev/badge/skills/ericwang915/pythonclaw/pdf_protect.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.1 | $0.00054 | $0.00490 |
| Opus 5.5 | $0.00022 | $0.00196 |
| Sonnet 5.5 | $0.00011 | $0.00098 |
| Haiku 4.5 | $0.00005 | $0.00049 |
Grade A, and why
pdf_protect 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 1mo ago.
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.
What it actually says
PDF Protect Skill
Add or remove password protection on PDF files using PyPDF2.
When to Use
✅ USE this skill when:
- "Password protect this PDF"
- "Encrypt report.pdf"
- "Remove password from this PDF"
- "Unlock this PDF — password is 1234"
- User wants to add or remove PDF encryption
When NOT to Use
❌ DON'T use this skill when:
- Digital signatures → use dedicated signing tools
- Certificate-based encryption → use specialized PKI tools
- DRM protection → not supported
- Reading PDF content → use
pdf_reader
Usage/Commands
Encrypt a PDF
python {skill_path}/protect_pdf.py encrypt INPUT_PDF OUTPUT_PDF --password SECRET [options]
Options:
--password SECRET— user password (required to open the PDF)--owner-password SECRET— owner password (for permissions; defaults to user password)--no-print— disable printing--no-copy— disable text copying--format json— output result as JSON
Decrypt a PDF
python {skill_path}/protect_pdf.py decrypt INPUT_PDF OUTPUT_PDF --password SECRET [options]
Options:
--password SECRET— password to unlock the PDF--format json— output result as JSON
Examples
- "Protect with password" →
python {skill_path}/protect_pdf.py encrypt doc.pdf protected.pdf --password mypass - "Restrict printing" →
python {skill_path}/protect_pdf.py encrypt doc.pdf out.pdf --password pass --no-print - "Unlock PDF" →
python {skill_path}/protect_pdf.py decrypt locked.pdf unlocked.pdf --password pass123
Notes
- Install dependency:
pip install PyPDF2 - AES-128 encryption is used by default
- If owner password is not set, it defaults to the user password
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago First seen · 66 lines · 54 tokens per session scan A 22fb2b402f90
pdf_protect is a skill published in the GitHub repository ericwang915/PythonClaw (45 stars, last pushed 10d ago), licensed MIT. It adds 54 tokens to every session and 490 once invoked, about $0.0002 per session on Opus 5.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-30.
Other skills, from other repositories
pdf-generator
A document tool that turns Markdown, HTML, plain text, or template data into paginated PDF files. It supports A4 pages, page numbers, automatic page breaks, and Chinese text.
pdf-processor
A tool for working with PDF files: it can read text and tables, combine or split documents, convert pages to images, and show basic file details.
document-suite
A single document-processing toolkit for PDF, Word, Excel, PowerPoint, and Markdown files. It chooses a document-specific handler based on the file type or requested task.
save-as-pdf
Reformat the current HTML design into a paginated, paper-ready PDF. The "Instant" export already gives the user a PDF at the design's native pixel size — this path is for when they want real pages.
Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and…
docs-artifact
Use when creating, editing, or reviewing a document for the user (Word, Google Docs, or a document delivered as PDF), or when the task calls for a standalone written deliverable such as a memo, report, proposal, or brief. Also use to answer questions that require inspecting an existing document; not for a short chat…