MarkDownEditor is a Markdown viewer and editor for Windows 10 and 11. Set it as the default app for .md files and they open in a rendered view from Explorer. It is available as an installer or a portable ZIP and does not require an account or collect telemetry.
한국어 · English · 日本語 · 简体中文 · 繁體中文 · Español · Français · Deutsch · Русский · Português (Brasil)
I built MarkDownEditor because opening a Markdown file on Windows often meant starting a full code editor or using a browser extension. This app is meant to behave more like Notepad: double-click a file to read it, then press Ctrl+E if you need to edit it.
- The installer adds Start menu and Open With entries for the current user.
- The portable package keeps its settings and cache beside the executable when that folder is writable. It falls back to
%TEMP%\MarkDownEditorfor read-only locations. - Rendering and editing happen locally. The only routine network request is an anonymous check for new GitHub releases.
- The project is released under the MIT license.
Reading
- Double-click to open — set it as the default
.mdhandler and Explorer does the rest. - One window, many tabs — open twenty files and you get twenty tabs, not twenty windows. Tabs reorder by drag & drop and cycle with
Ctrl+Tab. - Drag & drop — drop
.md/.txtfiles onto the window to open them as tabs. - GitHub-style rendering — headings, tables, task lists, blockquotes, and code, styled to match what you see on GitHub.
- Syntax highlighting — fenced blocks with a language tag (
```cs,```bash) get colored. Bundled offline, theme-aware. - Mermaid diagrams — the same
```mermaidsyntax GitHub and GitLab use: flowcharts, sequence, gantt, state. Bundled offline, theme-aware. - Table-of-contents sidebar — toggled with
☰, with scroll-spy highlighting of the section you are reading. - Document links —
.mdopens in a new tab, web links in your browser, folders in Explorer, andpdf/docx/xlsx/hwpin their default apps. Cross-document anchors (doc.md#section) are supported. - Back / Forward — toolbar
←→,Alt+←/Alt+→, or mouse buttons 4 and 5. Scroll position is remembered per document. - Local images — relative and absolute image paths (
) resolve automatically. Click any image to view it full-screen. - Keyboard-first — scroll with
PageUp/PageDown/ arrows /Home/Endthe moment the app launches, no click needed. - Korean encoding detection — BOM-less CP949 / EUC-KR files open correctly alongside UTF-8.
Writing
- Edit ↔ Preview in one keystroke —
Ctrl+E, with scroll position synchronized between the two modes. - Formatting bar — buttons for bold, italic, strikethrough, headings, lists, quotes, code, links, tables, and dividers. Changes remain undoable with
Ctrl+Z. - Find and replace —
Ctrl+Fworks in both preview (all matches highlighted) and edit mode;Ctrl+Hreplaces, with case sensitivity and Replace All. - Paste screenshots —
Ctrl+Van image while editing and it is saved into animages/folder next to the document, with the link inserted for you. - Export to PDF — one button, or
Ctrl+P, turns the rendered preview into a PDF. - Auto-reload on external change — if your IDE or another editor saves the open file, the tab refreshes automatically. Your unsaved edits are never silently overwritten.
- Auto-backup and crash recovery — unsaved changes are snapshotted every 30 seconds and offered back to you after an unexpected shutdown.
- Session restore — launch without a file and your previous tabs come back. Recent documents are one click away under
🕘.
Comfort
- Dark and light themes — including the Windows title bar. Remembered across runs.
- 10 UI languages — 한국어, English, 日本語, 简体中文, 繁體中文, Español, Français, Deutsch, Русский, Português (Brasil). Follows your OS language by default; switch anytime from
🌐. - Compact chrome — tabs and tools live in a custom title bar, Notepad-style.
- Document zoom —
Ctrl+Wheelchanges preview and editor text without enlarging the app chrome. Click the percentage or pressCtrl+0to reset; the level is remembered across runs. - Shortcut reference — click the keyboard icon or press
Ctrl+/to see the main shortcuts without leaving the document. - Per-tab position — scroll position and editor caret position are restored when you switch tabs.
- In-app updates — a red dot appears next to the version when a new release is available. Choose Update to download and install the matching package.
| Document preview | Language and version menu |
|---|---|
![]() |
![]() |
Both packages are for Windows 10 version 1809 or newer / Windows 11, x64. Neither requires administrator rights.
| Package | Best for | Approximate download | Runtime and data |
|---|---|---|---|
| Windows installer | Normal daily use | 45 MB | Installs per-user, uses automatically serviced Evergreen WebView2, adds Start menu and Open With entries. Data is under %LOCALAPPDATA%\MarkDownEditor. Internet is needed only if WebView2 is not installed; Setup fails clearly if the prerequisite cannot be installed. |
| Portable ZIP | USB, offline and no-install use | 325 MB | Includes a fixed WebView2 runtime. Data stays in WebView2Data/ beside the app when writable. |
All releases · Latest release notes · Full changelog
Extract the folder anywhere you can write to: C:\Tools\MarkDownEditor, your Desktop, a USB stick — it does not matter. Then run MarkDownEditor.exe.
The folder holds MarkDownEditor.exe plus web/ (the UI), Runtime/ (the bundled WebView2), and WebView2Data/ (cache). Keep them together and you can move, copy or carry the whole thing anywhere.
The blue SmartScreen dialog on first run is expected. The executable is not code-signed, so Windows shows "Windows protected your PC". Click More info → Run anyway. It only appears once. If you would rather build it yourself, see the separate development guide.
Once this is set, double-clicking any Markdown file in Explorer opens it rendered, instantly.
- Right-click any
.mdfile in Explorer - Open with → Choose another app
- Select MarkDownEditor — the installer registers it automatically; for the portable package, use Choose an app on your PC and select
MarkDownEditor.exe - Tick Always use this app to open .md files, then OK
The same works for .markdown and .txt if you want them handled too.
On startup the app anonymously checks GitHub Releases and puts a red dot next to the version when a newer build exists. Click the version → Update. The selected asset's URL, size, SHA-256 digest, structure and version are verified before the app closes. Portable copies replace their payload atomically; installed copies run the next per-user installer. Settings and session data are preserved.
- Installed edition: use Settings → Apps → Installed apps → MarkDownEditor → Uninstall. Program files, shortcuts and MarkDownEditor's own Open With registrations are removed; user data under
%LOCALAPPDATA%\MarkDownEditoris preserved for safe reinstall or can be deleted manually. - Portable edition: delete its folder. If it ever ran from a read-only location, also remove
%TEMP%\MarkDownEditorto erase fallback settings and cache.
| Key | Action |
|---|---|
Ctrl+O |
Open (multi-select supported) |
Ctrl+N |
New document tab |
Ctrl+S |
Save |
Ctrl+P |
Export as PDF |
Ctrl+E |
Toggle edit / preview |
Ctrl+F |
Find — works in preview and edit mode |
Ctrl+H |
Find and replace (edit mode) |
Enter / Shift+Enter |
Next / previous match |
Esc |
Close the find bar |
Ctrl+B / Ctrl+I |
Bold / italic (edit mode, toggles) |
Ctrl+K |
Insert link — the address part is pre-selected |
Tab / Shift+Tab |
Indent / outdent, multi-line aware |
Ctrl+Tab / Ctrl+Shift+Tab |
Next / previous tab |
Ctrl+W |
Close tab |
Alt+← / Alt+→ |
Back / forward between documents |
Ctrl+Wheel / Ctrl++ / Ctrl+- |
Document zoom (remembered across runs) |
Ctrl+0 |
Reset document zoom to 100% |
Ctrl+/ |
View keyboard shortcuts |
Tag a fenced block mermaid and the bundled renderer displays it offline using the current theme. See the Mermaid documentation for supported syntax.
```mermaid
flowchart LR
A["Draft"] --> B["Review"]
B --> C["Publish"]
```The fenced-block format is also understood by GitHub and GitLab. A syntax error is shown in that block without stopping the rest of the document from rendering.
- Your documents and settings never leave your machine. All rendering, editing, and exporting is local.
- During app use, network access is limited to the auto-update check: an anonymous GitHub Releases request and a release download only when you start an update. On first installation, Setup may also download Microsoft's WebView2 Runtime if Windows does not already have it. No document content, analytics, or identifiers are sent.
- The installed edition stores theme and language preferences, session recovery data, recent-document paths, and WebView2 cache under
%LOCALAPPDATA%\MarkDownEditor. The portable edition stores them inWebView2Data/beside the executable, with%TEMP%\MarkDownEditoras a read-only fallback. - The preview removes executable content and does not load remote images automatically. Local images remain on your machine.
Bug reports and feature requests are welcome on GitHub Issues. You can also click the version label next to the title inside the app — the bug report form arrives pre-filled with your version.
MIT — see LICENSE. Bundled third-party components are listed in THIRD-PARTY-NOTICES.md.

