0.3s
cold start to window
100+fps
scrolling a 5 MB doc
1.7MB
installer size
0
web engines inside
For humans
- Multi-project — keep several projects open, switch with ⌘1…⌘9. Projects answer “where am I”.
- Built for reading — remembers where you stopped, ⌘F find, ⌘⇧O outline, reading history on ⌘[ ⌘].
- Find anything — ⌘P fuzzy-finds files by name; ⌘⇧F searches names and contents across every project, streaming results.
- CJK-tuned typesetting — line height, punctuation compression, and mixed-script spacing are measured, not guessed.
- Export — ⌘⇧E turns the current document into a tall PNG or a paged PDF; page-break hints in the document become real page breaks.
- Quiet — no accounts, no plugin store. One anonymous ping a day (a date and a version number, nothing else; off in Settings → Privacy) so we know anyone's out there. A tool shouldn't be louder than its content.
Day to day
- Single-file mode — double-click a lone file and both sidebars fold away: just read. The folder isn't turned into a project; your project list stays clean.
- File management — ⌘N new file, new folder, rename, move to Trash — all in the file tree's ··· and right-click menus.
- Open in Terminal — one click opens a shell right at a deeply nested folder; auto-detects Ghostty → iTerm → Terminal.app.
- Reads a lot — code highlighting, CSV/TSV as tables, RTF, images, PDF, srt/vtt subtitles; Office files get a page that points to the default app.
- One-click updates — hit “Download update” on the banner: the DMG downloads in-app, mounts itself, and you drag MuM into Applications.
- HTML in Markdown —
<small>,<mark>, super/subscripts render semantically; the tags themselves stay out of sight.
For agents
- Windowless rendering — the same hand-built typesetting engine (CJK spacing, code highlighting, reading themes), straight to PNG / PDF from the CLI.
$ mum render README.md --png cover.png rendered README.md → cover.png (768 KB) $ mum outline README.md --json [ { "level": 1, "location": 0, "title": "MuM 渲染自检" }, { "level": 2, "location": 52, "title": "一、标题层级" } ]
outline / search / check emit stable JSON with classified exit codes (0/1/2/3/4) — agents never parse prose.