Open a Markdown file. That's the whole app.

A free, offline reader for Mac, iPad, iPhone — and for your browser. No account, no subscription, no network permission.

MIT LICENCE
NO NETWORK ENTITLEMENT
NO ACCOUNT
NO PURCHASES
README.md100 %
Offline by construction
What is bundled
Grammars
Diagrams & maths
Themes
Syntax palettes
Reading tools
Export
Licence

Offline by construction

Syntax grammars, both diagram engines, KaTeX and the fonts are compiled into the binary. The app has no network entitlement, and the build fails if one appears.

ResourceWhere it livesRequests
Grammarsbinary0
Fontsbinary0
Remote imagesonly if allowed0
SWIFTCopy
let theme = "sepia"let width = 72let doc = Renderer(theme, width) .render(source)
Nothing is fetched, so a README renders identically on a plane.
Works offline — no network permission at all
Everything free: 9 themes, every font, export
Open source, MIT
Never writes to your files

Markdown is now generated faster than anyone can read it. README files, docs, LLM output — you open them in an editor that wants a workspace, or in a viewer that shows a spinner when the Wi-Fi drops, or in a reader that charges for a dark theme.

Mdown opens the file and renders it. That is the entire product. No workspace, no account, no purchase, and no network permission — so the same README looks the same on a plane as it does at your desk.

OFFLINE

It cannot go offline, because it was never online

Mdown ships without the network permission — this isn't a promise about data collection, it's the absence of the capability. Every one of the 192 syntax grammars, both diagram engines and all the fonts live inside the binary, so nothing is ever fetched.

bundled.md

Diagrams & maths, drawn locally

file saved
re-read
render
keep place

Figure 1 — a Mermaid flowchart, rendered locally

KaTeX is compiled in as well, so display and inline maths are set without a request:

e + 1 = 0(1)

Both diagram engines and KaTeX ship inside the binary. Turning off the Wi-Fi changes nothing on this page.

FREE

Nine themes, every font, the column width — all free

Nine built-in themes, serif or sans or rounded body text, four monospaced faces for code, and a separate palette for syntax if you want the code to look different from the page. Column width, line height and margins are yours to set — in a category that sells dark mode as an upgrade.

GITHUB
Themes

Nine themes recolour the page and the code separately, and every one of them is included.

let t = "sepia"let w = 72
Same bytes, same set type.
GITHUB DARK
Themes

Nine themes recolour the page and the code separately, and every one of them is included.

let t = "sepia"let w = 72
Same bytes, same set type.
SEPIA
Themes

Nine themes recolour the page and the code separately, and every one of them is included.

let t = "sepia"let w = 72
Same bytes, same set type.
One document · three of the nine themes · no upgradeGitHub · GitHub Dark · Sepia — swipe
LIVE

Save in your editor. Mdown is already showing it.

Save the file in VS Code, Cursor or Zed and Mdown re-reads it immediately, keeping your place, your selection and your search. Press ⌘E to hand the file back to the editor — Mdown never writes to it.

⌘ESpace
READING

Built for reading, not for editing

Find in the rendered document with a real match counter, not a search of the raw source. A contents panel with the actual heading hierarchy, a word count and a reading time, and your position remembered per file — it survives a change of font or width, because the anchor is the block, not the pixel.

CONTENTS15
Offline by construction
What is bundled
Grammars
Diagrams & maths
Themes
Syntax palettes
grammar3 of 17
Every grammar is compiled into the binary, and a missing grammar is the only case where a block falls back to plain monospace.
1,284 words·6 min62 %

Detail at 2× · contents, match counter, status bar

Markdown now appears faster than anyone can read it. Mdown just opens it.

Try it here — click a theme, drag the width, press Space for the source.

README.mdGitHub

Offline by construction

Syntax grammars, both diagram engines, KaTeX and the fonts are compiled into the binary. The app has no network entitlement, and the build fails if one appears.

ResourceWhere it livesRequests
Grammarsbinary0
Fontsbinary0
Remote imagesonly if allowed0
SWIFTCopy
1let theme = "sepia"
2let width = 72
3let doc = Renderer(theme, width)
4 .render(source)
5// No fetch, no cache, no fallback path.
A reader that cannot reach the network cannot leak, stall or upsell.
192 grammars bundled
39 interface languages
1,284 words·6 min100 %
THEME
GitHub · 9 themes, all included
COLUMN WIDTH
≈ 68 characters per line · Medium
SOURCE
SPACE

