Skip to content
kage

Quick start

From an empty terminal to a self-contained offline mirror you can click through.

This walks the core loop: clone a small site, look at what landed on disk, and serve it back so links and assets resolve the way they would on a real host.

1. Clone a site

kage clone example.com

kage launches headless Chrome, renders the home page, strips its scripts, and follows in-scope links breadth-first. A live counter shows pages, assets, and errors as it goes; the final summary tells you where the mirror landed.

kage cloning https://example.com
done $HOME/data/kage/example.com
  pages 12   assets 38
  open kage serve $HOME/data/kage/example.com

2. Look at what landed

ls $HOME/data/kage/example.com
index.html        # the home page, scripts stripped
about/index.html  # /about
_kage/            # localised assets and crawl state

Open index.html directly in a browser and it renders offline, with no network. Grep it and you will find no <script>, no onclick, no javascript:.

3. Serve it back

Opening files directly works, but some sites use root-relative links. kage serve runs a local static server so everything resolves exactly as it would live:

kage serve $HOME/data/kage/example.com
# open http://127.0.0.1:8800

4. Scope a bigger crawl

For a large site, bound the crawl so it does not run away:

# Just the docs section, three levels deep, at most 200 pages
kage clone example.com --scope-prefix /docs --max-depth 3 --max-pages 200

If you stop a run with Ctrl-C, kage saves its state. Run the same command again and it resumes, skipping the pages it already wrote.

Where to go next

  • The guides cover scoping, serving, and resuming in depth.
  • The CLI reference lists every flag.