Minimal, native macOS markdown viewer.
Open `.md` files from Finder, preview with GitHub-styled rendering, toggle raw source, auto-reload on file changes.
- macOS file association — double-click
.mdin Finder opens in Markfly; right-click > Open With works - Rendered preview — GFM tables, task lists, strikethrough, highlighted code blocks, Mermaid diagrams, and LaTeX math
- Raw source toggle — switch between rendered HTML and plain markdown
- Auto-reload — watcher re-reads file on disk changes
- Dark / light theme — follows system preference, toggle via toolbar
- Zoom controls — pinch via Cmd±/Cmd+0, or toolbar buttons
- Document search — Cmd+F, highlight matches, move with Enter / Shift+Enter
- Drag & drop — drop
.mdfiles onto the window; original file path stays available after restart - Recent files — macOS Open Recent menu and system recents
- Download
Markfly-<version>-arm64.pkgfrom Releases - Double-click the
.pkgfile - Follow the standard macOS installer (requires admin password)
- Launch Markfly from
/Applications
Markfly checks GitHub Releases when it starts. Use Help → Check for Updates… to check manually. Update status appears at the bottom of the sidebar; Release Info opens the GitHub release page separately.
When an update is available, choose Download Update, then Open Installer after the package is verified. Confirm installation in macOS Installer and reopen Markfly yourself. Markfly does not silently replace or restart the app. This manual flow does not require an Apple Developer account; because releases are not Developer ID signed, macOS may show a security warning or require approval before opening the installer/app. Fully automatic in-app replacement would require Developer ID-signed releases and a separate updater design.
- Download
Markfly-<version>-arm64.dmgfrom Releases - Double-click the
.dmgfile - Drag
Markfly.appinto/Applications - Launch Markfly from
/Applications
# install
npm install
# dev (Vite hot-reload + Electron)
npm run electron:dev
# build production
npm run electron:buildOutput in release/ — .dmg, .pkg, and .zip.
Release naming and publishing steps: docs/RELEASING.md.
Dependency audit results and remaining findings: docs/DEPENDENCY-AUDIT.md.
| Layer | Tech |
|---|---|
| Desktop shell | Electron |
| UI | Vue 3 + TypeScript |
| Build | Vite |
| CSS | Tailwind CSS v4 |
| Markdown renderer | marked v18 |
| Syntax highlight | highlight.js |
| Diagrams | Mermaid |
| Math | KaTeX |
| Theme stylesheet | github-markdown-css |
| Packaging | electron-builder |
| File watcher | chokidar |

