mdreaderfeatures
Reading, search, and editing for Markdown
A reader and side-by-side editor for the Markdown you already have. No import and no new format.
featuresreading
The reading surface
Tuned for long-form reading, with source and preview together when you edit.
Read the guide →- Fixed measure
- Body text on a 70-character column in a serif reading face, with sans headings and monospace code.
- Live outline
- Every heading tracks your scroll position. Built from source headings, so raw HTML can never spoof it.
- In-document links
- Relative links, anchors, and [[wikilinks]] resolve across the workspace; dangling links stay visibly unresolved.
- Big files stay smooth
- Documents past a threshold render with windowed virtualization; scroll position survives even inside one long block.
featuressearch
Search that shows its work
One query, five intents, and provenance on every hit.
Read the guide →- Five intents
- Best (hybrid), Exact (lexical), Semantic, Recent, and Related. Switch with Cmd/Ctrl + 1 through 5.
- Typed filters
- tag:, path:, after:, and linked-to: pass straight to the engine; unknown fields report inline.
- Score you can read
- Hover any hit for the RRF score, each boost, and the per-modality ranks.
- Provenance breadcrumb
- source › file › heading, every segment clickable, landing you on the exact lines.
featuresmarkdown
Full Markdown, rendered by one pipeline
GitHub-Flavored Markdown, math, and diagrams use the same pipeline as the desktop app.
Read the guide →- GFM
- Tables, task lists, strikethrough, autolinks, and footnotes.
- Code
- Syntax highlighting via Shiki with dual light/dark themes.
- Math
- Inline and display math via KaTeX.
- Diagrams
- Fenced mermaid blocks render as diagrams inline.
featureslocal-first
Local-first by construction
Your Markdown is the source of truth; the private index stays in MDReader’s app data directory.
Read the guide →- Explicit writes
- Source Markdown remains unchanged during indexing. The editor writes Markdown only when you explicitly save.
- Private, rebuildable index
- CatDB stores search data and outlines in a per-library SQLite index under the operating system’s app data directory. Delete it and MDReader rebuilds it from your Markdown.
- Local FastEmbed model
- The desktop uses bge-small-en-v1.5 through FastEmbed. The first indexing run may download the model once into FastEmbed’s local cache.
- Hybrid with a clear fallback
- Once the model is ready, hybrid search runs locally. If it cannot load, the library remains readable and text search remains available; indexing and semantic ranking resume when the model loads.
mdreaderwhat it is not
Indexing and search leave source files unchanged; the editor writes only after an explicit save. MDReader does not invent structure that is absent from the text. Results link back to their source file and line range.