A lightweight, fast Markdown viewer with Mermaid diagram support and live reload. Built in Rust.
Developers working with LLMs constantly receive Markdown with code blocks, tables, and Mermaid diagrams. There's no simple mdr file.md command to view it all rendered properly.
mdr offers multiple rendering backends, selectable at runtime:
| Backend | Stack | Strengths |
|---|---|---|
| egui (default) | Pure Rust GPU rendering | Single static binary, fast startup, cross-platform |
| webview | OS native WebView (WebKit/WebView2) | GitHub-quality HTML/CSS rendering, full CSS support |
| tui | Terminal UI (ratatui + crossterm) | Works over SSH, no GUI needed, keyboard-driven |
git clone https://github.com/CleverCloud/mdr.git
cd mdr
cargo install --path .
# egui only (smaller binary, no WebView dependency)
cargo install --path . --no-default-features --features egui-backend
# webview only
cargo install --path . --no-default-features --features webview-backend
# Open with default backend (egui)
mdr README.md
# Open with webview backend
mdr --backend webview README.md
# Open in terminal (TUI)
mdr --backend tui README.md
# Show help
mdr --help
| Key | Action |
|---|---|
q / Esc |
Quit |
j / ↓ |
Scroll down |
k / ↑ |
Scroll up |
Space / PgDn |
Page down |
PgUp |
Page up |
g / Home |
Go to top |
G / End |
Go to bottom |
Tab |
Switch focus between TOC and content |
Enter |
Navigate to selected TOC heading |
Mermaid code fences are rendered as SVG diagrams:
```mermaid
graph TD
A[Input] --> B[Process]
B --> C[Output]
```
Supported diagram types: flowchart, sequence, pie, class, state, ER, gantt.
Note: Diamond/decision nodes (
{text}) are not yet supported by the underlying renderer. Use square brackets as a workaround.
src/
├── main.rs # CLI (clap), backend dispatch
├── core/
│ ├── markdown.rs # GFM parsing (comrak) + CSS
│ ├── mermaid.rs # Mermaid → SVG rendering
│ ├── toc.rs # Heading extraction for TOC
│ └── watcher.rs # File watching (notify, 300ms debounce)
└── backend/
├── egui.rs # egui/eframe backend
├── tui.rs # ratatui/crossterm TUI backend
└── webview.rs # wry/tao WebView backend
Requires Rust 1.75+.
# All backends (default)
cargo build --release
# Run tests
cargo test
# Run clippy
cargo clippy
sudo apt-get install libgtk-3-dev libwebkit2gtk-4.1-dev libxdo-dev libgl1-mesa-dev
Pre-built binaries are available on the Releases page for: - macOS (Apple Silicon + Intel) - Linux (x86_64) - Windows (x86_64)
To create a release, push a version tag:
git tag v0.1.0
git push origin v0.1.0
MIT
Issues and PRs welcome at github.com/CleverCloud/mdr.