Quickmd
Lightning-fast native macOS Markdown viewer. Open .md files instantly with beautiful rendering, syntax highlighting, tables, task lists, and dark mode. Built with SwiftUI. Available for free on the Mac App Store.
Install / Use
/learn @b451c/QuickmdREADME
QuickMD
<div align="center">Lightning-fast native macOS Markdown viewer
Features • Installation • Usage • Tech Stack • Support
</div>Overview
QuickMD is the fastest, most elegant Markdown viewer for macOS. Double-click any .md file and instantly see beautifully rendered content. No Electron bloat, no loading screens—just pure native macOS performance.
Perfect for developers, writers, students, and anyone who works with Markdown daily. Think of it as the Preview.app equivalent for Markdown files.
Features
⚡ Blazing Fast
- Opens in milliseconds—no loading screens
- Native SwiftUI app—lightweight
- Instant rendering of even large documents
📝 Complete Markdown Support
- ✅ Headers, bold, italic, strikethrough
- ✅ Tables with proper column alignment
- ✅ Code blocks with syntax highlighting
- ✅ LaTeX math — display (
$$...$$) and inline ($...$) with TeX-quality rendering - ✅ Mermaid diagrams — flowcharts, sequence, pie, class diagrams and more
- ✅ Footnotes —
[^id]references with definitions at end of document - ✅ Task lists with checkboxes (
- [ ]/- [x]) - ✅ Nested lists (ordered and unordered)
- ✅ Images (local and remote URLs)
- ✅ Links (inline, reference-style, autolinks)
- ✅ Nested blockquotes with level indicators
- ✅ Horizontal rules
🔍 Navigation & Search
- Find in document (
⌘F) with match count and per-word navigation - Word-level highlighting across all block types (text, code, tables, blockquotes)
- Table of Contents sidebar (
⌘⇧T) — auto-generated from headings - Copy entire document (
⌘⇧C) or individual sections (hover heading → copy icon) - Export to PDF (
⌘⇧E) and Print (⌘P)
🎨 Custom Themes
- 7 built-in themes: Auto, Solarized Light/Dark, Dracula, GitHub, Gruvbox Dark, Nord
- Settings panel (
⌘,) with color previews - Theme persists across app restarts
💻 Developer-Friendly
- Syntax highlighting for 10+ languages (Swift, Python, JavaScript, Go, Rust, etc.)
- Perfect for README files and documentation
- Handles AI-generated markdown perfectly
- Dark mode that follows system settings (or choose a fixed theme)
🔒 Privacy Focused
- No analytics, no tracking
- Works completely offline (except for remote images)
- Your files stay on your device
- Open source—see exactly what the code does
Screenshots
<div align="center"> <table> <tr> <td><img src="QuickMD/Screenshots/screenshot-1.png" width="400" alt="Dark Mode"></td> <td><img src="QuickMD/Screenshots/screenshot-2.png" width="400" alt="Light Mode"></td> </tr> <tr> <td align="center"><em>Dark Mode</em></td> <td align="center"><em>Light Mode</em></td> </tr> <tr> <td><img src="QuickMD/Screenshots/screenshot-3.png" width="400" alt="Syntax Highlighting"></td> <td><img src="QuickMD/Screenshots/screenshot-6.png" width="400" alt="Theme Picker (Dracula)"></td> </tr> <tr> <td align="center"><em>Syntax Highlighting</em></td> <td align="center"><em>Theme Picker (Dracula)</em></td> </tr> </table> </div> <details> <summary><strong>More screenshots</strong></summary>| Tables & Lists | File Tree | Table of Contents | |:-:|:-:|:-:| | <img src="QuickMD/Screenshots/screenshot-4.png" width="280"> | <img src="QuickMD/Screenshots/screenshot-5.png" width="280"> | <img src="QuickMD/Screenshots/screenshot-7.png" width="280"> |
</details>Installation
Mac App Store (Recommended)
Available on the Mac App Store.
Homebrew
brew tap b451c/quickmd
brew install --cask quickmd
Build from Source
# Clone the repository
git clone https://github.com/b451c/quickmd.git
cd quickmd/QuickMD
# Open in Xcode
open QuickMD.xcodeproj
# Build and run (⌘R)
Requirements:
- macOS 13.0 (Ventura) or later
- Xcode 15.0+
- Swift 5.9+
Usage
Set as Default Markdown Viewer
- Right-click any
.mdfile in Finder - Select Get Info (⌘I)
- Under Open with, select QuickMD
- Click Change All...
Now all your Markdown files will open instantly with QuickMD!
Keyboard Shortcuts
| Shortcut | Action |
|----------|--------|
| ⌘O | Open file |
| ⌘W | Close window |
| ⌘F | Find in document |
| ⌘G / ⇧⌘G | Next / previous match |
| ⌘⇧C | Copy Markdown source |
| ⌘⇧T | Toggle Table of Contents |
| ⌘⇧E | Export to PDF |
| ⌘P | Print |
| ⌘, | Settings (theme picker) |
Tech Stack
- Language: Swift 5.9
- Framework: SwiftUI
- Minimum OS: macOS 13.0 (Ventura)
- Architecture: Native Apple Silicon + Intel
Key Components
- Custom Markdown parser with block-level parsing and reference link pre-pass
- Regex-based syntax highlighting for code blocks
- LaTeX math rendering via vendored SwiftMath (Core Graphics, no network)
- Mermaid diagram rendering via bundled Mermaid.js (offline, no CDN)
- 7 color themes with
@AppStoragepersistence AsyncImagefor remote image rendering- Security-Scoped Bookmarks for local image access in sandbox
- Per-block PDF export with multi-page pagination
- Zero external package dependencies — everything is vendored or bundled
Project Structure
QuickMD/
├── QuickMD/
│ ├── QuickMDApp.swift # App entry point + menu commands
│ ├── MarkdownDocument.swift # FileDocument model
│ ├── MarkdownView.swift # Main document view + support buttons
│ ├── MarkdownBlock.swift # Block type enum
│ ├── MarkdownBlockParser.swift # Line-by-line block parser
│ ├── MarkdownRenderer.swift # Inline markdown → AttributedString
│ ├── MarkdownTheme.swift # 7 color themes, regex patterns
│ ├── MarkdownExport.swift # PDF export + print support
│ ├── TipJarManager.swift # StoreKit 2 IAP (App Store only)
│ ├── TipJarView.swift # Tip Jar UI (App Store only)
│ ├── SandboxAccessManager.swift # Security-scoped bookmarks
│ ├── SwiftMath/ # Vendored math rendering (Core Graphics)
│ ├── Resources/
│ │ ├── mermaid.min.js # Bundled Mermaid.js
│ │ └── mermaid-template.html # HTML template for diagrams
│ ├── Views/
│ │ ├── CodeBlockView.swift # Syntax-highlighted code blocks
│ │ ├── MathBlockView.swift # LaTeX display math ($$...$$)
│ │ ├── InlineMathTextView.swift # Inline math ($...$)
│ │ ├── MermaidBlockView.swift # Mermaid diagrams (WKWebView)
│ │ ├── TableBlockView.swift # Table rendering with alignment
│ │ ├── ImageBlockView.swift # Local + remote image rendering
│ │ ├── BlockquoteView.swift # Nested blockquotes
│ │ ├── SearchBar.swift # Find in document (⌘F)
│ │ ├── TableOfContentsView.swift # ToC sidebar (⌘⇧T)
│ │ └── ThemePickerView.swift # Theme settings (⌘,)
│ └── Assets.xcassets/ # App icon + assets
├── CHANGELOG.md # Version history
└── demo.md # Demo file for testing
Development
Running the App
# Open in Xcode
open QuickMD/QuickMD.xcodeproj
# Run with ⌘R
Building for Release
GitHub version (default — donation links, no Tip Jar):
xcodebuild -project QuickMD/QuickMD.xcodeproj -scheme QuickMD -configuration Release archive
Or simply build in Xcode with ⌘B.
App Store version (Tip Jar IAP):
xcodebuild -project QuickMD/QuickMD.xcodeproj -scheme QuickMD -configuration Release \
OTHER_SWIFT_FLAGS="-DAPPSTORE" archive
The APPSTORE flag enables Tip Jar IAP and disables the GitHub-only update checker.
Support
Get Help
Support Development
QuickMD is free and open source. If you find it useful, consider supporting development:
<a href="https://buymeacoffee.com/bsroczynskh" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 40px !important;width: 145px !important;" ></a> <a href="https://ko-fi.com/quickmd" target="_blank"><img src="https://storage.ko-fi.com/cdn/kofi2.png?v=6" alt="Support on Ko-fi" style="height: 40px !important;width: 145px !important;" ></a>
Roadmap
- [x] Export to PDF (
⌘⇧E) and Print (⌘P) - [x] Syntax highlighting for code blocks
- [x] Find & search within document (
⌘F) - [x] Nested blockquotes with level indicators
- [x] Table of Contents sidebar (
⌘⇧T) - [x] Reference-style links (
[text][id]) - [x] Custom color themes (7 built-in)
- [x] Copy to clipboard (whole file + sections)
- [x] LaTeX math rendering (
$$...$$) - [x] Mermaid diagram rendering (flowcharts, sequence, pie, class, etc.)
- [x] Security-Scoped Bookmarks for local images
- [x] Persistent Table of Contents state
- [x] Inline math (
$...$) - [x] Footnotes (
[^id]references with definitions) - [x] Homebrew Cask formula
- [ ] Mermaid diagram PDF export (full fidelity)
- [ ] GFM alerts/admonitions (NOTE, WARNING, TIP)
- [ ] Definition lists
Have a feature request? Open an issue!
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Privacy
QuickMD respect
