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

Latest test screenshot array from master
Video
https://github.com/user-attachments/assets/924d29a9-053c-44b0-8c09-39dac8c90329
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, Rio, should work.
On terminals without graphics whatsoever, like Alactritty, images are rendered with Chafa.
Installation
Packaged in distros:
- Rust cargo:
cargo install mdfried- From source :
cargo install --path . - Needs a chafa package with development headers, usually called something like
libchafa-dev,libchafa-devel, or justlibchafa, or even justchafa. - If chafa is not available at all, or you don't care about it because your terminal supports some graphic protocol, then use
--no-default-features. - If
cargo install ...fails, try it with--locked, and/or report an issue.
- From source :
- Nix flake:
github:benjajaja/mdfried - Nixpkgs:
mdfried - Arch, Manjaro, Parabola:
pacman -S mdfried(extra repository) - FreeBSD:
pkg install mdfried - Ubuntu: Download release .deb
- Mac:
brew install mdfriedorport install mdfriedor realease binaries - Windows: Download release .exe
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 may have to pick a font, if your terminal's font could not be automatically detected.
You should pick the same font that your terminal is using, but you could pick any.
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.
See --help for all options.
Key bindings
The keybindings should follow the basics of general CLI pagers. Vi-style keybindings are prioritized, but "normal" keys should be usable as well.
Type :help in the program to see the exact list, or see assets/help.md.
Mouse scroll only works if enabled in settings as enable_mouse_capture = true, but then you can't select text (in most terminals).
Configuration
~/.config/mdfried/config.toml is automatically created on first run.
mdfried --print-config prints out a full example config with a full theme.
Changelog
See CHANGELOG.md.