Agent skill · Workflow & Productivity

pdf

Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.

hAcKlycgithub.com/hAcKlycGitHub ↗
claude-codeships scriptsAGPL-3.0
Install
npx skills add hAcKlyc/MyAgents --skill pdf --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 12
SKILL.md size: 7 KB
Bundled scripts: yes
Path: bundled-skills/pdf/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 795
Language: TypeScript

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# 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 ```python 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 ```python 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 ```python 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) ``` #### Extract Metadata ```python reader = PdfReader("document.pdf") meta = reader.metadata print(f"Title: {meta.title}") prin

What's inside
Steps it walks through
  1. Overview
  2. Quick Start
  3. Python Libraries
  4. pypdf - Basic Operations
  5. pdfplumber - Text and Table Extraction
  6. reportlab - Create PDFs
  7. Command-Line Tools
  8. pdftotext (poppler-utils)
  9. qpdf
  10. pdftk (if available)
  11. Common Tasks
  12. Extract Text from Scanned PDFs
  13. Add Watermark
  14. Extract Images
Ships with 11 files
  • LICENSE.txt
  • forms.md
  • reference.md
  • scripts/check_bounding_boxes.py
  • scripts/check_bounding_boxes_test.py
  • scripts/check_fillable_fields.py
  • scripts/convert_pdf_to_images.py
  • scripts/create_validation_image.py
  • scripts/extract_form_field_info.py
  • scripts/fill_fillable_fields.py
  • scripts/fill_pdf_form_with_annotations.py
Commands it runs
Extract text
pdftotext input.pdf output.txt
Extract text preserving layout
pdftotext -layout input.pdf output.txt
Extract specific pages
pdftotext -f 1 -l 5 input.pdf output.txt  # Pages 1-5
Merge PDFs
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf
Split pages
qpdf input.pdf --pages . 1-5 -- pages1-5.pdf
More from MyAgents
All skills →
About this skill
What does the pdf skill do?

Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.

How do I install it?

Run `npx skills add hAcKlyc/MyAgents --skill pdf --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From hAcKlyc/MyAgents, a repository with 795 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going