Milldown vs pandoc
An honest comparison — because if pandoc is what you need, you should use pandoc. It's one of the great open-source tools. The short version: pandoc is a universal converter that goes every direction; Milldown does one direction — into Markdown — with a native Mac app around it.
| Milldown | pandoc | |
|---|---|---|
| Direction | Anything → Markdown | Nearly anything → nearly anything |
| Interface | Native Mac app + menu bar + Finder + optional CLI | CLI (GUIs exist as third-party wrappers) |
| Scanned PDFs | Automatic on-device OCR (Apple Vision) | No OCR — scanned PDFs yield nothing |
| PDFs generally | Yes, text layer + OCR fallback | Not as input (pandoc writes PDFs, doesn't read them) |
| Web pages / YouTube | Paste a URL; transcript support | HTML files yes; fetching and YouTube, no |
| Token analytics | Per-file token counts and savings vs the raw path | — |
| AI-workflow tooling | RAG chunking (MD/JSONL), context packs, front matter, clean-up pass | Templates and filters (Lua) — different aims |
| Automation | Watch folders, URL scheme, CLI | Scripts, Makefiles — excellent |
| Privacy | Local — even OCR runs on-device | Local |
| Price | $39 one-time, 3 Macs (7-day free trial) | Free, open source (GPL) |
When you should use pandoc
- You need Markdown → PDF/LaTeX/docx/HTML — the direction Milldown deliberately doesn't do.
- Academic writing: citations, BibTeX, LaTeX templates — pandoc is unmatched.
- You want infinitely scriptable conversion with filters, and the terminal is home.
When Milldown fits better
- Your inputs include PDFs and scans — pandoc can't read PDFs at all, and nothing OCRs in that pipeline.
- You want drag-and-drop, Finder integration, watch folders — a tool that's ambient rather than invoked.
- Your destination is an AI tool or RAG pipeline — token counting, chunk export, and clean-up are built for exactly that.
- You'd rather not maintain a Haskell toolchain install for a daily task.
Or use both
Plenty of people will: Milldown to get everything into Markdown (especially PDFs and scans), pandoc to take Markdown out to print-quality PDF or LaTeX. The formats are compatible — that's rather the point of Markdown.
Two more places pandoc wins
- It runs anywhere. Linux servers, CI pipelines, Windows, a Raspberry Pi. Milldown is a macOS app; if the conversion needs to happen on a build agent, pandoc is the answer and this is not a close call.
- It gives you control over the Markdown dialect. pandoc will emit GitHub-flavoured, CommonMark or strict Markdown on demand, with switches for how tables, footnotes and raw HTML are written. Milldown emits one sensible dialect aimed at feeding language models. If your target parser is fussy, that control matters.
Using both, concretely
The common workflow is Milldown inbound, pandoc outbound. Milldown reads the formats pandoc cannot — above all PDFs and scans — and pandoc takes the resulting Markdown anywhere you need it to go:
# Milldown: PDF (or scan) -> Markdown, on-device
milldown contract.pdf -o contract.md
# pandoc: Markdown -> whatever you actually have to deliver
pandoc contract.md -o contract.docx
pandoc contract.md --pdf-engine=xelatex -o contract.pdf
Neither tool is trying to do the other’s job. Markdown in the middle is what makes the pairing work.
Try it on your own files
Milldown converts PDFs, Office documents, web pages, and scans into clean Markdown — entirely on your computer. Free for 7 days.
Download for macOSmacOS 14+ · Apple Silicon · $39 one-time after trial (excl. VAT) · no subscription