Free & open source · MIT

Convert documents on your computer, not in Claude’s context.

PDFStruct turns PDF, DOCX, text and image files into ten structured formats on your own machine. Claude gets short results instead of the whole file, which can cut context and token use, especially for large documents.

Current version: v0.2.1 Release notes (opens in a new tab) MIT license (opens in a new tab)

PDFStruct illustration: PDF, DOCX, TXT and image files pass through native extraction or OCR and come out as JSON, XLSX, DOCX and PDF.
  • 10 output formats
  • OCR when a page needs it
  • Less context and fewer tokens in Claude
  • Free and open source

Why PDFStruct?

  • Your documents are processed on your computer

    Files are read and converted on your own machine. Nothing is uploaded to a PDFStruct server, and the source file is never overwritten.

  • Large documents stay out of Claude’s context

    Claude starts the conversion and gets back a short status and the output paths. It reads the content only when you ask, and then only in small pieces.

  • One read, ten output formats

    Each input is read once. Every format you ask for is produced from the same structured result, and unchanged jobs can be run again safely.

How it works

Four steps, the same for every way of using PDFStruct.

  1. PDF, DOCX, text or image

    Give it one file, several files or a folder.

  2. Native extraction or OCR

    If a page has a usable text layer, it is read directly. Weak or scanned pages go through OCR.

  3. raw.json

    One structured result per document. Low-confidence pages are listed in review_pages.

  4. 10 output formats

    All requested formats are written from that one result.

Diagram “One read. Ten outputs.”: 1 PDF, DOCX, TXT and images; 2 native extraction or OCR; 3 raw.json; 4 JSON, XLSX, DOCX, PDF and six more formats.
Illustration “Don’t send the whole document to Claude”: a document on a laptop is processed by PDFStruct, and only Inspect, Search and excerpts of up to 2,000 characters reach Claude.

With Claude

Less context, fewer tokens

With the local MCP server, Claude works with your documents without receiving them in full. Each tool returns only what is needed:

  • inspect returns short metadata about the file, not its content.
  • search brings back targeted matches for a query.
  • read_excerpt reads at most 2,000 characters per call.
  • convert returns a short status and the output paths instead of the document text.

How much context and how many tokens this saves depends on the document. There is no measured or guaranteed figure.

Supported formats

Ten input types and ten output formats. Nothing else is supported.

Input

  • PDF
  • DOCX
  • TXT
  • Markdown
  • HTML
  • JPG
  • PNG
  • TIFF
  • BMP
  • WebP

Output

  • JSON
  • HTML
  • TXT
  • Markdown
  • CSV
  • XLSX
  • DOCX
  • JSONL
  • SQLite
  • PDF

Use it your way

One engine behind every option. Claude is optional: PDFStruct works without it.

  • Desktop window

    Drag files in, tick the formats, press Convert. On Windows, the setup ZIP installs PDFStruct into its own folder; it needs Python 3.10 to 3.13.

    Updates are installed only after you confirm them; nothing runs in the background. This release has no portable build.

    Download the Windows setup ZIP (opens in a new tab)

  • Command line and scripts

    A keyboard menu in the terminal, or a single command without prompts for scripts and automation. Installed with pip from the wheel; needs Python 3.10 or newer.

    Not on PyPI yet.

    Download the Python wheel (opens in a new tab)

  • Claude Code and Claude for Windows

    A plugin for Claude Code (the skill plus the MCP server registration) and a .mcpb extension for the Claude desktop app let Claude run conversions on your computer.

    Both are launchers without a copy of PDFStruct: install PDFStruct with the Windows setup first. If you use the plugin, do not add the separate skill ZIP as well.

    Install order in the release notes (opens in a new tab)

Privacy

Your documents are processed on your computer.

  • Documents are not uploaded to a PDFStruct server.
  • No account is needed.
  • No telemetry by default.
  • No artificial usage limits and no mandatory payment.

One exception to know about: the first time OCR is needed, PDFStruct downloads its OCR models once (about 70 MB). That step needs an internet connection.

What it does not do

PDFStruct extracts text and structure. It is not a table extractor and not a layout-preserving converter.

  • It does not rebuild tables. CSV and XLSX outputs are lists of text blocks, not real tables.
  • DOCX to PDF does not keep the original layout. The PDF it writes is a readable re-flow.
  • It does not summarise documents or extract fields with AI.
  • There are no measured speed or accuracy figures.
  • The first OCR run downloads its models (about 70 MB).

Free and open source

  • MIT licensed.
  • Free to use.
  • No Premium or Pro tier.
  • No core feature depends on a donation.
  • The source code is on GitHub.

Support the project

PDFStruct is free and open source. If it saves you time, you can support its development by buying me a tea or coffee.

A donation is voluntary and unlocks nothing: every feature is already free.

Questions

Is PDFStruct free?

Yes. It is MIT licensed, has no Premium or Pro tier and no usage limits. Donations are voluntary and unlock nothing.

Are my documents uploaded?

No. Documents are processed on your computer and are not sent to a PDFStruct server. The only download is the OCR models (about 70 MB), once, the first time OCR is needed.

When is OCR used?

Only when a page needs it. If the page’s text layer is good enough, the text is read directly. Weak or scanned pages and images go through OCR.

How does it reduce Claude’s token and context use?

The whole document is never sent to Claude. inspect returns short metadata, search returns targeted matches, read_excerpt reads at most 2,000 characters per call, and convert returns a status and output paths. The saving depends on the document; there is no guaranteed figure.

Which formats does it support?

Input: PDF, DOCX, TXT, Markdown, HTML, JPG, PNG, TIFF, BMP and WebP. Output: JSON, HTML, TXT, Markdown, CSV, XLSX, DOCX, JSONL, SQLite and PDF.

Does it keep tables and page layout?

No. It does not rebuild tables: CSV and XLSX contain text blocks. A PDF made from a DOCX is a readable re-flow, not a copy of the original layout.