Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MDViewer

A minimal macOS Markdown viewer. No editor, no bloat — just clean rendering with curated reading themes.

macOS Swift License Size Memory

Features

  • Secure GitHub-flavored rendering via marked.js and DOMPurify
  • Private local images — optional read-only folder access for relative PNG, JPEG, GIF, and WebP images
  • Curated themes — GitHub, Solarized, Sepia, Dracula, Monokai, and Nord palettes
  • Automatic appearance — System, Light, or Dark mode with separate preferred light and dark themes
  • Window-scoped zoom — Cmd+/Cmd- affects only the active window and becomes the default for new windows
  • Reload — Cmd+R to refresh after external edits
  • Sibling navigation — move through Markdown files in the same folder by filename
  • Native file handling — Open, Recent Files, drag & drop
  • About 1.1 MB total — no Electron, package manager, or external runtime

Performance

Metric Value
App size ~1.1 MB
Download (DMG) ~610 KB
Cold start < 50 ms
Memory < 100 MB

Install

Download the latest signed and notarized .dmg from Releases or build from source:

brew install xcodegen
xcodegen generate
xcodebuild -scheme MDViewer -configuration Release build

Need editing too?

MDViewer+ adds a native Markdown editor, live split preview, scroll sync, syntax highlighting, formatting shortcuts, and printing while keeping the same lightweight macOS approach. See the MDViewer+ website.

Keyboard Shortcuts

Choose preferred palettes in MDViewer > Settings. System mode follows the current macOS appearance and switches between those preferences. Sepia is a light palette selected in Settings; the existing mode shortcuts remain unchanged.

Choose View > Refresh Sibling Navigation… to discover files added to the folder. If macOS restricts folder enumeration, the same command requests read-only folder access. Opening a document never prompts solely for navigation, and Reload also refreshes sibling availability.

Action Shortcut
Reload Cmd R
Previous Markdown File Cmd Option Left Arrow
Next Markdown File Cmd Option Right Arrow
Zoom In Cmd +
Zoom Out Cmd -
Actual Size Cmd 0
System Appearance Cmd Shift 0
Light Mode Cmd Shift 1
Dark Mode Cmd Shift 2

Reading Themes

Light themes Dark themes
GitHub Light GitHub Dark
Solarized Light Solarized Dark
Sepia Dracula
Monokai
Nord

Themes use built-in trusted palettes and apply without reloading the document or changing its scroll position or zoom.

Dependencies

Library Version License Purpose
marked 18.0.9 MIT Markdown → HTML parsing
DOMPurify 3.4.12 Apache-2.0 OR MPL-2.0 HTML sanitization

No Swift package dependencies or third-party native frameworks. Official browser distributions and their license notices are bundled with the app; no package manager is used at runtime.

Security and local images

MDViewer is a read-only App Sandbox application. Markdown HTML is sanitized, renderer networking is blocked by Content Security Policy, remote images are not loaded, and only http, https, and mailto links open externally. Same-page fragment links remain in the preview; relative file links are intentionally not opened.

When a document contains a supported relative raster image, MDViewer asks for read-only access to the document’s folder. The app stores an app-scoped security bookmark so access can be restored. Its custom WebKit resource loader rejects traversal, symlink escapes, SVG, unsupported or mismatched file types, and anything outside the authorized folder.

License

MIT

About

Minimal macOS Markdown viewer with Dark Mode

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages