Claude Code skills · updated 2026-10-03

PyMuPDF to pypdf migration skill for Claude Code — AGPL imports, fitz calls

Finds every PyMuPDF import, call and requirement line, with the pypdf fix

pymupdf-to-pypdf-migration - findings on the bundled example

On one 13-line invoice export worker it printed 6 findings (6 errors, 0 warnings) from 25 rules, each with file:line and the replacement line.

Get it on Whop - $12 onceGet it on Gumroad

Who it's for

For Python teams who parse, render or search PDFs with PyMuPDF and have been told it has to come out.

What breaks, and when

Every import fitz loads PyMuPDF, which is AGPL-3.0 or a paid Artifex licence; the fixes pin pypdf>=6.19 (BSD-3-Clause), read on PyPI 2026-09-30.

What it printed on the bundled example

== pypdf Migration Check — 6 findings (6 errors, 0 warnings) in 1 file · 25 rules
  ERROR invoice_export.py:2  [import-fitz]
        import fitz loads PyMuPDF (AGPL-3.0 or paid Artifex licence) -> from pypdf import PdfReader, PdfWriter
        fix: from pypdf import PdfReader, PdfWriter
  ERROR invoice_export.py:7  [fitz-open]
        fitz.open() opens the file with PyMuPDF -> reader = PdfReader(path)  # new files: writer = PdfWriter()
        fix: reader = PdfReader(path)  # new files: writer = PdfWriter()
  ERROR invoice_export.py:8  [get-text]
        page.get_text() is a PyMuPDF call -> page.extract_text()  # pypdf; words with positions: pdfplumber page.extract_words()

What you get

Install

Unzip into ~/.claude/skills/ (all projects) or your-repo/.claude/skills/ (one repo), then ask Claude Code: "Our legal team says we can't ship AGPL code in the product. Can you find everywhere we still use PyMuPDF or fitz and tell me what to replace each one with? Don't edit anything yet.". Needs Node 16+.

unzip pymupdf-to-pypdf-migration.zip -d ~/.claude/skills/

Ask Claude

“Our legal team says we can't ship AGPL code in the product. Can you find everywhere we still use PyMuPDF or fitz and tell me what to replace each one with? Don't edit anything yet.”

What it does not do

Reads source and dependency files only; it does not open PDFs, run your tests or give legal advice.

FAQ

What is a Claude Code skill?

A folder with a SKILL.md and scripts that Claude Code loads when your request matches it. You ask in plain words and Claude runs the scanner the skill carries.

How is this different from asking Claude without the skill?

The skill carries a dated rule table and a scanner that reads every file, so Claude quotes the exact date and line instead of answering from memory.

Does it send my code anywhere?

Reads source and dependency files only; it does not open PDFs, run your tests or give legal advice.

How do I install it?

Unzip into ~/.claude/skills/ (all projects) or your-repo/.claude/skills/ (one repo), then ask Claude Code: "Our legal team says we can't ship AGPL code in the product. Can you find everywhere we still use PyMuPDF or fitz and tell me what to replace each one with? Don't edit anything yet.". Needs Node 16+.

What do I get when I buy?

The zip. On Whop it is in your library as a download lesson with the zip attached; on Gumroad it is the product file.