Lucid Reader vs Markdown Preview Enhanced: An Honest Comparison

Lucid Reader vs Markdown Preview Enhanced, compared on size, features and install base. We make one of them, so here is where ours loses.

Luis Martinez
Luis Martinez ·
Lucid Reader vs Markdown Preview Enhanced: An Honest Comparison

Disclosure first

We make Lucid Reader. It is given away free from this shop. That is a conflict of interest, so treat the opinions here accordingly and check the numbers yourself. Everything below was measured against Markdown Preview Enhanced 0.8.30 and Lucid Reader 0.2.0 in August 2026, by reading both codebases and both manifests rather than the marketing copy.

The short answer

These two extensions barely compete. One is a document processing pipeline. The other is a reading surface.

  • Choose Markdown Preview Enhanced if you need math, diagrams, or export to PDF, Pandoc or slides. It has 10.1 million installs, nine years of development, and it installs from the Extensions view in one click. This is the right answer for most people.
  • Choose Lucid Reader if you read long Markdown documents for extended stretches and want control over line length, focus mode, and reading palettes. It is 59 KB with zero dependencies, but it is version 0.2.0 and is not on the Marketplace yet, so installing and updating it is manual.
  • Choose both if you read and write. They use different keybindings and different custom editor types, so they coexist without conflict.

If you install the wrong one for your job, you will be annoyed, and the annoyance will not be the extension’s fault.

What is the difference between Markdown Preview Enhanced and Lucid Reader?

Markdown Preview Enhanced (Marketplace, source, docs) has been in development since June 2017. It renders your Markdown and then keeps going: math typesetting, seven or eight diagram languages, executable code blocks, PDF and eBook and Pandoc export, reveal.js presentations, a wiki-link graph view with backlinks. It is closer to R Markdown than to a preview pane. The heavy lifting lives in a separate library called crossnote, which the extension wraps.

Lucid Reader (product page, source) does one thing. It puts your Markdown into a single column at a controllable measure and gives you tools for holding your place in a long document: focus mode, a reading ruler, an auto-scroll teleprompter, a progress readout with time remaining. It renders Markdown only as a means to that end. It has no export, no math, and no diagrams.

Both open as a real VS Code editor tab through the custom editor API, so tab groups, Ctrl+P and split panes behave normally in either.

How do they compare on the numbers?

Markdown Preview EnhancedLucid Reader
Version measured0.8.300.2.0
First releasedJune 2017July 2026
Marketplace installs10,102,422Not published yet
Marketplace rating4.5 from 143 ratingsNone
GitHub stars2,047Not tracked
Open issues1,429n/a
LicenceNCSAMIT
Packaged size18 MB59 KB
Unpacked size43.7 MB across 234 files192 KB across 13 files
Runtime dependencies5 direct, but crossnote pulls in 80 more including Puppeteer, Mermaid, KaTeX, Monaco, React and jQueryZero
Commands2621
Settings7464
Minimum VS Code1.701.85
UI languages101

Two of those rows deserve context rather than a scoreboard reading.

The size gap is real but it is a consequence, not sloppiness. Mermaid, KaTeX and a headless Chrome driver are large because rendering diagrams, typesetting math and exporting PDFs are large problems. Lucid is 59 KB because it declined to solve any of them.

The 1,429 open issues look alarming next to a project with none. They are mostly a function of ten million users and nine years of history. A project with a hundred users and three weeks of history has a clean tracker for reasons that are not to its credit.

What does Markdown Preview Enhanced do better?

It is finished software. Nine years, four named contributors, 10 million installs, a documentation site in ten languages, and a release from this month. Lucid Reader is version 0.2.0, has one author, and its first commit was on 31 July 2026.

You can actually install it. This is the most important practical difference and it deserves to be blunt. MPE is one search away in the Extensions view and it auto-updates. Lucid Reader is not on the VS Code Marketplace at all as of this writing. The listing does not exist. You install it by downloading a .vsix and running code --install-extension, and you update it by doing that again, manually, forever, until it ships. If that sounds tedious, it is, and it is a fair reason to stop reading here.

