# pdf-to-markdown

Turns a PDF into structured Markdown with headings, tables, lists and reading order intact. Handy when an agent needs the text of a document to work with.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 829 installs · ★ 18
- Author: PSPDFKit-labs
- License: LicenseRef-Proprietary · policy=link-only · description only; the file stays with the author
- Source: https://github.com/PSPDFKit-labs/nutrient-skills/tree/HEAD/plugins/pdf-to-markdown/skills/pdf-to-markdown/SKILL.md
- Updated: 2026-10-19
- HTML: https://affpapa.org/en/nevibecode/skills/pdf-to-markdown

## What it does

This skill converts PDFs to Markdown and keeps the structure: headings, tables, lists, reading order. Two modes. Standard handles PDFs where text can be selected, and it costs nothing. Vision is meant for scans, photos, handwriting, formulas and messy layouts.

The wrapper at `$SKILL_DIR/bin/pdf-to-markdown` pulls the CLI from Nutrient's CDN on the first run into `~/.local/share/nutrient/cli/`, then looks for updates every six hours. One file goes through with an input and an output path. Two or more files go through as an input directory and an output directory, and the CLI converts them in parallel. Add `--enable-image-export` to drop images into `{output}_resources/` and link them from the Markdown.

Vision will not run without a Nutrient account, an API key or a CLI license key. For unattended jobs set `NUTRIENT_API_KEY` in the environment rather than passing it on the command line. Once Vision has connected it keeps working offline for one hour and handles up to 100 pages; a document that crosses that line still finishes. Standard keeps going even when Nutrient is unreachable. Convert each PDF once and search the saved file — running it again just burns time.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add PSPDFKit-labs/nutrient-skills --skill pdf-to-markdown -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/pdf-to-markdown/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/pdf-to-markdown/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add PSPDFKit-labs/nutrient-skills --skill pdf-to-markdown -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/pdf-to-markdown/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add PSPDFKit-labs/nutrient-skills --skill pdf-to-markdown -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/pdf-to-markdown/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install PSPDFKit-labs/nutrient-skills pdf-to-markdown
```

2. **Manually: put the files in place**
- File: `.github/skills/pdf-to-markdown/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add PSPDFKit-labs/nutrient-skills --skill pdf-to-markdown -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/PSPDFKit-labs/nutrient-skills --path plugins/pdf-to-markdown/skills/pdf-to-markdown
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/pdf-to-markdown/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add PSPDFKit-labs/nutrient-skills --skill pdf-to-markdown -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/PSPDFKit-labs/nutrient-skills/tree/HEAD/plugins/pdf-to-markdown/skills/pdf-to-markdown/SKILL.md

## When to use it
- pull text out of a PDF for an agent to analyse
- read a scan or an image-only PDF
- get Markdown with tables and lists out of a report
- batch-convert a folder of PDFs in one run
- extract images alongside the text

## Example prompts
- Convert `report.pdf` to Markdown and tell me where you saved it
- This contract is a scan — run it through Vision
- Convert every PDF in `invoices/` to Markdown with image export

## Similar
- [setup-matt-pocock-skills](https://affpapa.org/en/nevibecode/skills/setup-matt-pocock-skills.md) — skill · 1052851 installs
- [ask-matt](https://affpapa.org/en/nevibecode/skills/ask-matt.md) — skill · 766587 installs
- [to-tickets](https://affpapa.org/en/nevibecode/skills/to-tickets.md) — skill · 711230 installs
- [writing-plans](https://affpapa.org/en/nevibecode/skills/writing-plans.md) — skill · 282859 installs
- [caveman-review](https://affpapa.org/en/nevibecode/skills/caveman-review.md) — skill · 411800 installs
- [caveman-compress](https://affpapa.org/en/nevibecode/skills/caveman-compress.md) — skill · 411500 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
