Markdown, beautifully rendered
in your terminal

A terminal-based Markdown previewer with a GUI-like experience. Rich rendering, interactive navigation, and editor integration — all without leaving your terminal.

leaf
leaf
════

Terminal Markdown previewer — GUI-like experience.

leaf lets you read Markdown files directly in the terminal with a clean, focused interface. Designed for developers, CLI users, and AI-assisted workflows.

Usage
─────
bash
12345
leaf README.md
leaf -w README.md
leaf
leaf --picker
cat file.md | leaf
leaf leaf-summary.md ⟳ watch ctrl+e edit · ctrl+f find · t toc · ? help · q quit

Why leaf ?

Leave your terminal to preview?

Previewing Markdown shouldn't mean switching to a browser or a heavy GUI app.

Web viewers are overkill

For a quick preview, you don't need a full web application with login and setup.

CLI tools lack interactivity

Existing terminal tools dump Markdown as plain text — no navigation, no search, no style.

Syntax highlighting

Beautiful code blocks with syntax coloring for 40+ languages. Line numbers, decorative frames, and language labels included.

Syntax highlighting

Table rendering

Markdown tables rendered with Unicode box-drawing borders, column alignment, and inline code support.

Table rendering

LaTeX math

Inline and block math formulas converted to Unicode symbols — no external renderer needed.

LaTeX math

Mermaid diagrams

Flowcharts, sequence diagrams, and pie charts rendered as ASCII art directly in the terminal.

Mermaid diagrams

Watch mode

Auto-reload when the file changes on disk. Scroll position is preserved. Toggle with -w flag or press w.

Watch mode

Editor integration

Press Ctrl+E to open in your editor. leaf detects vim, nano, VS Code, and more — reloads preview on return.

Editor integration

File picker

Fuzzy finder with Ctrl+P or directory browser with --picker. Scan and open any Markdown file instantly.

File picker

Table of contents

Sidebar TOC with heading hierarchy and active section tracking. Toggle with t, jump with 1-9.

Table of contents

Full-text search

Press / to search. Matches are highlighted with a counter. Navigate with n/N.

Full-text search

Keyboard navigation

Vim-like keybindings — j/k, d/u, g/G. Mouse scroll and scrollbar click supported too.

Keyboard navigation

Theme picker

4 built-in themes — Arctic, Forest, Ocean, Solarized-Dark. Live preview with Shift+T.

Theme picker

Everything you need

Syntax Highlighting

40+ languages with beautiful color themes.

4 Built-in Themes

Arctic, Forest, Ocean, Solarized-Dark with live preview.

Full-text Search

Find anything with highlighted matches and keyboard navigation.

TOC Sidebar

Interactive table of contents with active section tracking.

Stdin Support

Pipe output from any tool — claude, aichat, cat — directly into leaf.

Secure Auto-update

One-command update with SHA256 verification.

Install in seconds

$ curl -fsSL https://leaf.rivolink.mg/install.sh | sh

Built for developers

Preview AI output

Pipe output from Claude, ChatGPT, or any AI tool directly into a beautiful preview.

$ claude "explain Rust" | leaf

Read docs while coding

Preview your README, CHANGELOG, or any docs with live reload as you edit.

$ leaf --watch README.md

Explore Markdown projects

Open fuzzy finder, navigate directories, and preview any Markdown file instantly.

$ leaf

Frequently Asked Questions

What platforms does leaf support?
leaf runs on macOS (Intel & Apple Silicon), Linux (x64 & ARM), Windows, and Android via Termux.
How do I update leaf?
Run `leaf --update` — it downloads the latest release and verifies it with SHA256.
Can I customize the appearance?
Yes! leaf ships with 4 themes (Arctic, Forest, Ocean, Solarized-Dark). Switch with Shift+T or set a default in config.toml.
Does leaf support piping from stdin?
Absolutely. Pipe any Markdown content: `cat notes.md | leaf` or `claude "explain X" | leaf`.
Is leaf open source?
Yes, leaf is MIT licensed and hosted on GitHub.

Try leaf now

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

$ curl -fsSL https://leaf.rivolink.mg/install.sh | sh