This is your go-to when Claude needs to do anything with PDFs programmatically. It covers the Python essentials like pypdf for merging and splitting, pdfplumber for pulling out tables with their structure intact, and reportlab for generating new PDFs from scratch. The form filling capability is handled separately in a dedicated guide, which is smart since PDF forms are their own special nightmare. Command-line tools like qpdf are included for when you just need something quick. The table extraction examples that output to pandas DataFrames are especially handy since that's usually what you want anyway. It won't help with scanned PDFs unless you add OCR yourself, but for text-based documents it's comprehensive.
- GitHub stars
- 6K
- last updated
- Jun 11, 2026
Install
$ npx -y skills add thinkinaixyz/deepchat --skill pdf --agent claude-codeInstalls into .claude/skills of the current project.
Files
PDF Processing Guide
Overview
This guide covers essential PDF processing operations using Python libraries and command-line tools. For advanced features, JavaScript libraries, and detailed examples, see reference.md. If you need to fill out a PDF form, read forms.md and follow its instructions.
Quick Start
from pypdf import PdfReader, PdfWriter
# Read a PDF
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")
# Extract text
text = ""
for page in reader.pages:
text += page.extract_text()
Python Libraries
pypdf - Basic Operations
Merge PDFs
from pypdf import PdfWriter, PdfReader
writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]:
reader = PdfReader(pdf_file)
for page in reader.pages:
writer.add_page(page)
with open("merged.pdf", "wb") as output:
writer.write(output)
Split PDF
reader = PdfReader("input.pdf")
for i, page in enumerate(reader.pages):
writer = PdfWriter()
writer.add_page(page)
with open(f"page_{i+1}.pdf", "wb") as output:
writer.write(output)
Sponsors
Details
- Repository
- github.com/thinkinaixyz/deepchat
- Category
- Office & Documents
- License
- Apache-2.0
- First seen
- Jun 11, 2026
