pdf

pdf is a skill for Claude Code, Codex from nobodyohm-web/Thot. It costs 15 tokens per session (3,091 once invoked), scanned A, a copy of pdf, MIT.

A tool for creating, reading, editing, and managing PDF files. It supports tasks such as merging, splitting, filling forms, extracting tables, adding watermarks, and securing files with passwords.

In plain words
What is it for?
Use it to generate reports and invoices, fill forms, extract PDF data, rearrange pages, add metadata or attachments, and encrypt or decrypt files.
Why use it?
It brings common PDF operations into an automated workflow instead of requiring separate desktop applications or manual file handling.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/nobodyohm-web/thot/pdf
Any agent
npx skills add nobodyohm-web/Thot --skill pdf
Clone the repo
git clone --depth 1 https://github.com/nobodyohm-web/Thot

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for pdf

README.md
[![agentmods](https://agentmods.dev/badge/skills/nobodyohm-web/thot/pdf.svg)](https://agentmods.dev/skills/nobodyohm-web/thot/pdf)
Your own site
<a href="https://agentmods.dev/skills/nobodyohm-web/thot/pdf"><img src="https://agentmods.dev/badge/skills/nobodyohm-web/thot/pdf.svg" alt="Measured on agentmods" height="20"></a>
Per session 15 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,091 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin 89% copy Near-identical to another mod in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00015 $0.03091
Opus 5 $0.00008 $0.01545
Sonnet 5 $0.00003 $0.00618
Haiku 4.5 $0.00002 $0.00309

Measured yesterday against content hash 14e1be6e302b, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

pdf 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.

The scan reads SKILL.md. This mod also ships 14 executable files (scripts/_raster.py, scripts/pdf_create.py, scripts/pdf_fill_form.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

Origin

This is a copy

89% identical to pdf — 19 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

hermes/skills/productivity/pdf/SKILL.md · 123 lines

How it starts

The opening of the file, as written. The whole thing — 123 lines — stays where its author put it; the contents beside it link to each section on GitHub.

PDF Skill

Create PDFs from structured specs, build and fill AcroForm forms (with layout linting and visual overlays), extract text/tables/metadata, merge/split/rotate/watermark/stamp pages, export page images, manage metadata and attachments, and encrypt/decrypt — using pypdf, reportlab, and pdfplumber. Scanned (image-only) PDFs contain no text layer: OCR is explicitly out of scope here — when a page is image-only, stop and use the ocr-and-documents skill instead of pretending to extract text.

When to Use

  • Generate a report, invoice, or multi-page document as PDF.
  • Build a fillable AcroForm (text/checkbox/radio/dropdown) from a JSON spec, linting the layout first.
  • Pull text, tables (JSON/CSV), metadata, or form-field values out of a PDF.
  • Merge, split, rotate, extract page subsets, watermark, stamp text/images at coordinates, bookmark, or compress PDFs.
  • Export pages as PNGs for visual review or for OCR hand-off; set/clear document metadata; add/extract file attachments.
  • Fill or flatten AcroForm forms; encrypt or decrypt with passwords.
  • NOT for scanned/image-only PDFs (use ocr-and-documents) and NOT for pixel-perfect HTML-to-PDF rendering (use a headless browser).

Prerequisites

  • Python 3.10+ with pypdf, reportlab, pdfplumber: python -m pip install pypdf reportlab pdfplumber
  • Optional, for page rasterization (pdf_page_image.py, overlay rendering): python -m pip install pypdfium2, or poppler's pdftoppm on PATH. Scripts fall back pypdfium2 → pdftoppm and report {"rendered": false, "missing": [...]} (exit 0) when neither exists.
  • Each helper script checks imports lazily and prints an install hint if a dependency is missing.

How to Run

All helpers live in scripts/ and are argparse CLIs — run them with the terminal tool; every one supports --help. They read/write JSON strictly as UTF-8, print JSON results to stdout, and exit non-zero on failure.

python scripts/pdf_create.py spec.json -o out.pdf         # build PDF from JSON spec
python scripts/pdf_make_form.py formspec.json -o form.pdf # build fillable AcroForm from JSON spec
python scripts/pdf_form_layout.py formspec.json           # lint form layout BEFORE building
python scripts/pdf_form_layout.py formspec.json --render-overlay boxes.png [--pdf form.pdf]
python scripts/pdf_read.py doc.pdf --text                 # per-page text (JSON)
python scripts/pdf_read.py doc.pdf --tables --csv-dir t/  # tables to JSON + CSV files
python scripts/pdf_read.py doc.pdf --meta                 # metadata, page sizes, encrypted/scanned flags
python scripts/pdf_read.py form.pdf --fields              # form fields: name, type, value
python scripts/pdf_merge.py a.pdf b.pdf -o merged.pdf [--bookmarks]
python scripts/pdf_split.py doc.pdf --pages 1-3,7 -o part.pdf [--rotate 90]
python scripts/pdf_fill_form.py form.pdf --fields-json values.json -o filled.pdf [--flatten]
python scripts/pdf_secure.py doc.pdf --encrypt -o enc.pdf --user-password your-password
python scripts/pdf_secure.py enc.pdf --decrypt -o dec.pdf --password your-password
python scripts/pdf_watermark.py doc.pdf --stamp mark.pdf -o stamped.pdf [--under]
python scripts/pdf_stamp.py doc.pdf -o out.pdf --text "DRAFT" --x 150 --y 400 \
    --font-size 60 --rotation 45 --opacity 0.3 --color "#cc0000" [--pages 1-3]
python scripts/pdf_stamp.py doc.pdf -o out.pdf --image sig.png --x 400 --y 60 --width 120
python scripts/pdf_page_image.py doc.pdf --pages 1-3 --dpi 150 --out-dir imgs/
python scripts/pdf_meta.py doc.pdf --set-meta --title "T" --author "A" -o out.pdf
python scripts/pdf_meta.py doc.pdf --attach data.csv -o out.pdf
python scripts/pdf_meta.py doc.pdf --list-attachments | --extract-attachments dir/

Read the full file on GitHub · 123 lines

Changes

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.

  1. yesterday First seen · 123 lines · 15 tokens per session scan A 14e1be6e302b

Subscribe to this mod's changes

pdf is a skill published in the GitHub repository nobodyohm-web/Thot (0 stars, last pushed 10d ago), licensed MIT. It adds 15 tokens to every session and 3,091 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. It is 89% identical to pdf, differing in 19 lines, and is treated as a copy.

Related

Other skills, from other repositories

pdf

PDF files: create, read, merge, fill, OCR, edit text.

NousResearch/hermes-agent · 18 tokens

pdf-toolkit

Structured .pdf operations: extract text/tables, merge pages from multiple PDFs, split a PDF by page ranges, fill PDF form fields, and generate fresh PDFs from JSON. Trigger when the user wants programmatic PDF work without natural-language rewriting — examples: pull tables from a report, combine three PDFs, extract…

opensquilla/opensquilla · 127 tokens

nano-pdf

Edit PDFs with natural-language instructions using the nano-pdf CLI.

opensquilla/opensquilla · 17 tokens

pdf-explore

Use this skill when the user has attached a PDF, paper, report, or other document and the answer needs content from more than one place in it: summarize the methods or any other section, compare sections, find where a topic is discussed, read a value or label off a figure or chart, or find/list/extract every instance…

UnicomAI/wanwu · 192 tokens

smart-data-collection

智能数据采集技能,用于从图片或文档(PDF、Word、Excel)中提取结构化数据,基于知识网络完成字段映射,生成SQL并写入数据库。当用户提到"数据采集"、"从文档提取数据"、"图片转数据"、"数据导入"、"文档数据入库"、"批量数据提取"或需要从非结构化文件中提取结构化数据并存储时,自动使用此技能。.

UnicomAI/wanwu · 115 tokens

parse-document

Convert a PDF, scan, image of a page, or office file to clean markdown through the connected Superlinked MCP edge, so the source document is not read into model context directly. Use when the user asks to read, parse, OCR, extract from, summarize, or answer questions about a document.

superlinked/sie · 64 tokens