agentsclimarketplace

Pdf reader

Skill jtepe/slopclub/skills/pdf-reader

Read PDF files without flooding context — extract page-range text as markdown, pull out figures by ID, render pages to images. Use whenever the user asks about the contents of a PDF file.From its SKILL.md

Install
npx -y skills add jtepe/slopclub --skill pdf-reader

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.1 KB, 761 tokens by cl100k_base, as published. Nobody here has run it

Use the pdfread.py tool next to this file to read PDFs. Run it either way:

  • With uv 0.11+ (preferred): invoke pdfread.py directly — the shebang runs it via uv run, and the first invocation downloads dependencies and may take a minute.
  • Without uv: python3 pdfread.py … works on any Python 3.10+ that has pymupdf4llm>=0.0.17 installed (pip install pymupdf4llm).

The search command needs SQLite with FTS5; uv-managed and nearly all modern system Pythons include it, and the script errors clearly if not.

Run pdfread.py --help for full usage. In short:

  • pdfread.py info FILE — page count, metadata, outline/TOC. Start here.
  • pdfread.py search FILE "terms" — pages mentioning the keywords, BM25-ranked with a snippet per hit. The first search builds a cached index (seconds); later searches are instant. Terms are ANDed, term* matches prefixes, --raw unlocks full FTS5 syntax ("exact phrase", OR, NEAR). Text layer only — scanned pages are invisible to search.
  • pdfread.py text FILE --pages 10-25 — markdown text for a 1-based page range. Figures appear as [image: p12-img2 640x480px] placeholders.
  • pdfread.py image FILE p12-img2 — write that figure as a PNG and print its path; view it with your file-reading tool.
  • pdfread.py images FILE --pages 12 — list figure IDs on pages.
  • pdfread.py render FILE 7 — render a whole page (or --rect x0,y0,x1,y1 crop) to a PNG; the fallback for scanned pages and anything the text layer misses.

Preserving context on large PDFs

For pinpoint questions ("where does the contract mention termination fees?"), run search first and read only the hit pages with text --pages — no subagent fan-out needed. The index cache is shared, so subagents can search too without rebuilding.

For broad synthesis, do not dump a whole document into the main conversation. Instead:

  1. Run info to get the page count and outline, and partition the document into sensible ranges (by chapter, or ~15–25 pages).
  2. Spawn a subagent per range with instructions like: "Run <path>/pdfread.py text <file> --pages 10-25 and answer <the user's question> / summarize in at most N words. If a [image: ...] placeholder looks relevant, extract it with the image command and look at it."
  3. Keep only the summaries/answers in the main conversation and synthesize from those. Re-target specific pages yourself only when a summary indicates the answer lives there.

Notes

  • There is no OCR: a page with no text layer comes back as just its full-page [image: ...] placeholder (or a "no extractable text" note) — extract or render it and read the image visually.
  • Extraction is deterministic: image IDs are stable across runs, so a subagent's reported ID can be extracted later from the main conversation.

What ships with it: 2 files

16.6 KB alongside SKILL.md, 1 of them executable

.claude-plugin/

Gives 0 of the 12 instructions most pdf office docs skills give in 761 tokens

Counted across 636 of the 690 authors here whose files we hold, read 2026-08-07

  • Extract text or tables using pdfplumber or pdftotextin 89 of 636, across 23 files
  • Create new PDFs using reportlabin 83 of 636, across 16 files
  • Read forms.md before filling out PDF formsin 80 of 636, across 13 files
  • OCR scanned PDFs using pytesseract and pdf2imagein 77 of 636, across 10 files
  • Use qpdf to merge or split PDFs or large filesin 70 of 636, across 3 files
  • Use Excel formulas instead of hardcoded calculated values or Python calculationsin 68 of 636, across 13 files
  • Unpack, edit, and repack XML for existing documents or presentationsin 63 of 636, across 8 files
  • Document sources for all hardcoded valuesin 61 of 636, across 9 files
  • Write minimal, concise Python code without unnecessary commentsin 59 of 636, across 7 files
  • Run the recalculation script (recalc.py) after adding or modifying formulasin 59 of 636, across 7 files
  • Fix all identified formula errors and recalculate before finishingin 58 of 636, across 6 files
  • Format years as text stringsin 57 of 636, across 5 files

Said here and by no other author read

  • run the pdfread.py tool
  • run info on the PDF first
  • search for pinpoint questions before reading
  • read only hit pages for pinpoint questions
  • do not dump whole documents into the context
  • partition large documents into page ranges

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,851. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.