Quick start
From an empty terminal to clean Markdown: one page, a whole site as a folder, and a single combined file.
This walks the core loop: read one page, save it to a file, read a whole site into a folder, collapse a site into one file, and preview a folder in the browser.
1. Read one page
yomi read paulgraham.com/greatwork.html
A bare host is enough; yomi fills in https:// when you leave the scheme off.
It fetches the page, renders it only if it looks JavaScript-gated, extracts the
article, and prints Markdown to stdout. The document opens with a front-matter
block:
---
title: "How to Do Great Work"
url: "https://paulgraham.com/greatwork.html"
byline: "Paul Graham"
fetched: "2026-06-17T09:30:00Z"
word_count: 11856
reading_time: 59
---
If you collected lists of techniques for doing great work in a lot
of different fields, what would the intersection look like? ...
Strings are quoted, reading_time is the estimate in whole minutes, and only the
fields the page actually provides are written. This essay carries no site name,
language, or published date, so those lines are simply absent.
2. Save it to a file
yomi read paulgraham.com/greatwork.html -o greatwork.md
-o writes the Markdown to a file instead of stdout. Open greatwork.md in any
editor and you have the essay, no nav, no footer, no cookie banner.
3. Read a whole site into a folder
yomi site paulgraham.com -o pg/
yomi crawls the site in scope, writes one .md file per page mirroring the URL
paths, and adds a SUMMARY.md table of contents. Downloaded images, if you ask
for them, share a media/ folder.
pg/
├── SUMMARY.md # table of contents, one row per page
├── index.md # the home page (/)
├── greatwork.md # /greatwork.html
├── articles.md # /articles.html
└── media/ # shared images (with --images download)
SUMMARY.md is a plain Markdown list linking the pages by title, so the folder
reads like a small book.
4. Collapse a site into one file
yomi site paulgraham.com --single -o paulgraham.md
--single (or -s) assembles the whole crawl into one Markdown document: a
table of contents at the top, then every page as its own section with an anchor,
with each page's headings demoted so the file keeps a single clean outline. One
file you can read top to bottom.
5. Pack a site into one file
yomi pack paulgraham.com -o pg.db # a SQLite database of the whole site
yomi pack paulgraham.com -o pg.zim # a ZIM archive you can open in Kiwix
yomi pack bundles a whole crawl into one file instead of a folder: a SQLite
database with pages, links, and images tables, or a ZIM offline archive.
The output extension picks the format. The crawl resumes, so running it again
keeps every page already stored and fetches only what is new.
6. Preview a folder
yomi serve pg/
# open http://127.0.0.1:8800
yomi serve runs a local static file server over a folder of Markdown so you can
click through it in a browser.
Where to go next
- The guides cover reading a page, crawling a site, packing a site into one file, the single vs folder choice, and images in depth.
- The CLI reference lists every command and flag.