v0.11.1

marquee-markdown

TUI markdown reader that renders documents like Claude artifacts

mmd -t docs/demo.md
The reader in motion: the contents pane tracking the scroll, a section folding and unfolding, a search narrowing as it is typed, and the theme picker previewing against the document behind it
The reader in motion: the contents pane tracking the scroll, a section folding and unfolding, a search narrowing as it is typed, and the theme picker previewing against the document behind it
  • Ten themes
  • Eight ports of established colorschemes
  • Rust 1.88 or newer
  • Linux, macOS, Windows

Install

cargo install marquee-markdown
cargo binstall marquee-markdown
brew install SophanaSok/marquee/marquee-markdown

Also on Scoop, Nix, and the release page as prebuilt binaries, .deb and .rpm packages.

What it does

  • Reads markdown properly. Headings become typography rather than hash marks, code blocks become sealed cards, tables get box drawing, and GFM callouts get an icon and a hue.
  • Reads the HTML in a README too. A centered <h1> becomes a heading in the contents pane, badge images become the links they advertise, <br> breaks a line, a <details> block is shown open with its <summary> as the title, and an HTML <ul> or <table> — spans, sections, captions and all — is drawn by the same emitter its markdown spelling is, instead of the tags themselves reaching the page.
  • Math is notation, not punctuation. $E = mc^2$ reads as a code span rather than as a formula wearing its dollar signs. TeX is not typeset — there is no glyph budget for that in a cell grid — but the delimiters go.
  • A contents pane that tracks where you are, with folding — the thing glow has no equivalent of, and the reason this exists.
  • Ten themes, or your own, or your terminal’s own colors.
  • Search inside a document with /, n and N, highlighted in place.
  • A file browser that streams as it walks, with a fuzzy filter.
  • Reads what you point it at: a file, a directory, standard input, a URL, or github.com/owner/repo.
  • Reloads when you save, and e opens your editor at the line on screen.
  • Everything is configurable and every key is rebindable, from one TOML file.
  • Themes are data, so a new palette needs no Rust and no recompile.

A real terminal, not a mock-up

docs/demo.md
# Marquee

A terminal markdown reader that renders documents the way Claude artifacts do.

> [!NOTE]
> Callouts get an icon, a title, and a hue of their own.

## Rendering

Code blocks are sealed containers — a long line wraps *inside* the card
rather than escaping it:

```rust
fn width(text: &str) -> usize {
    text.graphemes(true).map(grapheme_width).sum()
}
```

## Tables

| Construct | Rendered as |
| --- | --- |
| Heading | weight, colour, rhythm |
| Quote | an accent gutter bar |
| Rule | a hairline across the column |

## Navigation

- The contents pane tracks where you are reading
- `/` searches, `n` and `N` step through the hits
- `]` and `[` step through links
mmd -t docs/demo.md
marquee-markdown reading a document, with the contents pane on the left
marquee-markdown reading a document, with the contents pane on the left

Why not glow

The same document rendered by glow on the left and marquee-markdown on the right
The same document rendered by glow on the left and marquee-markdown on the right

glow is good, and this keeps its flags and its keys so muscle memory carries over. The whole comparison →

Screenshots