pdf-explore
Installation
SKILL.md
PDF Explore: navigate a PDF too big to embed
A 50-page PDF read whole is ~200K tokens, and pages opened as images with Read(pages="…") drop out of context after one turn, so multi-section work loops on re-reading them. And when the answer is "every page" (list all the datasets / baselines / citations mentioned anywhere), reading page by page is the expensive way to get it. This skill parses the PDF once with a local, no-LLM script, so you load only what matters, or sweep every page via a subagent fan-out without ever putting the pages in your own context.
Which tool for which read
| need | use | returns |
|---|---|---|
| a single 1–4 page lookup you'll quote in your next reply | Read(file_path=…, pages="21-24") (no script) |
pages as images, dropped from context after one turn |
| a structured doc, see its sections first | pdf_nav.py outline paper.pdf |
outline tree (page + level) |
| several pages/sections at once for a summary or comparison | pdf_nav.py text paper.pdf 5,21-25,62 then write to a file then Read that file |
persistent text, stays in context like any tool output |
| locate a keyword or pattern | pdf_nav.py search paper.pdf "pattern" [--regex] |
[{page, line, snippet}] |
| exhaustive list of X across the whole doc | pull full text, then subagent fan-out (recipe below) | deduped list |
| a value or label off a figure | Read(file_path=…, pages="5") (page as image) |
high-res page image |
The script lives at scripts/pdf_nav.py; run it with python3. It needs pypdf (see Dependencies).