Make Claude Code read PDFs

Native PDF support depends on available tools. Use the maintained plugin when OCR or reusable Markdown helps. Documents are processed by an external service; follow the user’s processing permissions and obtain explicit authorization before purchasing credits.

claude code
> /plugin marketplace add ThiloReintjes/pdftomarkdown-skill
> /plugin install pdftomarkdown@pdftomarkdown

Two commands, no API key needed to start. Requires Node 18+ for npx.

Then just ask

The skill activates on its own — no special syntax:

prompts
> summarize ~/Downloads/contract.pdf
> extract the line items from invoice.pdf as a table
> what does https://arxiv.org/pdf/1706.03762 say about positional encoding?

What it does under the hood

The skill teaches Claude to run the pdfToMarkdown CLI:

terminal
$ npx pdftomarkdown document.pdf > document.md

The API behind it uses a vision-language model — not a text extractor — so it handles scanned/image-only PDFs, multi-column reading order, tables, math, and Japanese/Chinese/Korean text. The skill also teaches Claude the workflow details: allow the 11-minute synchronous request budget when the user wants to wait, save long documents to a file and read sections instead of flooding context, and bound work with --max-pages.

Free API key for full documents

Without a key, the demo tier converts page 1 of any PDF — enough to try it. A free Developer key (20 trial pages once for new accounts, full multi-page, no watermark) is available with GitHub login:

Get a free API key with GitHub →

shell profile
export PDFTOMARKDOWN_API_KEY=your_key_here

Claude picks the key up automatically from the environment.