Most writers haven’t opened an .rtf file since the Bush administration. A specific minority — lawyers e-filing briefs, researchers submitting to old grant portals, anyone whose recipient runs a CMS from 2004 — still needs to. This is for them.
TL;DR — the direct answer in 30 seconds
Markdown to RTF is the process of converting a .md file into a Rich Text Format (.rtf) document — the 1987 Microsoft format that any word processor on earth will read. There are three working methods in 2026:
- Pandoc —
pandoc input.md -o output.rtf. Free, offline, cleanest output. Recommended. - CloudConvert — browser-based, drag a .md file, download .rtf. Best for one-off, no install.
- .docx round-trip — convert to .docx through mdclaudy or Pandoc, then Save As → Rich Text Format in Word. Works when you already have the .docx.
If you only need RTF because someone asked for “a Word file,” send .docx instead — every modern recipient prefers it. If they specifically said “.rtf,” or the upload form only accepts .rtf, this post is for you.
What RTF is, and why anyone still cares
Rich Text Format was Microsoft’s 1987 attempt at a portable formatted-document standard, designed so a file could move between Word and any other text application without losing italics. The format is plain text with markup tags inline — open an .rtf in a text editor and you’ll see things like {\rtf1\ansi\deff0 and {\b bold text}. It’s essentially the markdown of its era: human-readable, application-agnostic, unfashionable.
Microsoft deprecated RTF as the default save format in 2008 and stopped updating the spec in 2014. The reasonable assumption was that .docx and PDF would absorb its use cases. Mostly they did. Three pockets of survival remained:
Legal e-filing
The U.S. federal court system’s PACER and CM/ECF portals accept PDF as the default and RTF as a fallback. Several state court systems still require RTF for specific filing types (proposed orders, supporting briefs in some chambers). Internationally, legal-document interchange in jurisdictions that haven’t standardized on PDF/A often defaults to RTF. If you’re a paralegal converting a brief drafted in markdown, this is your case.
Government and academic intake
Grant portals, FOIA submission systems, and academic journal management software written before 2010 often accept RTF and not much else. The U.S. NIH’s older submission flows, several EU agency intake forms, and a fair number of academic publishers list .rtf as the safe-harbor format. The reason is the same: RTF is the cross-platform format that doesn’t require licensing Microsoft Office to read.
Legacy CMS and intranet boxes
Corporate intranets running ten-year-old SharePoint, university academic portals, hospital documentation systems — the long tail of legacy software that accepts uploaded documents. When the intake field says “Word or RTF,” the developer was hedging against Office license issues a decade ago. The format ask survived the developer.
Outside those contexts, RTF has been replaced by .docx (for editable handoff) and PDF (for final delivery). If your reader has Office 365 or Google Workspace, send .docx. If you don’t know what they have, send PDF. RTF is for the specifically named cases above.
Method 1 — Pandoc (the clean answer)
Pandoc has been converting markdown to RTF since version 1.0. The output is the cleanest of any tool we tested: real RTF with proper paragraph formatting, tables that survive, and headings that map to RTF’s style sheet.
Install
On macOS: brew install pandoc. On Windows: download the installer from pandoc.org/installing.html. On Linux: apt install pandoc or equivalent.
The command
pandoc input.md \ --from=gfm+footnotes+pipe_tables \ --to=rtf \ -o output.rtf
The flags tell Pandoc to read GitHub-flavored markdown with footnote and table extensions and write standard RTF. The output opens in Word, TextEdit, LibreOffice, Google Docs, and every legal-filing portal we’ve tested it against.
Batch a folder of files
for f in *.md; do
pandoc "$f" --to=rtf -o "${f%.md}.rtf"
doneDrop this in your shell. Every .md in the current folder becomes a .rtf. Useful for converting a whole project at once.
Method 2 — CloudConvert (no install)
For a one-off conversion with no command line: CloudConvert handles markdown → RTF in a browser. Drag the .md file onto the page, pick RTF as the output format, download. Free for occasional use; paid above ~25 conversions a day.
The output is decent. Tables survive, basic formatting is preserved, headings work. Math and Mermaid don’t survive, but RTF wouldn’t render them anyway. Code blocks become monospaced paragraphs with no syntax highlighting — again, a format limitation, not a CloudConvert failure.
Other browser-based options:
- Zamzar — same shape, slightly older UI. Email delivery for free tier, irritating.
- Convertio — fast, generous free tier, occasional formatting drift on complex tables.
- Online2PDF — handles RTF among many formats; rough UI, gets the job done.
For confidential documents, skip the online route. Your file uploads to a third-party server. For sensitive material, run Pandoc locally.
RTF survived not because it’s good, but because every program on earth pretends to understand it.
Method 3 — .docx round-trip
If you’re already converting to .docx for other reasons, the cheapest path to RTF is a second hop. Convert markdown to .docx using mdclaudy, Pandoc, or any tool from the methods comparison. Open the .docx in Word. Go to File → Save As, pick Rich Text Format (.rtf), save.
What survives the round-trip: prose, headings, bold and italic, lists, tables, hyperlinks, footnotes. What doesn’t: any modern style that has no RTF equivalent (some advanced numbering schemes, some font-embedding tricks), and any feature added to .docx after RTF was frozen.
Pick this path when you already need the .docx anyway, or when the recipient might accept either. Save the .docx as your master, the .rtf as the deliverable.
What survives across each method
| Feature | Pandoc | CloudConvert | .docx round-trip |
|---|---|---|---|
| Headings | Yes | Yes | Yes |
| Bold / italic | Yes | Yes | Yes |
| Tables | Yes | Yes | Yes |
| Code blocks | Monospace, no highlighting | Monospace | Monospace |
| Footnotes | Yes | Partial | Yes |
| Hyperlinks | Yes | Yes | Yes |
| Math (KaTeX/LaTeX) | No (format limit) | No | No |
| Images | Yes (embedded) | Yes | Yes |
The math row is universal: RTF doesn’t support equations as a first-class type, so no method can preserve them. If you have math, either convert it to an image first (using KaTeX’s HTML-to-PNG renderer or mdclaudy’s preview), or use .docx and let Word’s OOXML math handle it.
The mdclaudy path (when .rtf export ships)
We don’t ship native RTF export today. mdclaudy is focused on .docx and PDF as the two formats that account for ~98% of user requests. RTF is on the roadmap, alongside EPUB and HTML. Until it ships, the honest path is:
- Write the document in mdclaudy.
- Export to .docx using one of the three designed templates.
- Open the .docx in Word, save as .rtf.
Or skip mdclaudy and use Pandoc directly. We’d rather give you the right answer than oversell what we ship today.
Related guides
- Markdown to Word: convert .md to .docx with templates — the main piece, and the natural step before the .rtf round-trip.
- Convert markdown to Word: 5 methods compared — the comprehensive method-by-method walkthrough.
- Markdown to HTML: the developer’s guide — for the other portable-text format.
- Markdown to PDF: the complete guide — for when the recipient accepts PDF instead.
Frequently asked questions
The honest final word
RTF is the format you reach for when the destination system is older than your phone. The conversion itself is easy — Pandoc in one line, CloudConvert in three clicks, .docx round-trip in five. The harder question is whether you actually need .rtf at all. Confirm with the recipient. If they’ll accept .docx or PDF, send those instead — they preserve more and render closer to your intent.
For the specific cases where .rtf is mandatory — court filings, legacy intake portals, that one government grant form — Pandoc is the right tool, and the conversion is a single command. Add it to your shell history once, never think about it again.