Markdown, rendered right in your terminal

A fast, themeable viewer with syntax highlighting, flexible layout, rich links and live file monitoring.

mdv README.md
mdv
 
 Fast, themeable Markdown viewer for the terminal

 Features
  
  - Terminal-first rendering
  - Rich theming: `nord` `gruvbox` `tokyonight`
  - Live monitoring with `--monitor`
  
 Preset  │ Wrap 
─────────┼──────
 reader  │ word 
 compact │ char 
  
    fn main() { println!("hello, mdv"); }

Made for reading

Precise rendering inside ANSI-capable terminals, tuned to your workspace.

Rich theming

Built-in themes, separate code palettes and on-the-fly overrides for UI and syntax colors. Add your own YAML theme and make it yours.

nord
gruvbox
tokyonight
catppuccin

$ mdv --monitor notes.md

notes.md
# A work in progress
Save a thought. Keep reading.

edit → save → refreshed view

Live monitoring

Edit in one pane, read in another. --monitor refreshes the rendered view when the source file changes.

Layout under control

Set width, wrapping, heading layout and table behavior. Choose clickable links, inline URLs or a reference table at the end.

--cols100--wrapword--heading-layoutlevel--link-styleinlinetable--table-wrapfit

Everything you need

Small tool. Plenty of possibilities.

Syntax highlighting

Highlighted code blocks with a separate palette, optional line numbers and language icons.

Reusable presets

Start with reader, compact, pretty or showcase. Save your own combination of settings in YAML.

Built-in pager

Search, select and copy text. Jump to a source line or open the file in your editor.

Document browser

Find Markdown files interactively. Browse a directory while respecting hidden files and Git ignore rules.

Start anywhere

Use --from to begin at a section, or --reverse to read the document from the end.

Script friendly

Read stdin, export HTML, control color output and share configuration across your machines.

Install

Pick your flavor.

cargo install mdv

Requires Rust 1.95 or newer and Cargo. Works on Windows, macOS and Linux.

Prefer a ready-made binary? Download a release ↗

Usage

Open a file, follow changes while you write, or read Markdown from another command.

# Render a Markdown file

mdv README.md

# Refresh the view whenever the file changes

mdv --monitor README.md

# Browse Markdown files in the current directory

mdv -i

# Read Markdown from another command

cat notes.md | mdv

# Apply a built-in preset

mdv --preset reader README.md

FAQ

Quick answers.

Which terminals work?

Use a terminal with ANSI color support. A Nerd Font is needed only for features that display Nerd Font icons.

How do I change the theme?

Pass --theme nord for a single run, or set theme in your configuration file. Create a configuration with mdv --init-config.

Can I read from stdin?

Yes. Pipe Markdown with cat file.md | mdv, or use mdv - to read standard input explicitly.

Is mdv open source?

Yes. mdv is written in Rust, released under the MIT license and developed on GitHub.

Your Markdown. Your terminal.

Install in one command and start reading Markdown in your terminal.

cargo install mdv
View Docs