vichhka-git/pdf-reader-skills/pdf-reader

Claude Code and agent skill by vichhka-git/pdf-reader-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Convert PDFs to accurate Markdown for AI reading using pdf-inspector (Rust) — smart text/scanned classification, per-page OCR routing, page markers, and context-size chunking. Cross-platform (macOS/Linux/Windows).

Install

npx vskill@latest install vichhka-git/pdf-reader-skills/pdf-reader

SKILL.md

pdf-reader

Turn a PDF into clean, position-aware Markdown that an AI model can read without misreading the layout. Backed by pdf-inspector (Firecrawl's Rust engine), which handles columns, tables, headings, lists, and code blocks, and tells you exactly which pages (if any) need OCR.

When to use

  • The user shares or points at a PDF and asks you to read, summarize, extract,

or quote from it — and your model cannot read PDFs natively.

  • The PDF contains tables, multi-column layouts, or dense formatting where a

naive text dump would corrupt the meaning.

  • You need to cite specific pages of a document.

Do NOT use for image-only/scanned PDFs expecting embedded text: pdf-inspector is not an OCR engine. It will classify them as scanned/image_based and flag every page — that is the signal to route to OCR (--ocr-cmd) instead.

Prerequisites

  • Python 3 (≥ 3.8) with pip install pdf-inspector (prebuilt wheels for

macOS Intel/ARM, Linux x86_64/aarch64, Windows x64 — no Rust toolchain).

  • The core CLI is scripts/pdf_read.py — the scripts/ folder sits NEXT

TO this SKILL.md. Resolve it relative to this file: <this-skill-folder>/scripts/pdf_read.py (and <this-skill-folder>/scripts/install.py for one-shot installation). Reference docs live in references/ (api-guide.md, rules.md). If the folder is missing, clone or copy it from the skill repo, or follow README.md step-by-step installation.

Procedure

PDF_READ below stands for <this-skill-folder>/scripts/pdf_read.py —
the folder next to this SKILL.md.
  1. Locate the wrapper — resolve scripts/pdf_read.py next to this

file. If it is not present, tell the user it must be installed with the skill (README.md has the steps).

  1. Classify first (fast, ~10–50 ms):

``bash python3 "$PDF_READ" <document.pdf> --classify ` Read the output: type=text_based|scanned|image_based|mixed, confidence, pages_needing_ocr=[...]`.

  1. Convert (default writes <document>.md + <document>.md.meta.json):

``bash python3 "$PDF_READ" <document.pdf> ` For a quick answer you may pipe instead: `bash python3 "$PDF_READ" <document.pdf> --stdout --pages 1-10 ``

  1. Read the Markdown, honoring these rules:
  • <!-- Page N --> markers = source pages. When you quote or cite, say

which page a passage came from.

  • | tables are real Markdown tables — read them as tables, with headers

and cells, not as prose.

  • Headings are #/##/### (font-size-based from the original PDF).
  • <!-- OCR REQUIRED: page N ... --> means page N has **no embedded

text**: do not guess its content. Either report that page N needs OCR, or run the OCR hook (step 5).

  1. OCR fallback for flagged pages — run a local OCR engine per page:

``bash python3 "$PDF_READ" <document.pdf> --ocr-cmd 'tesseract {input} stdout -l eng' ` The hook output is spliced into the Markdown at the page's position. Placeholders ({input} {page} {out} {stem} {outdir}`) are shell-quoted automatically — use them bare, never wrapped in quotes.

  1. Long documents / small context windows — split into chunks:

``bash python3 "$PDF_READ" <document.pdf> --chunks 8000 ` Reads <document>.chunk-001.md, .chunk-002.md, ... in order; the manifest <document>.md.chunks.json` lists sizes and page ranges. Do not feed more than fits the model's context; keep the page markers when quoting.

  1. Machine-readable use (pipelines, tools):

``bash python3 "$PDF_READ" <document.pdf> --json --stdout ` Markdown → stdout, JSON envelope → stderr. Exit codes: 0 ok (OCR pages reported, not fatal), 1 error, 2 usage, 3 --fail-on-ocr`: pages still lack reliable text after the OCR hook (nothing is written on exit 3).

Quality checks (do these before answering from the output)

  • Spot-check 2–3 headings and 1 table against the original document's known

structure; if the Markdown looks broken (garbled text, missing sections), mention it to the user instead of silently working from bad data.

  • If pages_needing_ocr is non-empty, say so — never invent content for

those pages.

  • For huge PDFs (hundreds of pages), prefer --pages or --chunks over

reading everything at once.

Troubleshooting

SymptomCause / fix
pdf_inspector is not installedpython3 -m pip install pdf-inspector
Exit 1, "password-protected or malformed"encrypted PDF — unlock it first
type=scanned with all pages flaggedgenuinely scanned; run --ocr-cmd or tell the user OCR is needed
confidence low (< 0.7) on mixed docscheck pages_needing_ocr and treat flagged pages as unreadable
Math looks oddequations extract as inline glyphs; preserve them but don't "fix" silently

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
5
Repository forks
1
7-day trend score
0

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/vichhka-git/pdf-reader-skills/pdf-reader/badge)](https://verified-skill.com/skills/vichhka-git/pdf-reader-skills/pdf-reader)

Something wrong with this skill or its page? Tell us.