I kept hitting the same wall: I have a folder of PDFs, Word files and spreadsheets, and I want them as clean Markdown so I can feed them to an LLM or a RAG pipeline. Every tool I tried either uploaded my documents to someone's server, or gave me Markdown I had to clean up by hand.
So I built Milldown, a native macOS app that does the conversion entirely on your machine. I'm the developer — this is a "here's the thing I made" post, and I'll happily answer anything technical in the comments.
What it actually does
Drop in files, a URL, or a whole folder. Milldown converts them and shows you the Markdown side by side with a rendered preview, so you can check the output before it goes anywhere near your pipeline.
The bits that matter if you're building with this:
- Everything runs locally. Documents are converted entirely on your Mac and are never uploaded. Scanned PDFs and images are OCR'd on-device using Apple's Vision framework — no OCR API keys, no per-page pricing.
- Folder in, Markdown tree out. Drop a folder and it mirrors the entire tree into Markdown with subfolders preserved. Watch folders keep that mirror up to date as new files land.
- RAG chunk export. It exports chunks as Markdown or JSONL, split on headings at roughly 512/1024/2048 tokens, with provenance in the front matter — so when a retrieval result looks wrong you can trace it back to the source document and section.
-
A CLI with full option parity, plus a
milldown://URL scheme, so the same conversion you just did by hand can go in a script or a Shortcut. - Token accounting. Each conversion shows an estimated token saving against the realistic raw alternative (o200k estimate). Some file types show no saving at all, and it tells you that rather than hiding it.
On that last point, I published the benchmark rather than asking you to take a number on faith: a pinned corpus, defined baselines, committed results. Measured there — web pages 72–95% fewer tokens than raw HTML, PDFs 71–84% fewer than attaching the PDF natively. Spreadsheets go the other way: CSV beats a Markdown pipe table by 12–29%, so that's what it recommends for them.
Formats
PDF, Word, PowerPoint, Excel, HTML, CSV, JSON, XML, RSS/Atom, EPUB, ZIP, Jupyter notebooks, Outlook .msg, text/Markdown, JPEG/PNG — plus web pages, Wikipedia articles and YouTube transcripts by URL.
Under the hood conversion is powered by Microsoft's open-source MarkItDown engine (MIT), bundled inside the app. I'm not affiliated with Microsoft — Milldown is the native Mac app around it: the OCR path, folder mirroring, watch folders, chunk export, token accounting and the CLI.
The honest limitations
- Apple Silicon Macs (M1 and later), macOS 14 Sonoma or newer. Intel Macs are not supported.
- No audio or video transcription — YouTube support means existing captions, nothing more.
- It's a desktop app, not a server or a hosted API.
Try it
Free for 7 days with every feature unlocked and no account required. After that it's a $39 perpetual licence for up to 3 Macs, or $249 for a 10-seat team licence — 12 months of updates included, renewals optional, nothing billed automatically, 14-day money-back guarantee.
If you're doing local RAG prep on a Mac, I'd genuinely like to know which provenance fields you keep on your chunks — source path, page, heading path, extraction time — and whether you put them in JSONL metadata, front matter, or both. That's the part I'm least sure I've got right.


Top comments (0)