Agent skill · creative production · nousresearch
PDF files: create, read, merge, fill, OCR, edit text.
Why this skill is useful
Provides specific commands and workflows for manipulating PDF files that the AI wouldn't reliably generate on its own.
What it needs
Requires pdf2image, pdfplumber, poppler-utils, pypdf, pytesseract, qpdf, reportlab, tesseract-ocr installed locally. About 8k tokens when loaded. Last updated 2026-08-07. 226,679 stars on the source repository.
What this skill does
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. Two absorbed capabilities live in references/ (read the matching file before those tasks): Scanned/image-only PDFs and OCR (pymupdf fast path, marker-pdf quality path, scripts/extractpymupdf.py + scripts/extractmarker.py): references/ocr-extraction.md Editing text inside an existing PDF via natural-language prompts (nano-pdf CLI): references/nano-pdf-editing.md 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 references/ocr-extraction.md) and NOT for pixel-perfect HTML-to-PDF rendering (use a headless browser). Prerequisites Python 3.10+ with pypdf, reportlab, pdfplumber. Pick the interpreter with terminal. Use python when it already imports the libraries (the Hermes Docker image ships them). Otherwise, when hermes is on PATH, let Hermes build its shared, pinned documents environment under the Hermes home: it survives container restarts, never touches the Hermes install itself, and is safe to run from several agents at once. When it is not (the terminal runs in a Docker sandbox, which has no Hermes), the block builds a venv in the sandbox home with the same pinned versions. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills nousresearch/pdf