A native macOS Quick Look extension that renders Markdown as a polished document when you press Space in Finder.
Requires macOS 13 Ventura or newer.
- Automatic light and dark themes
- Headings, emphasis, links, blockquotes, lists, task lists, and tables
- Fenced code blocks with language labels
- YAML front matter
- Local images referenced from the Markdown file
- No network access and no analytics
This installation path does not require an Apple Developer account. It builds and ad-hoc signs the app locally on your Mac. You need macOS 13 or newer, Git, and Xcode from the Mac App Store.
git clone https://github.com/dciccale/MarkdownQuickLook.git
cd MarkdownQuickLook
./scripts/install-local.shThe script installs the app in ~/Applications and launches it once. Enable the
extension under System Settings → General → Login Items & Extensions → Quick
Look. Run the script again after pulling updates; it keeps the previous app as
a timestamped backup.
Homebrew casks install prebuilt applications; they do not replace Apple's Developer ID signing and notarization. Consequently, this project does not currently distribute a cask or downloadable binary.
Open MarkdownQuickLook.xcodeproj in Xcode and run the MarkdownQuickLook scheme, or build from Terminal:
xcodebuild -project MarkdownQuickLook.xcodeproj \
-scheme MarkdownQuickLook \
-configuration Release \
-derivedDataPath DerivedData buildCopy DerivedData/Build/Products/Release/Markdown Quick Look.app to /Applications, launch it once, and enable the extension under System Settings > General > Login Items & Extensions > Quick Look.
Run the renderer smoke test with:
swiftc MarkdownQuickLook/Shared/MarkdownRenderer.swift Tests/RendererSmoke.swift \
-o DerivedData/renderer-smoke && DerivedData/renderer-smokeMarkdown is rendered locally inside the Quick Look extension. Remote images are not loaded. Raw HTML in Markdown is displayed as text rather than executed.
Maintainers need an Apple Developer ID Application certificate and a
notarytool keychain profile. Create the profile once with xcrun notarytool store-credentials, then package a universal, signed, and notarized release:
NOTARY_PROFILE=markdown-quick-look TEAM_ID=YOUR_TEAM_ID \
scripts/package-release.sh 1.0.0Create a matching v1.0.0 Git tag and attach the generated ZIP from
build/release/ to the GitHub release. See CONTRIBUTING.md
for development checks and CHANGELOG.md for notable changes.