Everything you just touched is free, offline and in the app.

EVERYWHERE

The same reader everywhere you meet Markdown

Universal for Mac, iPad and iPhone; on macOS, pressing Space on a .md file in the Finder draws it with the same renderer without launching the app. The browser extension renders .md on any site and in local files with the same nine themes — so a raw GitHub link stops being a wall of plain text.

CONTENTS 15Offline by constructionWhat is bundledGrammarsDiagrams & mathsThemesSyntax palettesReading tools
Offline by construction

Syntax grammars, both diagram engines, KaTeX and the fonts are compiled into the binary. The app has no network entitlement, and the build fails if one appears.

ResourceWhere it livesRequests
Grammarsbinary0
Fontsbinary0
let theme = "sepia"let width = 72let doc = Renderer(theme, width)
A reader that cannot reach the network cannot leak, stall or upsell.
README.md·1,284 words·6 min100 %
MAC · APP + QUICK LOOK
README.mdAa
CONTENTS 15Offline by constructionWhat is bundledGrammarsDiagrams & mathsThemesSyntax palettes
Offline by construction

Syntax grammars, both diagram engines, KaTeX and the fonts are compiled into the binary. The app has no network entitlement, and the build fails if one appears.

ResourceWhereReq
Grammarsbinary0
Fontsbinary0
let theme = "sepia"let width = 72
A reader that cannot reach the network cannot leak, stall or upsell.
☑ 192 grammars bundled☑ 39 interface languages
Themes

Nine themes recolour the page and the code separately: serif, sans or rounded body text, four monospaced faces for code, and a separate palette for syntax.

Reading tools

Find in the rendered document with a real match counter, a contents panel with the actual heading hierarchy, a word count and a reading time, and your position remembered per file.

1,284 words·6 min62 %
IPAD
README.md
Offline by construction

Syntax grammars, both diagram engines, KaTeX and the fonts are compiled into the binary. The app has no network entitlement, and the build fails if one appears.

ResourceReq
Grammars0
Fonts0
let theme = "sepia"let width = 72
A reader that cannot reach the network cannot leak, stall or upsell.
☑ 192 grammars bundled☑ 39 interface languages
Themes

Nine themes recolour the page and the code separately: serif, sans or rounded body text, four monospaced faces for code, and a separate palette for syntax.

Reading tools

Find in the rendered document with a real match counter, a contents panel with the actual heading hierarchy, a word count and a reading time, and your position remembered per file.

1,284 words62 %
IPHONE
README.mdfile:///Users/…/README.md
Offline by construction

Syntax grammars, both diagram engines, KaTeX and the fonts are compiled into the binary. The app has no network entitlement, and the build fails if one appears.

ResourceWhere it livesRequests
Grammarsbinary0
Fontsbinary0
let theme = "sepia"let width = 72let doc = Renderer(theme, width)
A reader that cannot reach the network cannot leak, stall or upsell.
BROWSER · EXTENSION

Windows and Android: we're exploring them. Nothing promised, nothing dated.

How it works

# 01

Install

Free on the Mac App Store, or add the extension to your browser. No account, no sign-in, nothing to configure.

# 02

Open a file

Double-click any .md, or press Space on it in the Finder. It opens as fast as it opens, because nothing is fetched.

# 03

Keep it open

Park it on the second monitor beside your editor. Save, and the view updates without moving your place.

Open source — and what Mdown doesn't do

Mdown is open source under the MIT licence. The reason the promises above are checkable is that you can read the code that keeps them — the build fails if the network entitlement ever appears.

MIT LICENCE

The source travels with the licence; the repository is public on GitHub.

CI GATE

The build fails if the network entitlement ever appears in the app.

82 CORE TESTS

The parsing, TOC, search and scroll-anchor engines are covered by the test suite that gates every release.

A product of ZeroSix Studio.

It does not edit your files.
It does not sync, and there is no account.
It has no analytics, no ads, no in-app purchases, no telemetry.
It does not show a how-to document on launch.
It does not load remote images unless you allow them.

Questions

Yes, and it cannot do otherwise. The app is built without the network entitlement, and the build fails if anyone adds it. Syntax highlighting, diagrams, maths and fonts are all bundled, so a README renders identically on a plane.

Stop reading Markdown in a plain-text window.

Free for Mac, iPad and iPhone, free for your browser, open source, offline. Nothing to sign up for.

QR code that opens Mdown on the App StoreScan for the App Store