Math and diagrams. KaTeX or MathJax, Mermaid, PlantUML, Graphviz, Vega, WaveDrom, D2 and TikZ. Lucid Reader has none of these. A document with a $$...$$ block or a ```mermaid fence will show you the source text where MPE shows you the rendered thing. For technical notes, papers or architecture docs, this alone settles the question.

Export. PDF, HTML, PNG, Pandoc, eBook, and reveal.js presentations. Lucid Reader exports nothing at all. There is no “print this” story.

Executable code chunks. Run a code block and capture its output inline, R Markdown style. Sensibly, this is off by default behind enableScriptExecution.

Bidirectional scroll sync. Scroll the editor, the preview follows, and vice versa. Lucid syncs one way only: e jumps the editor to the paragraph you are reading. Scrolling the source does not move the reader.

Raw HTML renders. MPE sanitises with DOMPurify and renders the result. Lucid escapes everything, then restores an allowlist of fifteen inert tags with all attributes stripped, so a README with <div align="center"> or <img> badge rows shows those tags as literal text. That is a deliberate choice about what to run inside a scripted webview, and it is also going to look broken on a lot of real-world READMEs.

It runs on vscode.dev. MPE ships a browser entry point. Lucid Reader is desktop only.

It is extensible. customizeCss, extendParser and customizePreviewHtmlHead let you reach in and change the rendering. Lucid has no extension surface.

What does Lucid Reader do better?

Typography is adjustable at the keyboard. Measure, font size, line height, letter spacing, word spacing, paragraph spacing, first-line indent, hyphenation, smart quotes, numeral style, drop caps, widow prevention, hanging punctuation. Twenty-two of its sixty-four settings are typographic. Line length in particular is bound to [ and ] and measured in ch, so it tracks font size instead of drifting.

MPE is not devoid of this. It ships 17 preview themes, some of them explicitly reading-flavoured like medium.css and newsprint.css, and customizeCss will let you set a column width and a body font. The difference is that in MPE this is a Less file you write and maintain, and in Lucid it is two keystrokes that persist to your settings. If you want to adjust the measure once and never think about it again, MPE is fine. If you want to adjust it per document because this one is dense, Lucid is built for that and MPE is not.

Reading aids that MPE has no equivalent for. Focus mode dims everything except the current paragraph, sentence or line, and can follow your scroll position, your mouse, or only the j and k keys. A reading ruler in four styles. Bionic reading. An auto-scroll teleprompter with speed control. Words remaining and estimated time based on your configured words per minute. None of these exist in MPE in any form.

Reading palettes decoupled from your editor theme. Seventeen of them, ordered light to dark, each checked to clear WCAG AA for body text, with a picker that previews on the live document without writing to settings.json until you press Enter. MPE has 17 preview themes too and its previewColorScheme can follow the system or the editor, so this is a narrower win than it first looks. The specific thing Lucid does that MPE does not is guarantee a contrast floor and let you drive the whole set from one key.

It is small and it starts fast. 59 KB, zero runtime dependencies, roughly 2,900 lines of TypeScript and JavaScript plus 1,700 lines of CSS. There is no bundler and no framework. If you audit what you install, you can read the whole thing in an afternoon. You cannot do that with 43 MB and 80 transitive dependencies.

A tighter privacy surface, with one caveat. Lucid makes no telemetry calls and loads no CDN assets for its own runtime, and it declares itself safe in untrusted workspaces. The caveat: its webview CSP permits img-src https: and font-src https:, so remote images referenced by your document will still be fetched. Any claim that it makes no network requests at all is overstated, including the one on our own product page, which we are fixing.

MPE’s own privacy posture is genuinely good and its README is careful about it. But its surface is larger by construction: MathJax can load from a CDN, PlantUML can point at a server, Kroki and WebSequenceDiagrams are remote by definition, and the image uploaders talk to imgur, sm.ms or qiniu. All of it is opt-in or configurable, and none of it is hidden. It is simply more moving parts to know about.

Where do they overlap?

It would be convenient for us to claim MPE ignores reading comfort. It does not. It has a zen mode that is on by default, a sidebar table of contents, an image lightbox, preview zoom, and a colour scheme that can follow your editor. If your bar is “a clean pane with a sane font and a TOC,” MPE clears it and you do not need anything else.

The gap opens only when you want to change the reading conditions while you read: narrow the column for a dense passage, dim everything but the sentence you are on, or run a teleprompter through a long document. That is a real need for some people and no need at all for others.

Which one should you install?

Install Markdown Preview Enhanced if you write technical documents, need math or diagrams, export to PDF or slides, work in vscode.dev, want something maintained by more than one person, or simply want to install from the Extensions view and never think about it again. This covers most people.

Install Lucid Reader if you read long-form Markdown for extended stretches, care about line length and focus aids, want a small auditable extension, and can tolerate a manual .vsix install and a version number starting with a zero.

Install both if you read and write. They are not mutually exclusive. They register different custom editor view types and different keybindings, so Ctrl+Shift+V gets you MPE’s preview and Ctrl+K R gets you Lucid’s reading view, and neither knows the other exists.

The honest summary

Markdown Preview Enhanced is the better piece of software by almost every measure that can be counted: maturity, breadth, install base, contributor count, availability. Lucid Reader is not competing with it and would lose if it tried.

What Lucid does is occupy a gap MPE was never aimed at. MPE answers “what does this compile to.” Lucid answers “let me read this without my eyes giving up on paragraph forty.” If you have never felt the second question, MPE is the correct answer and this comparison was academic. If you have, Lucid is worth the manual install, and it is free either way.

Lucid Reader is MIT licensed and free to download here. There is an optional pay-what-you-want donation that buys nothing extra. Markdown Preview Enhanced is free under the NCSA licence and its author takes GitHub Sponsors, which he has earned rather more than we have.

Frequently asked questions

Can Lucid Reader render Mermaid diagrams or LaTeX math? No. Neither is supported in any form. A ```mermaid fence renders as a code block and a $$...$$ block renders as literal text. Markdown Preview Enhanced handles both, along with PlantUML, Graphviz, Vega, WaveDrom, D2 and TikZ.

