macOS SwiftUI app
  • Swift 48.5%
  • Rust 43.4%
  • Typst 5.7%
  • Python 1.3%
  • Shell 0.6%
  • Other 0.5%
Find a file
2026-11-01 14:52:20 +08:00
.claude-plugin Add the marker MCP server and skills for Claude Code and Codex 2026-10-28 13:19:37 +08:00
Config Add the editor app: live preview, layout modes and PDF export 2026-10-27 22:54:41 +08:00
Design Add the app icon: a typeset page with a serif M on navy 2026-10-27 23:43:10 +08:00
docs/screenshots Use the full-resolution screenshots 2026-10-28 18:21:17 +08:00
engine Version 0.2.0 2026-10-29 14:11:37 +08:00
Marker Simplify settings and make selection rows fully clickable 2026-11-01 14:52:20 +08:00
Marker.xcodeproj Version 0.2.0 2026-10-29 14:11:37 +08:00
plugin Version 0.2.0 2026-10-29 14:11:37 +08:00
samples Add cross-references and numbered equations 2026-10-27 23:01:44 +08:00
scripts Font aliases, a Base style, one name per setting 2026-10-29 14:00:02 +08:00
Tests Protect unsaved notes and improve formatting workflows 2026-11-01 14:39:51 +08:00
.gitignore Add Rust engine: Markdown to Typst conversion and PDF compile 2026-10-27 22:41:00 +08:00
CLAUDE.md Simplify settings and make selection rows fully clickable 2026-11-01 14:52:20 +08:00
LICENSE Prepare the first release: MIT license, notices, README, clean builds 2026-10-28 18:14:04 +08:00
README.md Add a word count under the editor 2026-10-29 14:10:00 +08:00
THIRD-PARTY-NOTICES.txt Prepare the first release: MIT license, notices, README, clean builds 2026-10-28 18:14:04 +08:00

Marker

A macOS editor for Markdown and Typst that exports LaTeX-quality PDFs, made for short university reports in English and Chinese.

Marker: a folder of notes, the Markdown source and a live A4 preview

  • Write Markdown, get a LaTeX article. LaTeX math ($...$, $$...$$), numbered sections, figures and tables that never split across pages, footnotes and code listings, typeset by Typst in Computer Modern. Native Typst notes work too.
  • Cross-references. @fig:period, @tbl:data, @eq:period and @sec:theory become "Figure 1", "Table 1", "Equation (1)" and "Section 2" (图 1, 表 1, 式(1), 第 2 节 in Chinese), pandoc-crossref style.
  • Proper Chinese typesetting. 思源宋体 or Songti body text, Kaiti emphasis, two-character indents, no stray spaces between lines, and Simplified or Traditional detected automatically.
  • A live preview beside the editor, as A4 pages or one endless page, scrolling in step with the editor. Double-click or ⌘-click the preview to jump to the source line.
  • Plain files in folders. Notes are .md and .typ files in iCloud Drive/Marker/Library, shown in a sidebar and saved automatically. Moving a note takes its images along.
  • Word count under the editor: words and Chinese characters (字) of the text a reader sees, without markup, code or math, and pages; select text to count part of it.
  • Styles and fonts. Four built-in styles (Base, LaTeX, Modern, Chinese Academic) and your own as small Typst files with a live sample page. Base follows the fonts you choose in Settings → Fonts; each note can pick a style, fonts and single settings in Note Settings.
  • Works with AI agents. Marker includes an MCP server and skills, so Claude Code or Codex can find, edit, compile and preview your notes with Marker's own engine.

A Chinese report with the Note Settings panel A user style file and its sample page

Install

Download Marker-0.1.0.zip from the releases page, unzip it and move Marker to Applications. It needs macOS 27 or later on a Mac with Apple silicon.

Marker is not notarized by Apple, so macOS blocks the first launch. Either:

  • open System Settings → Privacy & Security, scroll down to the message about Marker, and click Open Anyway, or

  • remove the download quarantine in Terminal:

    xattr -dr com.apple.quarantine /Applications/Marker.app
    

On first launch Marker creates iCloud Drive/Marker (or Documents/Marker without iCloud Drive) with a welcome note. Help → Marker Guide opens it again at any time.

Writing a report

---
title: 单摆周期的测量
subtitle: 大学物理实验报告
author: [张三, 李四]
date: today
---

# 实验原理 {#sec:theory}

$$T = 2\pi\sqrt{l/g}$$ {#eq:period}

由@eq:period可知,周期只与摆长有关,见@fig:period。

![周期随摆长的变化](figures/period.png){#fig:period width=70%}

Table: 测量数据。 {#tbl:data}

| l / m | T / s |
|------:|------:|
| 0.20  | 0.90  |

The Markdown reference lists every extension and front matter key, and samples/ has a complete English and Chinese report.

Styles

Switch the sidebar to Styles to see the built-in styles (read-only, as a starting point) and your own. A style is a Typst file that changes only the settings it lists:

#let settings = (
  extends: "modern",
  fontsize: 12pt,
  margin: 2cm,
  heading-align: center,
)

Notes use a style with style: Lab Report in their header, or the default from Settings → Document Style.

AI agents

Settings → Agents has setup prompts for Claude Code and Codex (CLI and desktop): paste one into the agent and it configures itself to use the MCP server and skills inside the app. The tools let an agent list, search, read, edit, move and trash notes, compile them with line-numbered errors, render pages as images and export PDFs; changes stay inside your library and Styles folders. See plugin/README.md for the details and manual setup.

Building from source

Requires Xcode 27 and a Rust toolchain (cargo in ~/.cargo/bin). Open Marker.xcodeproj and run; the first build compiles Typst and takes a few minutes.

# Engine tests
cd engine && cargo test --release

# A release build of the app
xcodebuild -project Marker.xcodeproj -scheme Marker -configuration Release -destination 'platform=macOS' -derivedDataPath build/release build

CLAUDE.md describes the architecture and the design decisions.

License

Marker is released under the MIT License. It includes Typst, the mitex package and other open-source software, and the fonts New Computer Modern, Libertinus Serif and DejaVu Sans Mono; their licenses are in THIRD-PARTY-NOTICES.txt, which also ships inside the app.