Skip to main content

obsidian-pdf-exporter

Turn a folder of Obsidian notes into one polished PDF, with wiki links, embeds, callouts, Mermaid and community plugins. Make redline PDFs of the changes between two versions. Runs locally or in CI.

Test, Lint and Build Build and publish to PyPI Package version Documentation

Documentation: https://spenhouet.com/obsidian-pdf-exporter/

ope turns a folder of an Obsidian vault into one PDF. Every folder becomes a numbered section with a table of contents, a running header and footer, and the Obsidian syntax in the notes is rendered: wiki links, embeds of notes, headings, blocks and images, callouts, highlights, tasks, footnotes, math, Mermaid and Bases. Community plugin syntax from Dataview, Meta Bind, Folder Notes, Block Link Plus, Excalidraw, draw.io and pandoc citations is rendered too. Templates control the look with CSS. It runs on the command line, without Obsidian, so it works in CI.

ope export ./MyVault/Handbook --title "Team handbook" --version 1.2.0

Page 1 of an exported handbook: title, table of contents, a callout, a task list and a table Page 2 of the handbook: a numbered section with a Mermaid flowchart, a callout, a table and an embedded note

Each feature page of the docs shows the Markdown next to the rendered PDF.

Install

macOS / Linux

curl -LsSf uvx.sh/obsidian-pdf-exporter/install.sh | sh && ope setup --yes

Windows

powershell -ExecutionPolicy ByPass -c "irm https://uvx.sh/obsidian-pdf-exporter/install.ps1 | iex; ope setup --yes"

ope setup installs the native libraries WeasyPrint needs and pandoc. Mermaid diagrams are drawn inside ope, so Node.js and a browser are not needed. See Installation for every OS, uv, pip and CI.

Quick start

ope export ./MyVault/Handbook --title "Team handbook" --version 1.2.0
ope export ./MyVault/Handbook --template ./my-template/
ope redline ./MyVault/Handbook --from-commit v1.1.0 --to-commit HEAD
ope --help

Redline: see every change in the PDF

ope redline turns two git commits of a folder into a tracked-changes PDF: inserted text underlined in blue, removed text struck through in red, moved text in purple and a change bar in the margin, in the layout of the real document. A change summary lists every changed section. The side-by-side style shows the old and the new document in two aligned columns, -O redline.collapse=on shows only the changes, and --blame adds the author, date and commit message of every changed block next to the page. It is made for reviews, approvals, audits and release notes of documents kept in git.

ope redline ./Policy --from-commit v1.0.0 --to-commit v1.1.0

The same policy before and after a change, and the redline PDF with inserted, removed and changed text and change bars

Tags, branches, commit hashes and HEAD~n work as versions, two folders or notes on disk can be compared without git (--from-path), and the docs have GitHub Actions workflows that attach a redline to every pull request or release. See Redline.

Documentation

Topic Link
Install on every OS, quick start Getting started
Every command, flag, -O option, env var and exit code CLI reference
Markdown: tables, code, footnotes, math Markdown
Obsidian syntax: wiki links, embeds, callouts, Mermaid Obsidian
Dataview, Meta Bind, Excalidraw, draw.io, writing a plugin Plugins
Tracked-changes PDFs: usage, comparing versions, CI, what changes look like Redline
Templates, header and footer, CSS classes, recipes Templates and styling
Claude Code plugin, skill, llms.txt Use with AI agents
Development setup, architecture, tests Contributing

Use with AI agents

The repository is a Claude Code plugin marketplace with a skill for ope:

/plugin install obsidian-pdf-exporter --marketplace Spenhouet/obsidian-pdf-exporter

On older Claude Code versions, run /plugin marketplace add Spenhouet/obsidian-pdf-exporter and then /plugin install obsidian-pdf-exporter@obsidian-pdf-exporter. Other agents can read llms.txt.

License

MIT

Metadata

Release files for obsidian-pdf-exporter 0.14.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for obsidian-pdf-exporter 0.14.6
File Size Uploaded Provenance
obsidian_pdf_exporter-0.14.6.tar.gz 547.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for obsidian-pdf-exporter 0.14.6
File Interpreter ABI Platform
obsidian_pdf_exporter-0.14.6-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / obsidian_pdf_exporter-0.14.6.tar.gz

Download URL obsidian_pdf_exporter-0.14.6.tar.gz
Size 547.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e826fc3c59fc8f88d5e346874c1db9a3129f4423f1d48f5072e9c0c0e44963b9
BLAKE2b-256 checksum
How to use checksums
c0009fa35fe31032efdb89460f452091a47718fb3cac11846bb04a815c8baf3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / obsidian_pdf_exporter-0.14.6-py3-none-any.whl

Download URL obsidian_pdf_exporter-0.14.6-py3-none-any.whl
Size 611.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f72786a5059b32538d6ea003ce91f18a3dfd4ebae3892ef968e1e14691c70b4d
BLAKE2b-256 checksum
How to use checksums
56c8ac1e900830cd615d0ef72500253f01fe83a3154c125c2394f9798a8632c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for obsidian-pdf-exporter 0.14.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.14.6 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page