Markdown CLI viewer with VI keybindings
Source: Hacker News
mdvi
mdvi is a terminal markdown viewer with Vim‑style navigation.
It renders markdown into a polished full‑screen TUI with fast keyboard navigation, clear typography, and predictable behavior for large files.
Features
- Full‑screen terminal viewer (
crossterm+ratatui) - Vim‑style navigation controls
- High‑quality markdown rendering via
pulldown-cmark
Supported markdown elements:
- headings
- lists and task lists
- blockquotes
- code blocks and inline code
- links, tables, footnotes, emphasis/strong/strikethrough
- Live reload (
r) when the file changes on disk - Start at specific line (
--line) - Works with standard terminal keys (arrows, page up/down, home/end)
Install
Homebrew (tap)
brew tap taf2/tap
brew install mdvi
From source
cargo install --path .
Run without install
cargo run -- README.md
Usage
mdvi [OPTIONS]
Examples
mdvi docs/spec.md
mdvi --line 120 CHANGELOG.md
Navigation
j/Down: scroll down one linek/Up: scroll up one lineCtrl‑d: half‑page downCtrl‑u: half‑page upPageDown: full‑page downPageUp: full‑page upCtrl‑f: full‑page down (Vim‑style)Ctrl‑b: full‑page up (Vim‑style)g/Home: jump to topG/End: jump to bottomr: reload file from disk/: start searchn: next search matchN: previous search match?: toggle help lineq: quit
Why Rust?
Rust is a strong fit for a serious CLI viewer:
- Precise terminal control
- Excellent performance for large files
- Single static binary distribution
- Mature ecosystem for TUI and markdown parsing
Development
cargo test
cargo fmt
cargo clippy -- -D warnings
License
MIT