0.1 preview · macOS only for now · unsigned build (right-click → Open the first time)
README.md — mdz
← → mdzREADME.md install github changelog

m d z.

A markdown viewer. v0.1 preview · macOS · MIT · free

mdz reads markdown. That is the whole product. Point it at a folder of .md files, click around. Wikilinks resolve. Math renders. Code highlights. The filesystem watcher keeps the page in sync while you edit elsewhere. Five built-in themes. Native window chrome. One binary, no install.

It is not an editor. It does not sync. It does not have AI. It opens markdown and gets out of the way.

macOS · Apple Silicon
download .dmg
— from GitHub Releases · 4.8 MB
Source · cargo
git clone && cargo tauri build
— Rust 1.85+ · macOS / Linux build

Why it exists

Most note tools want to be a platform. They sync, they collaborate, they have a Discord, they sell a subscription. mdz wants to render your markdown. The whole binary is 7.7 MB; the .dmg is 4.8 MB. There is no telemetry. There is no account. The "settings" are a five-line config file. Open the folder, read the notes.

Software, like dim sum, should be ordered in small portions and not by the menu price.
— a friend

The numbers

0.07 ms
parse · 10k words
2 ms
render · 10k words
5.3 ms
FTS5 search · 10k docs
7.7 MB
single binary

Measured on Apple Silicon via perf-baseline.json in the repo. Cold-start and end-to-end render numbers (real-app first-paint via WebDriver) are tracked but not yet on macOS — tauri-driver doesn't support macOS upstream yet.

What's in the box

01

Reading view, not editor

Open the folder, click a file, read. Edit in your editor of choice; mdz watches the disk and re-renders.

02

Wikilinks, native

Type [[Page]] in your notes; mdz resolves it. Brackets stay visible, on purpose. Cached lowercased-stem index — batched IPC; under 1 µs per resolve at 10k files.

03

Split view + ⌘P

Open two notes side by side. Fuzzy file picker for the rest. Keyboard-first, mouse-optional.

04

Five themes

Light, Dark, Sepia, High-Contrast, Solarized. No "auto-tinted gradient mode." No telemetry-fed dynamic theming. Just five.

05

Math, Mermaid, code

KaTeX for math. Mermaid for diagrams. highlight.js for code. Lazy-loaded only when a doc needs them. Nothing hits the network.

06

FTS5 search

SQLite full-text search across the whole vault. Indexed on first open, incrementally on watch. Plain-text queries; ~5 ms across 10k docs.

Themes

README.md
Light
[[wikilink]]
README.md
Dark
[[wikilink]]
README.md
Sepia
[[wikilink]]
README.md
Hi-Contrast
[[wikilink]]
README.md
Solarized
[[wikilink]]

Install

macOS · Apple Silicon

# one-liner: download the latest .dmg, mount it, copy mdz.app to /Applications
curl -fsSL https://mdz.sh/install | sh

# or: download manually
# https://github.com/CharlesWong/mdz/releases/latest

The 0.1 preview is unsigned. The first time you launch, macOS Gatekeeper will block it: right-click the app → Open instead of double-clicking, then confirm. Or in System Settings → Privacy & Security, click "Open Anyway" after the first attempt. Notarization is on the roadmap.

Linux · Windows

Build from source for now (the Rust crate compiles on both via cargo tauri build). Pre-built artifacts are planned but not in 0.1 — see the roadmap.

From source

git clone https://github.com/CharlesWong/mdz
cd mdz && cargo tauri build
open target/release/bundle/macos/mdz.app

Configuration

Optional. Lives at ~/Library/Application Support/sh.mdz.mdz/settings.toml on macOS. The defaults are good. The whole file:

theme        = "light"     # light | dark | sepia | high-contrast | solarized
sidebar      = true        # toggle with ⌘B
wide         = false       # toggle with ⌘.
recent_count = 10          # recent folders & files

Keyboard

ActionMac
Open folder⌘O
Find file⌘P
Toggle sidebar⌘B
Split view⌘\
Toggle wide column⌘.
Wide on / off⌘+ / ⌘−
Back / forward (focused pane)⌘[ ⌘]
New window⌘N

Roadmap

Changelog


mdz is free and open-source under the MIT license. Source: github.com/CharlesWong/mdz. Bundled libraries (KaTeX MIT, highlight.js BSD-3, Mermaid MIT) — see licenses. Privacy: there is none to talk about; the app makes no network calls.