A native desktop applicaion for reading Markdown files, built entirely on the JavaScript/TypeScript ecosystem using Electron as the desktop runtime.
markdown-reader is to Markdown what Adobe Acrobat Reader is to PDF: a dedicated, native, first-class desktop viewer for .md files.
Markdown is the most widely used plain-text writing format in the world. Developers, writers, and teams produce millions of .md files daily. Yet there is no dedicated desktop reader for Markdown that:
| Missing Capability | Current Workaround | Pain Level |
|---|---|---|
| Opens .md files natively on double-click | No default handler — opens as raw text | High |
| Renders beautifully like a document | VS Code preview pane feels like a dev tool | Medium |
| Has a sidebar TOC like a PDF reader | Manual heading scanning | Medium |
| Supports all Markdown features | GitHub renders some, browsers render none | High |
| Works fully offline | Must open a browser manually | High |
| Feels like a reader, not an editor | Every tool adds edit affordances | Medium |
VS Code is an editor. GitHub is a web interface. Obsidian is a note-taking vault. None of them are just a reader — a clean, dedicated app for opening and reading Markdown files.
markdown-reader is a dedicated native desktop Markdown reader:
- Double-click any .md file and it opens in markdown-reader
- Registered as the system default application for .md files on install
- Beautiful readable typography — not a developer tool aesthetic
- Full Markdown support: code, diagrams, math, tables, task lists, callouts
- Auto-generated table of contents sidebar like a PDF reader
- File watching — live reload when the file is edited externally
- Multiple built-in themes
- Fully offline — zero cloud, zero telemetry, zero accounts
- Built entirely on the JS/TS ecosystem — no Rust, no Go, no C++
- Native desktop Markdown reader
- Fully offline-first experience
- GitHub Flavored Markdown (GFM) support
- Live file watching & auto reload
- Multiple built-in themes
- Syntax highlighting with Shiki
- KaTeX math rendering
- Mermaid diagram support
- In-document search
- Sidebar Table of Contents
- File explorer & recent files
- Keyboard shortcuts
- Native OS integration
- Cross-platform builds
- Multi-tab reading
- Mermaid diagram rendering
- Export to HTML
- Export to PDF
- Export to DOCX
- Headings (H1–H6)
- Ordered & unordered lists
- Task lists
- Blockquotes
- Tables
- Horizontal rules
- Inline code
- Fenced code blocks
- Images
- Links
- Footnotes
- Inline HTML
- Mermaid diagrams
- KaTeX math
| Layer | Technology |
|---|---|
| Desktop runtime | Electron |
| Frontend | React |
| Language | TypeScript |
| Build tool | electron-vite |
| Styling | Tailwind CSS |
| Markdown parser | Marked |
| Syntax highlighting | Shiki |
| Math rendering | KaTeX |
| Diagram rendering | Mermaid |
| Testing | Vitest |
| Package manager | pnpm |
markdown-reader/
├── apps/
│ ├── main-processor/
│ ├── preload/
│ └── renderer/
│
├── packages/
│ ├── shared-constants/
│ └── shared-types/
│
├── assets/
├── release/
└── .github/
git clone https://github.com/mindfiredigital/markdown-reader
cd markdown-readerpnpm installgo inside each package and build
pnpm buildpnpm devpnpm devStarts Electron + Vite development environment.
pnpm buildBuilds Electron main, preload, and renderer processes.
pnpm testpnpm test:coveragepnpm lintpnpm typecheckThe Chrome extension can be installed manually from a ZIP file attached to each GitHub Release.
-
Go to the Releases page for this repository.
-
Open the latest release and download
extension-release.zipfrom the release assets. -
Extract or unzip the downloaded file somewhere permanent on your computer.
Choose a location you will keep, such as
Documents/Markdown Reader Extension. Chrome loads unpacked extensions from that folder, so do not delete or move it after installation. -
Open Google Chrome, or another Chromium browser such as Brave, Microsoft Edge, or Opera.
-
Navigate to:
chrome://extensions/ -
Enable Developer mode using the toggle in the top-right corner.
-
Click Load unpacked in the top-left corner.
-
Select the folder where you extracted the ZIP file.
Make sure you select the folder that contains
manifest.json. -
Optional: pin Markdown Reader to your browser toolbar for quick access.
After installation, click the extension icon to open Markdown Reader in a browser tab.
Because this is a manual unpacked extension install, Chrome may occasionally ask you to confirm that you want to keep developer extensions enabled. That is normal for extensions loaded outside the Chrome Web Store. If you downloaded the ZIP from this repository's GitHub Releases page, you can keep using it confidently.
git clone https://github.com/mindfiredigital/markdown-reader
cd markdown-readerpnpm installgo inside each package and build
pnpm buildpnpm build:extensionThis project uses GitHub Actions for CI/CD.
Runs automatically on:
- Pull requests
- Pushes to
main&dev
Checks include:
- Build
- Lint
- Typecheck
- Tests
Production releases are created using Git tags.
Example:
git tag v1.0.0
git push origin v1.0.0This automatically:
- Builds installers
- Creates GitHub Release
- Uploads release artifacts
| Platform | Format |
|---|---|
| Windows | .exe |
| Linux | .AppImage, .deb |
| macOS | .dmg |
| Shortcut | Action |
|---|---|
Ctrl / Cmd + O |
Open File |
Ctrl / Cmd + F |
Search |
Ctrl / Cmd + + |
Zoom In |
Ctrl / Cmd + - |
Zoom Out |
Ctrl / Cmd + 0 |
Reset Zoom |
Ctrl / Cmd + T |
Switch Theme |
Cmd/Ctrl+Shift+O |
Open folder |
Cmd/Ctrl+W |
Close current tab |
Ctrl+ [ |
Toggle TOC sidebar |
Ctrl + \ |
Backslash Toggle file browser |
Ctrl+Tab |
Next tab |
Ctrl+Shift+Tab |
Previous tab |
- GitHub Light
- GitHub Dark
- Dracula
- Nord
- Notion
- Minimal
ISC License
Mindfire Digital