Skip to main content

pdf2wiki

CI PyPI Python License: AGPL-3.0 codecov OpenSSF Scorecard OpenSSF Best Practices OpenSSF Baseline

Convert heavily technical books (native-text PDFs) into clean, chapter-split, LLM-ready Markdown. Code stays byte-perfect, tables stay intact, and diagrams are transcribed to Mermaid. The output suits an Obsidian vault or any Markdown-native knowledge base.

Built on MinerU with a dual-pass strategy. A pipeline pass (-m txt) takes byte-perfect code and text from the PDF's embedded text layer. A hybrid/VLM pass (--effort high) reconstructs table grids and transcribes diagrams to Mermaid. A base-driven merge then grafts the good parts together, and token-verifies the code so that a VLM which hallucinates never corrupts a listing. A six-step post-processing chain cleans the result and splits it into per-chapter files.

Why two backends instead of one: why a dual-backend pipeline.

Requirements

  • Linux (native or WSL2) with an NVIDIA GPU, ≥ 8 GB VRAM, CUDA driver installed
  • Python ≥ 3.11
  • MinerU ≥ 3.4 on PATH
  • A C compiler for vLLM's Triton JIT: sudo apt install build-essential python3-dev

Only the conversion needs the GPU — phase5, qa, and scan run anywhere Python runs. No GPU at all? offload the hybrid pass to a server, which keeps the pipeline pass local on CPU. Or use a remote GPU. Or, with no local setup at all, convert in the cloud via the managed mineru.net API.

Install

uv tool install pdf2wiki        # or: pip install pdf2wiki

Full steps: install pdf2wiki. The install includes every converter, cloud included — no separate extra.

Quickstart

# 1. convert one book  ->  out/my-book/my-book.md + images/ + blocks.json
pdf2wiki convert book.pdf --name my-book

# 2. preview the cleanup + chapter split (dry-run)
pdf2wiki phase5 out/my-book/my-book.md --book my-book

# 3. apply it  ->  out/my-book/chapters/00-front-matter.md, 01-….md, …
pdf2wiki phase5 out/my-book/my-book.md --book my-book --source-name book.pdf --apply

New here? Follow the guided tutorial: convert your first book.

Query the vault: the llm-wiki plugin

pdf2wiki builds a knowledge vault. The bundled llm-wiki Claude Code plugin reads one. Claude can consult it while you plan, and review your code against it. It always cites the exact [[Page-Name]]. It's the "LLM Wiki" pattern (an alternative to RAG/embeddings): plain Markdown read just-in-time, with coverage discovered from the vault itself. Standalone (works with any vault in the shape pdf2wiki produces) and MIT-licensed.

claude plugin marketplace add https://github.com/Sevthered/pdf2wiki
claude plugin install llm-wiki@pdf2wiki

The query side (consult + review) ships now. The ingest side is a later release. Details: plugin/ · llm-wiki documentation.

Documentation

Full docs live in docs/, organized by intent (Diátaxis):

Contributing

Contributions are welcome — see CONTRIBUTING.md for setup and conventions, GOVERNANCE.md for how the project is run and who maintains it, and the Code of Conduct. Where the project is headed: the roadmap.

Reporting bugs. Found a defect or have a feature request? Open a GitHub issue — the bug-report template prompts for the version, environment, steps to reproduce, and expected vs actual behavior. Security issues must be reported privately per SECURITY.md, never as a public issue.

Repository scope. pdf2wiki is a single repository with no separate subprojects or additional repositories. The bundled llm-wiki Claude Code plugin ships in-repo under plugin/.

Status

Alpha. All stages are functional. The converter was ported from a production deployment validated on several full technical books. The coverage gate hard-stops on a gap rather than a silent loss.

Remote (SSH) and cloud (--mineru-cloud) modes each have a verified end-to-end run on a real GPU box. Those runs were a single-book conversion over SSH, and a cloud dual-pass merge. Neither mode has been exercised at full-book batch scale yet, so prefer local mode for large runs.

License

AGPL-3.0-or-later for the converter. This tool drives the MinerU CLI (AGPL-3.0) as an external process. The bundled plugin/ (the llm-wiki Claude Code plugin) is MIT-licensed. See plugin/LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pdf2wiki-0.2.10.tar.gz (268.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pdf2wiki-0.2.10-py3-none-any.whl (104.8 kB view details)

Uploaded Python 3

File details

Details for the file pdf2wiki-0.2.10.tar.gz.

File metadata

  • Download URL: pdf2wiki-0.2.10.tar.gz
  • Upload date:
  • Size: 268.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pdf2wiki-0.2.10.tar.gz
Algorithm Hash digest
SHA256 af87ed2370d71569d37452d6eab316839301770f427c502430e413e22f0e9489
MD5 d13edcc3866c93fac6440b29c1b1e012
BLAKE2b-256 f0204cd79d84056ed3c79695f65b0e206afcf544865ae16c647f2735189e50b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pdf2wiki-0.2.10.tar.gz:

Publisher: publish.yml on Sevthered/pdf2wiki

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pdf2wiki-0.2.10-py3-none-any.whl.

File metadata

  • Download URL: pdf2wiki-0.2.10-py3-none-any.whl
  • Upload date:
  • Size: 104.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pdf2wiki-0.2.10-py3-none-any.whl
Algorithm Hash digest
SHA256 fb722bd1b52b7cc7d6bf1efb012a4dcc87a74e118f256a542513cd09a94edaf3
MD5 b4078e8622e910a6315371f6826a55eb
BLAKE2b-256 6e442703f7efe55bdbe53adf55893d3d5320ce8a3caf1ec5953e5d270b54551c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pdf2wiki-0.2.10-py3-none-any.whl:

Publisher: publish.yml on Sevthered/pdf2wiki

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.10 This release

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.2

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page