从源码构建需要 Node 22+、Rust stable、pnpm 10+;开发模式占用 1420 端口,残留进程需手动杀掉;macOS 仅提供 Apple Silicon 的 dmg 包
mdhero
vaibhav-kakde-inMIT活跃维护一款轻量原生 Markdown 阅读器兼编辑器,安装包仅约 8MB,支持 macOS、Windows 和 Linux,内置 KaTeX 公式与 Mermaid 图表渲染。
A beautiful, native Markdown viewer and lightweight editor for macOS, Windows and Linux. ~8MB, free, open source.
pnpm install
pnpm tauri devREADME 未说明硬件要求;支持 macOS(Apple Silicon)、Windows(x64/ARM64)、Linux(x64/arm64)
跨平台原生 Markdown 阅读器与轻量编辑器,约 8MB,本地渲染不上传文件
一款轻量原生 Markdown 阅读器兼编辑器,安装包仅约 8MB,支持 macOS、Windows 和 Linux,内置 KaTeX 公式与 Mermaid 图表渲染。
核心能力
- 用 KaTeX 渲染公式、Mermaid 渲染流程图
- highlight.js 支持 25+ 语言语法高亮
- Cmd+E 切换编辑模式,Cmd+S 写回磁盘
- 多标签页、目录侧栏、Cmd+F 搜索与 Vim 键位
- 监听文件变化,VS Code 保存后自动重载
容易踩的坑
- v0.2.10MDHero v0.2.10最新正式版2026-09-13 · 2026-09-13 19:56 UTC
✨ New
- Quick Look on macOS. Select a
.mdfile in Finder and press Space to see it rendered — headings, tables, code highlighting, math and diagrams — instead of raw text. Works without opening MDHero. (#88 — thanks @miszterx; #115, #117) - Line numbers in the raw markdown view, matching the editor, and they stay aligned when you print. (#110, #114 — thanks @anandghegde; #118)
- The table-of-contents sidebar is resizable. Drag its edge, or focus the divider and use the arrow keys; the width is remembered between sessions. (#108 — thanks @dahuangfeng123; #111)
🔒 Security and trust
- The macOS
.dmgis now notarized and stapled. Previous releases were signed but not notarized, so macOS showed a warning on first open and the download could be blocked outright. It now opens cleanly with no Gatekeeper prompt. (#116, #119) - Links to files now open only for an allow-listed set of types — PDFs, common images,
.txt,.heic,.avifand.mp4. Previously a link could hand any path to the operating system's opener. (#112 — thanks https://github.com/feberbo) - Dependencies refreshed. Every critical and high advisory is closed; what remains is low and medium in build-time tooling. (#120)
🐛 Fixes
- Files saved as "UTF-8 with BOM" render correctly. A file from Windows Notepad (and many other tools) lost its first heading — or its whole frontmatter block, which also quietly disabled Marp presentation mode. (#122 — thanks @DrorHarari; #124)
- The raw view's line-number gutter no longer drifts out of alignment when printing. (#118)
Install
- macOS (Apple Silicon): download the
.dmg— this is the first release that opens without a Gatekeeper warning - Windows (x64 or ARM64): the
.msiinstaller or-setup.exe(NSIS) — pick thex64orarm64file for your machine - Linux (x64 or arm64): the
.deb(Debian/Ubuntu),.rpm(Fedora/openSUSE) or.AppImage(any distro)
Existing installs will offer this update in-app.
Quick Look needs one extra step on first use: open MDHero once after installing so macOS registers the extension. If Space still shows raw text, enable MDHero under System Settings → General → Login Items & Extensions → Quick Look.
Full changelog: v0.2.9...v0.2.10
- Quick Look on macOS. Select a
- v0.2.9MDHero v0.2.92026-09-06 · 2026-09-06 18:30 UTC
查看更新说明
✨ New
- Live reload for every open tab. Edit a file in another editor and its tab updates even in the background; the document on screen is only ever repainted for the tab you are looking at. If a file changes on disk while you have unsaved edits in it, your edits are kept, the tab shows ⟳, and Save asks before overwriting. (#97, #106)
- Tabs come back after a restart — same files, same order, same active tab; files that no longer exist are skipped. Off switch in Settings → Behavior. (#72, #102)
- Split mode scrolls in sync. Scroll either the editor or the preview and the other follows; typing keeps both panes on the same section. (#74, #105)
- File › Print with
Cmd+P/Ctrl+P, opening the native print dialog — print to paper or to PDF from the rendered view. (#89, #103) - New document — start an empty markdown file from the home screen or the
+tab and pick its location on first save. (#63, #65) mdhero://links — open local files from other apps via themdhero://open?path=…URI scheme. (#60, #61)- Right-to-left text. Arabic, Hebrew and Persian paragraphs, headings, lists and table cells render in their own direction, and
<div dir="rtl">/<div dir="ltr">wrapper lines are honoured, including the case where a paragraph starts with a Latin word or number. (#64, #66, #95, #104)
🖥️ Platforms
- Linux builds:
.deb,.rpmand.AppImage, x64 and arm64. (#75 — thanks @AghastyGD; #80 — thanks @arfshl) - Windows on ARM (
arm64.msiand-setup.exe). (#79 — thanks @arfshl) - Windows fixes: local images and relative links now resolve on Windows; the Plans list is no longer empty there. (#76, #90 — thanks @hdo-projects, and @tuzumkuru and @Matis777 for the diagnoses)
- Linux menu: the Window menu no longer opens empty. (#98)
🐛 Fixes
- Live reload kept working only for the first tab you opened; switching tabs silently stopped it. (#68, #69 — thanks @feberbo)
- Closing the last tab left the watcher running, so an external edit could paint a closed document over the home screen. (#91 — thanks @hdo-projects)
- File › Close Tab was a dead menu item. (#92 — thanks @hdo-projects)
- Dark theme: every syntax-highlighting token class now has a readable colour. (#67, #87)
- Keyboard hints in the UI say
Ctrlon Windows and Linux instead ofCmd. (#98) - The in-app updater and About dialog point at the current repository. (#98)
🔒 Hardening
- Diagram rendering, the app's Content-Security-Policy and the file read/write paths were tightened after a private security review. No exploit was found against v0.2.8; these close the gaps that made one possible. (#107)
- Local images are now limited to the document's own folder tree, its git checkout, or a folder you pinned. An image referenced from outside that shows as broken until you pin its folder. (#101)
⚙️ Under the hood
- The unit and Rust test suites run in CI on every push and PR (#93 — thanks @hdo-projects), the type check is blocking (#99), and all actions run on Node 24 (#99).
Install
- macOS (Apple Silicon): download the
.dmg - Windows (x64 or ARM64): download the
.msiinstaller or-setup.exe(NSIS) — pick thex64orarm64file for your machine - Linux (x64 or arm64): download the
.deb(Debian/Ubuntu),.rpm(Fedora/openSUSE) or.AppImage(any distro) —amd64/x86_64orarm64/aarch64
Existing macOS and Windows installs will offer this update in-app.
🔏 Code signing
macOS builds are signed with an Apple Developer ID and notarised by Apple. Windows builds are not yet code-signed, so Windows SmartScreen may warn that the publisher is unrecognised, and Microsoft Defender's machine-learning heuristics have flagged the installer as
Trojan:Win32/Wacatac.B!ml. That detection is a false positive: the!mlsuffix denotes a heuristic classifier rather than a match against known malware, and it fires on installers that are unsigned and have little downloa - v0.2.8MDHero v0.2.82026-08-02 · 2026-08-02 18:24 UTC
查看更新说明
✨ New
- View · Split · Edit mode switcher — a centered segmented control replaces the edit button. The new Split mode shows the editor and a live preview side by side. (#19, #59)
- Marp presentation mode — open a
marp: truedocument as a native slideshow with arrow / Space / Home / End navigation and optional pagination. No Marp CLI needed. (#44) - Editor line numbers — a wrap-aware line-number gutter with a current-line highlight; on by default, toggleable in Settings → Editor. (#53)
- Copy Path — right-click a tab to copy its absolute file path. (#50, #51 — thanks @Rmohid)
- Tab-switching shortcuts — native
Ctrl+Tab/Ctrl+PageUp/Ctrl+PageDownon Windows/Linux andCmd+Shift+[/Cmd+Shift+]on macOS. (#39 — thanks @rxwen) - Middle-click a tab to close it. (#46)
🐛 Fixes
- No more silent data loss — MDHero now warns before discarding unsaved changes when closing a tab or quitting the app. (#49, #54)
- Empty markdown files open correctly — an empty
.mdopens straight into the editor instead of bouncing to the home screen. (#52) - Blockquotes no longer get injected
"quotation glyphs. (#45)
Install
- macOS (Apple Silicon): download
MDHero_0.2.8_aarch64.dmg - Windows: download the
.msiinstaller or.exe(NSIS)
- v0.2.7MDHero v0.2.72026-07-07 · 2026-07-07 17:07 UTC
查看更新说明
✨ New
- Find works everywhere —
Cmd+Fnow searches, highlights, and cycles matches in edit and raw views, not just the rendered view (#33, thanks @NaluTripician) - Viewport width toggle — flip between Comfortable and Wide reading widths from the toolbar or Reading Preferences (#38, #41)
- Open local links in-app — click a relative link to another
.mdand it opens in a new tab; non-markdown files hand off to your OS default app (#30) - Home tab & brand refresh — MDHero identity in the toolbar and home hero, unified list rows, a uniform card grid for recents / plans / folders, and grouped toolbar controls (#43)
🐛 Fixes
- Remembers window size & position across launches (#40, reported by @mashakos)
- macOS Window menu — restores window-tiling and fullscreen keyboard shortcuts (#34)
- Local images in markdown now render — relative-path images work, including files outside your home folder (#23, #31, thanks @rxwen)
- Content stays centered when the table-of-contents sidebar is open (#29)
- Smoother vim
j/kscrolling (#25) - Accurate scroll position when switching between rendered, raw, and edit modes (#21)
🙌 Thanks
@NaluTripician, @rxwen, @mashakos — and everyone who filed issues this cycle.
Install
- macOS (Apple Silicon): download
MDHero_0.2.7_aarch64.dmg - Windows: download
MDHero_0.2.7_x64_en-US.msiorMDHero_0.2.7_x64-setup.exe
First launch: on macOS, right-click the app → Open to get past the unsigned-app warning (or run
xattr -cr /Applications/MDHero.app). On Windows, SmartScreen → More info → Run anyway. - Find works everywhere —
- v0.2.6MDHero v0.2.62026-06-08 · 2026-06-08 19:10 UTC
查看更新说明
🚀 MDHero now updates itself
When a new version is out, click Update now in the update banner — MDHero downloads it, verifies the signature, installs, and relaunches. No more hunting for a download link (macOS + Windows).
This is the last update you'll need to install by hand. From 0.2.6 onward, updates are in-app.
✨ Also in this release
- In-app About dialog — cross-platform, replaces the native macOS-only one (#18, thanks @pushkarchoudhari)
- Fix: Settings dialog no longer scrolls the page behind it (#16, thanks @tejasnilangekar111-maker)
Install
- macOS (Apple Silicon): download
MDHero_0.2.6_aarch64.dmg - Windows: download
MDHero_0.2.6_x64_en-US.msiorMDHero_0.2.6_x64-setup.exe
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Download · Website · Discussions
Open local .md files, paste AI-generated markdown, or fetch from any public URL — and read or edit it the way it was meant to be.
Why MDHero
Markdown is where developers, writers, and AI live today — READMEs, Claude Code plans, LLM chat exports, notes, documentation. But opening a .md file in a code editor gives you ugly monospace text. Opening a web-based viewer means uploading your files. GitHub renders it beautifully but only if the file is in a repo.
MDHero is a native app for everything in between. Your files stay local. Rendering is instant. Edit in place when you need to. Works offline. Looks like it belongs on your machine.
Features
Reading
- Beautiful rendering — Apple-inspired typography, light & dark themes
- Syntax highlighting — 25+ languages via highlight.js
- Math & diagrams — KaTeX for equations, Mermaid for flowcharts
- Reader controls — adjust font, size, line height, width
- Zen mode — distraction-free full-screen reading
- Print/Export to PDF — File › Print or Cmd/Ctrl+P opens the native print dialog (print to paper or to PDF), with clean print styles
Editing (v0.2.0)
- Lightweight in-app editor —
Cmd+Eflips any local file into edit mode - Markdown highlighting — headings, emphasis, links, lists, quotes and code are colored as you type, in light and dark (Settings › Editor to turn it off)
- Save with
Cmd+S— writes back to disk; the file watcher knows it was you and skips the reload - Stays where you were — source-line scroll sync keeps your position across viewer ↔ raw ↔ edit
- Dirty indicator —
•in the tab title and toolbar when you have unsaved changes - Per-tab edit state — switch tabs and back; your edits are right where you left them
Navigation
- Multiple tabs — open many files, drag to reorder, Cmd+1–9 to switch
- Tabs on the side — move the tabs into a resizable panel on the left, with a file's folder under its name when another open file has the same name
- Table of Contents — auto-generated sidebar with active heading tracking
- Search (Cmd+F) — with match highlighting
- Vim keys — j/k/gg/G/d/u/[/] for keyboard-first navigation
- Image lightbox — click to zoom, arrow keys for next/prev
Opening Files
- Local files — drag-drop, Cmd+O, "Open With" from Finder
- Pinned folders — quick access to markdown in your favorite directories
- Claude Code Plans — auto-discovers
~/.claude/plans/ - Open URL — fetch from GitHub, Gist, GitLab, Bitbucket, or any public URL
- Paste mode (Cmd+Shift+V) — render LLM output instantly, auto-unescapes
\n - Recent files — pick up where you left off, with reading progress per file
Live
- File watching — edit in VS Code, see updates instantly in MDHero
- Auto-reload — survives atomic saves (VS Code, vim, etc.)
Sharing
- Copy as Rich Text — paste directly into Google Docs, Notion
- Copy as Markdown — raw source
- Print / Export PDF — File › Print, Cmd/Ctrl+P, or the toolbar button; print-friendly output
Screenshots
Syntax Highlighting
25+ languages with automatic detection, copy button, and clean typography.
Math Rendering (KaTeX)
Render LaTeX equations instantly — from inline math to full block equations and matrices.
Mermaid Diagrams
Flowcharts, sequence diagrams, class diagrams, and more — rendered natively.
Zen Mode
Distraction-free full-screen reading. Just you and the document.
Install
macOS (Apple Silicon): Download .dmg from Releases →
Windows (x64 or ARM64): Download .msi or -setup.exe from Releases → — pick the x64 or arm64 file for your machine
Linux (x64 or arm64): Download .deb (Debian/Ubuntu), .rpm (Fedora/openSUSE) or .AppImage (any distro) from Releases → — amd64/x86_64 or arm64/aarch64
Or build from source (see below).
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Cmd+O | Browse files |
Cmd+Shift+V | Paste markdown |
Cmd+T | New tab (home) |
Cmd+W | Close tab (confirms if unsaved edits) |
Cmd+1..9 | Switch to tab N |
Cmd+F | Find in document |
Cmd+E | Toggle edit mode |
Cmd+S | Save edits to disk |
Cmd+U | Toggle raw markdown view |
Cmd+Shift+F | Zen mode |
Cmd+= / Cmd+- | Zoom in / out |
Ctrl + mouse wheel | Zoom in / out (Ctrl on every platform) |
Cmd+0 | Reset zoom |
j / k | Scroll down / up |
gg / G | Jump to top / bottom |
[ / ] | Previous / next heading |
/ | Open search |
Cmd → Ctrl on Windows/Linux.
Development
pnpm install
pnpm tauri dev # Run dev with hot reload
pnpm tauri build # Production build (outputs DMG/MSI)
pnpm check # TypeScript check
Requirements: Node 22+, Rust stable, pnpm 10+.
Port 1420 is used for dev. Kill stale processes with lsof -ti:1420 | xargs kill -9.
Stack
- Tauri v2 — Rust backend, ~11MB binary
- SvelteKit — frontend with Svelte 5 runes
- markdown-it — rendering pipeline
- highlight.js — syntax highlighting
- KaTeX — math rendering
- Mermaid — diagram rendering
- Tailwind CSS v4 — styling
Privacy
MDHero runs entirely on your machine.
- No telemetry. No analytics. No tracking.
- No account required. Use it anonymously.
- Your files never leave your computer. Rendering happens locally.
- Network access is limited to: asking GitHub whether there is a newer release (once per 24h, sending nothing about you; you can turn this off in Settings) and fetching URLs you explicitly paste into the Open URL feature. See SECURITY.md for exactly what each request contains.
Roadmap
Coming next:
- Quick Switcher (Cmd+P fuzzy finder)
- Folder watch (auto-refresh pinned folder contents)
- Export to self-contained HTML
- Presentation mode
- Compare / diff view
Contributing
See CONTRIBUTING.md for setup, guidelines, and how to propose changes.
License
MIT © Vaibhav Kakde