English · 繁體中文 · 简体中文 · 日本語 · 한국어
A modern, native macOS Markdown editor for Apple Silicon — the spiritual successor to the unmaintained MacDown.
Built with SwiftUI + TextKit + WKWebView. Everything runs offline — the syntax, math, and diagram engines are vendored, no CDN. MIT licensed.
brew install --cask maxmilian/tap/markoutOnce installed, open any file from the terminal:
markout path/to/file.md⬇ Download the latest release — or build from source.
- Open the downloaded
Markout-*.dmgand drag Markout into your Applications folder. - First launch only: right-click Markout.app → Open → Open.
Markout is ad-hoc signed but not notarized by Apple, so macOS shows a Gatekeeper warning the first time. Right-click → Open tells macOS to trust it. If double-clicking still refuses to open it, clear the quarantine flag once in Terminal:
xattr -cr /Applications/Markout.appRequires macOS 14 or later (Apple Silicon recommended).
Markout is built for people who still want a fast, native Markdown editor on macOS: open a file, write in plain text, see the rendered result immediately, and export without sending the document to a hosted service.
It focuses on:
- Native macOS behavior instead of a web-app shell
- Offline rendering for Markdown, code highlighting, math, and diagrams
- A familiar split editor / preview workflow
- A small, understandable Swift codebase that is easy to improve
Editing
- Split editor + live preview with a 150 ms debounced render
- Markdown syntax highlighting with switchable editor color themes
- Automatic list continuation, image paste/drop (saved beside the document)
- Find & replace, optional line-number gutter, soft wrap toggle
- Formatting toolbar and Format menu (bold ⌘B, italic ⌘I, link ⌘K, headings, quote, list) — all undoable
Preview
- GitHub-Flavored Markdown via cmark-gfm
- Syntax-highlighted code (highlight.js)
- TeX math (KaTeX) — inline
$…$and display$$…$$ - Diagrams (Mermaid)
- Editor ↔ preview scroll sync
- Switchable preview themes + your own custom CSS
- Light/dark mode that follows the system
Output & editing aids
- Export to standalone HTML (CSS inlined) or PDF (matches the live preview)
- Table of contents (insert into the document or browse in a sidebar)
- YAML front matter parsing
- Live word / character / reading-time count
Preferences (⌘,) — editor font size, editor theme, soft wrap, line numbers, preview theme + custom CSS, word-count visibility.
- macOS 14 or later
- Apple Silicon Mac recommended
- Xcode
- XcodeGen
brew install xcodegen
xcodegen generate
xcodebuild -project Markout.xcodeproj -scheme Markout -destination 'platform=macOS' buildRun the tests:
xcodebuild test -project Markout.xcodeproj -scheme Markout -destination 'platform=macOS'See CLAUDE.md for architecture notes and docs/superpowers/ for the design specs and implementation plans.
Sources/Markout/
├── App/ # SwiftUI app shell and document actions
├── Document/ # Markdown document model, front matter, pasted assets
├── Editor/ # TextKit editor, syntax highlighting, formatting helpers
├── Export/ # HTML and PDF export
├── Preview/ # WKWebView preview and scroll sync
├── Render/ # Markdown rendering, HTML template, preview themes
└── Settings/ # Preferences, editor themes, appearance resolution
Vendored preview assets live in Resources/PreviewAssets/, and tests live in Tests/MarkoutTests/.
The four-phase roadmap is complete:
- ✅ P1 — Core MVP: split editor + live preview, GFM rendering, syntax highlighting, open/save, dark mode.
- ✅ P2 — Rich content: code highlighting, KaTeX math, Mermaid diagrams, scroll sync, preview themes.
- ✅ P3 — Output & editing: export HTML/PDF, TOC, front matter, image paste, find & replace.
- ✅ P4 — Polish: Preferences, editor themes, word count, formatting toolbar.
This README is available in:
Translations should preserve the same technical meaning as the English README. If a feature changes, update the English README first, then update the translations in the same pull request when practical.
Contributions are welcome: bug fixes, editor improvements, rendering fixes, export polish, documentation, tests, and translations.
Before opening a pull request:
- Keep changes focused and consistent with the existing SwiftUI / TextKit / WKWebView architecture.
- Run
xcodegen generateifproject.ymlchanged. - Run
xcodebuild test -project Markout.xcodeproj -scheme Markout -destination 'platform=macOS'. - Update README or localized README files if the user-facing behavior changed.
See CONTRIBUTING.md for the full contribution guide.
Markout owes a debt to MacDown, the Markdown editor I relied on for years. MacDown is no longer maintained, so Markout is a fresh, fully native rebuild for modern Apple Silicon macOS — carrying that same fast, plain-text, offline spirit forward. Thank you to the MacDown authors.
Released under the MIT License. © 2026 maxmilian