Can Lucid Reader export to PDF? No. It has no export of any kind. Markdown Preview Enhanced exports to PDF, HTML, PNG, Pandoc, eBook and reveal.js.

Is Lucid Reader on the VS Code Marketplace? Not as of August 2026. You install it by downloading the .vsix from its product page and running code --install-extension lucid-reader.vsix, and you update it the same way. There is no auto-update until the listing goes live.

Can I run both extensions at once? Yes. They register different custom editor view types and different keybindings. Ctrl+Shift+V opens the MPE preview and Ctrl+K R opens the Lucid reading view. Neither is aware of the other.

Is Markdown Preview Enhanced too heavy? It is 18 MB packaged and 43.7 MB unpacked across 234 files, against 59 KB and 13 files for Lucid Reader. In practice that matters for install footprint and cold start, not for typing latency. If you use even one of its diagram or export features, the size is buying you something.

Which is better for accessibility? Lucid Reader has more deliberate provisions: 17 palettes checked against WCAG AA for body text, adjustable measure and line height, an OpenDyslexic font preset, and focus modes. Note that it bundles no font files, so the dyslexia and hyperlegible presets only differ if you have those fonts installed. Bionic reading is offered but the published evidence for it is thin and contested, so treat it as a preference rather than a proven gain.

Does either extension send my documents anywhere? Neither has telemetry. Lucid Reader loads no remote assets for its own runtime, though remote images and fonts in your document are still fetched. Markdown Preview Enhanced is careful about this too, but has more optional network surface: MathJax can load from a CDN, PlantUML and Kroki can point at servers, and the image uploaders talk to imgur, sm.ms or qiniu. All of it is opt-in and documented.


Measured on 23 August 2026 against Markdown Preview Enhanced 0.8.30 and Lucid Reader 0.2.0. Install counts, ratings and repository statistics were read from the VS Code Marketplace and the GitHub API on that date, and the size, dependency and settings figures come from the packaged .vsix of each extension.