All skills
github avatar

/convert-pdf-to-md

@e4a1f57 official
by githubgithub/awesome-copilot40k stars
5,040

Converts PDF (.pdf) documents into Markdown so their contents can be accurately analyzed, summarized, searched, or extracted from. Use this skill whenever the user shares, references, or asks about a .pdf file — even if they don't say "convert" or "markdown" explicitly. This includes requests to "read", "summarize", "review", "extract data from", "compare", or "analyze" a PDF report, paper, invoice, form, contract, or scanned document. Always run the bundled conversion script to produce Markdown first; do not attempt to parse PDF content directly or write ad-hoc extraction code. Also use this skill for batch requests involving a whole folder of PDF documents. IMPORTANT: When the user references a folder or set of documents containing multiple file types (.pdf, .docx, .xlsx), invoke ALL three sibling skills — convert-pdf-to-md, convert-word-to-md, and convert-excel-to-md — so no file type is silently skipped.

Use this Skill: https://skilld.dev/gh/github/awesome-copilot/convert-pdf-to-md

This session only. Nothing lands on disk.

referencessetup.md

≈669 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Environment Setup for convert-pdf-to-md

Follow these steps exactly, in order, before running scripts/convert_pdf_to_md.py for the first time in a given environment. Don't skip steps or improvise alternatives — they're written to be deterministic and safe to re-run.

1. Check Python is available (3.10+)

python --version
  • If this fails (command not found), install Python 3.10 or newer:
    • Windows: winget install --id Python.Python.3.12 -e
    • macOS: brew install python@3.12
    • Linux (Debian/Ubuntu): sudo apt-get update && sudo apt-get install -y python3 python3-pip python-is-python3
  • If the reported version is older than 3.10, install a newer Python using the same command above (MarkItDown requires 3.10+).

2. Check pip is available

python -m pip --version
  • If this fails, bootstrap pip:
python -m ensurepip --upgrade

3. Install MarkItDown with PDF support, plus PyMuPDF for image extraction

Use the scripts/requirements.txt file bundled with this skill to install pinned, known-good versions of the dependencies:

python -m pip install -r scripts/requirements.txt

This pulls in markitdown[pdf] and pymupdf>=1.24.0. PyMuPDF (imported as fitz) is required separately because MarkItDown's PDF converter only extracts text and tables — it has no support for embedded images at all, so this skill's script extracts them itself.

4. Verify the install

python -c "from markitdown import MarkItDown; import fitz; print('markitdown + pymupdf OK')"

Expect to see markitdown + pymupdf OK printed with no errors. If you see a ModuleNotFoundError, repeat step 3 — pip may be installing into a different Python environment than the one being invoked (check python -m pip --version shows the same path as python --version's interpreter).

Notes

  • This setup only needs to be done once per environment/virtual environment, not once per conversion.
  • convert_pdf_to_md.py itself also checks for markitdown and fitz at startup and prints a pointer back to this file if either is missing, so re-running setup is safe and idempotent.
  • Only .pdf is supported by this skill — it's MarkItDown's only PDF-family format, so there's no legacy-format equivalent to worry about (unlike Word's .doc or Excel's .xls).
  • Scanned/image-only PDFs (no embedded text layer) will produce little or no text from MarkItDown, since it does not perform OCR. The images themselves will still be extracted and appended, but the text body may be empty or near-empty in that case — mention this to the user if it happens.

Source: SKILL.md on GitHub

1 warning2mo3 checks · Risk SAFE
  • Gen Agent Trust Hub2mo

    This skill is safe to use. It provides a standard utility for converting PDF files into Markdown format using well-known and reputable libraries such as Microsoft's MarkItDown and PyMuPDF. The script manages files locally and does not perform any network operations or access sensitive system directories.

  • Socket2mo

    No alerts

  • Snyk2mo

    Risk: MEDIUM · 1 issue

Signed by skilld at e4a1f57. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 19 hours ago.

Activeupdated 3 months ago

README badge

README badge for github/awesome-copilot/convert-pdf-to-md