Web Analytics

mdfried

⭐ 283 stars English by benjajaja

mdfried

mdfried is a markdown viewer for the terminal that renders headers as Bigger Text than the rest.

Screenshots

Screenshot

Latest test screenshot array from master

Video

https://github.com/user-attachments/assets/e69154a7-bea8-4e14-a677-be7ccf0d3cac

Why?

You can cook a terminal. But can you deep fry a terminal? YES! You can cook and fry your tty! ~~Run before it's too late!~~

The terminal is usually in "cooked" mode, or canonical mode.
With ratatui🐁, it's in raw mode, but it "cooks" for you.

Markdown can obviously be rendered pretty well in terminals, but one key aspect is missing: Big Headers™ make text more readable, and rendering images inline is very convenient.

How?

By rendering the headers as images with ratatui, and using one of several terminal graphics protocols: Sixels, Kitty, or iTerm2. The Kitty terminal also implements a Text Sizing Protocol to directly scale text without needing to render as images!

See ratatui-image to see if your terminal does even have graphics support, and for further details.

In general, Kitty, WezTerm, iTerm2, Ghostty, Foot, xterm -ti vt340, should work.

On terminals without graphics whatsoever, like Alactritty, images are rendered with Chafa.

Installation

Usage

Running

mdfried ./path/to.md
Unless you're using Kitty version 0.40 or greater, or a terminal that does not support any graphics protocol, the first time you run mdfried you will have to pick a font. You should pick the same font that your terminal is using, but you could pick any. The font-setup screen lets you search the system fonts - you will want to pick the same font that your terminal is using. The font is rendered directly as a preview. Once confirmed, the choice is written into the configuration file.

Use --setup to force the font-setup again if the font is not right.

You can also pipe markdown into it:

readable https://lobste.rs | markdownify | mdfried

Key bindings

Key | Description ----|------------ q or Ctrl-c | Quit and leave contents on terminal r | Reload the file (unless piped stdin) j | Scroll down one line k | Scroll up one line d or Ctrl-d | Scroll down half page u or Ctrl-u | Scroll up half page f or PageDown or Space | Scroll down a page b or PageUp | Scroll up a page g | Go to start of file G | Go to end of file G or g | Go to the string #\ / | Search text n | Jump to next match or link N | Jump to previous match or link Enter | Open selected link with xdg-open Esc | Leave search or link modes

Entering a number before motion applies the motion that many times.

Mouse scroll only works if enabled in settings as enable_mouse_capture = true, but then you can't select text.

Configuration

~/.config/mdfried/config.toml is automatically created on first run.

--- Tranlated By Open Ai Tx | Last indexed: 2026-03-18 ---