gitwtfhub

wtf is kage?

tamnd/kage — explained in plain English

Analysis updated 2026-07-03 · repo last pushed 2026-06-29

2,662GoAudience · generalComplexity · 2/5ActiveSetup · moderate

TL;DR

Kage saves a complete, offline-browsable copy of any website by opening each page in a real browser, stripping out all JavaScript, and downloading images, styles, and fonts so you get clean files with no tracking or broken pages.

Mindmap

mindmap
  root((repo))
    What it does
      Saves websites for offline reading
      Strips JavaScript from pages
      Downloads images and styles
    Key features
      Pause and resume crawl anytime
      Pack site into ZIM file
      Export as standalone executable
    Use cases
      Archive research sources
      Read essays on a plane
      Keep copies before sites disappear
    Tech stack
      Go
      Headless browser
      ZIM format
    Audience
      Researchers
      Writers
      General readers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Mirror an essay site like Paul Graham's so you can read everything on a flight with no wifi.

REASON 2

Archive web pages for research citation before they change or disappear.

REASON 3

Collect reference material for offline reading without broken pages or tracking scripts.

REASON 4

Bundle a full website into a single executable file to share with someone who has nothing installed.

What's in the stack?

GoHeadless browserZIM format

How it stacks up

tamnd/kagecompozy/compozynvidia/aistore
Stars2,6622,0251,864
LanguageGoGoGo
Last pushed2026-06-29
MaintenanceActive
Setup difficultymoderatemoderatehard
Complexity2/53/55/5
Audiencegeneraldeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires Go installed to build from source and needs a headless browser environment available.

Wtf does this do

kage lets you save a complete copy of a website so you can browse it offline, with all the JavaScript stripped out. Instead of the usual "Save As" approach that leaves you with broken pages, blank screens, or files that still try to contact tracking servers, you get clean HTML files that look like the real site and run no code. The way it works is straightforward but clever. It opens each page in a real (but invisible) browser, waits for everything to load and settle, then takes a snapshot of what a human visitor would actually see. After that, it removes every script and downloads all the images, stylesheets, and fonts to your local disk. What you end up with is a folder of files you can open in any browser, completely offline, with no tracking or surprise network calls. Anyone who wants to reliably archive web content would find this useful. If you're a researcher who needs to cite pages that might change, a writer collecting reference material for a long flight, or just someone who wants to keep a readable copy of a favorite blog before it gets redesigned or disappears, this solves that problem. The README's go-to example is mirroring Paul Graham's essay site so you can read the whole thing on a plane with no wifi. One notable feature is the packing system. You can collapse an entire mirrored site into a single compressed file using the open ZIM format, which means you're not locked into this tool forever, the same file works in other readers like Kiwix. You can also turn a mirror into a standalone executable that serves the site when run, meaning you can hand someone a single file and they don't need anything installed to browse it. The tradeoff is size: that executable includes a copy of the tool itself, so it's at least 13 MB even before the site content. The project is written in Go and respects standard web etiquette like robots.txt. You can pause a crawl mid-way and resume it later, or come back months later and re-render to catch new content.

Yoink these prompts

Prompt 1
Using kage, mirror Paul Graham's essay site at paulgraham.com so I can read every essay offline on a plane. Show me the exact command.
Prompt 2
I have a kage mirror of a website. How do I pack it into a ZIM file so I can open it in Kiwix?
Prompt 3
Using kage, crawl a website but pause halfway through, then resume the crawl the next day. Walk me through the commands.
Prompt 4
I want to turn a kage mirror into a standalone executable that serves the site when run. How do I do that, and what should I expect about the file size?
Prompt 5
Using kage, save an offline copy of a blog but make sure it respects robots.txt and strips all tracking scripts. What command should I run?

Frequently asked questions

wtf is kage?

Kage saves a complete, offline-browsable copy of any website by opening each page in a real browser, stripping out all JavaScript, and downloading images, styles, and fonts so you get clean files with no tracking or broken pages.

What language is kage written in?

Mainly Go. The stack also includes Go, Headless browser, ZIM format.

Is kage actively maintained?

Active — commit in last 30 days (last push 2026-06-29).

How hard is kage to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is kage for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.