Remote SSH folders
Add a folder from any VPS. Reader.md rsyncs it read-only into a local cache and shows it like any root — reusing your ~/.ssh config, storing no credentials.
Reader.md renders your local and remote markdown with real Mermaid diagrams, LaTeX math, and syntax highlighting — wrapped in a native Mac window that reads like it shipped with the OS.
The SwiftUI shell hosts a resizable sidebar, the content pane, and a collapsible outline. The markdown itself renders in a bundled WKWebView.
class AppState: ObservableObject { @Published var roots: [RootFolder] }
Add a folder from any VPS. Reader.md rsyncs it read-only into a local cache and shows it like any root — reusing your ~/.ssh config, storing no credentials.
Bundled Mermaid, KaTeX, and highlight.js render diagrams, LaTeX, and code with no network access. The one thing a native view can't do, done right.
Add any number of roots, drag to reorder, and jump anywhere with a ⌘P fuzzy switcher that spans every folder at once.
On macOS 26 the toolbar, sidebar, outline, and palettes read as real Liquid Glass — with an automatic NSVisualEffectView fallback on 13–15.
An FSEvents watcher re-renders the open file with scroll preserved and refreshes the tree the moment anything changes on disk.
Open, filter, find, navigate history, resize the column, and export — all without leaving the keyboard. Full map in the docs.
Point Reader.md at me@vps:/srv/docs and it pulls a read-only mirror into a stable cache — auto-syncing on launch, re-syncing on demand, and keeping a cloud badge with live sync state. Pull-based and one-way: it never writes back.
$ reader remote me@vps:/srv/docsconst html = marked.parse(md); mermaid.run(); // diagrams katex.render(tex, el);
The content pane is a WKWebView driven by bundled marked, Mermaid, KaTeX, and highlight.js — the exact things a native text view can't do. YAML frontmatter renders as a clean key/value table, and everything works fully offline.
# open a file, a folder, or piped markdown
$ reader README.md
$ reader remote me@vps:/srv/docs
$ git diff | reader -MIT-licensed. Requires macOS 13+. Liquid Glass lights up on macOS 26 (Tahoe).
# tap, trust, then install brew tap jnahian/reader.md https://github.com/jnahian/reader.md brew trust --cask jnahian/reader.md/reader.md brew install --cask reader-md # already installed and Gatekeeper still complains? xattr -dr com.apple.quarantine "/Applications/Reader.md.app"
The brew trust step is required before installing from this tap.