Kage turns rendered websites into offline, script-free archives
Kage is an open-source Go tool that renders websites with headless Chrome, strips JavaScript, localizes assets, and packs the result as a folder, ZIM archive, or self-contained binary. It is useful for documentation snapshots, travel reading, and disaster-recovery copies, with clear caveats around crawl scope and dynamic sites.
Kage is an open-source tool for cloning a website into an offline copy after a real browser has rendered the page. Its GitHub README says it uses headless Chrome or Chromium, snapshots the final DOM, strips scripts, localizes CSS, images, and fonts, then can pack the mirror into a ZIM file or a self-contained executable. Trendshift separately tracks the same repository and describes it as a tool for offline website viewing with JavaScript stripped out.
Key takeaways
- Kage targets whole-site snapshots, not just single-page saves.
- The clone step renders pages in Chrome or Chromium before saving the script-free output.
- The pack step can produce a ZIM archive, a single executable viewer, or desktop-app style bundles depending on platform and flags.
- The repository states that Kage reads
robots.txt, can resume interrupted crawls, and supports scope controls such as max pages, depth, path prefix, subdomains, and refresh behavior. - The strongest use cases are documentation, public wikis, reference sites, and travel/offline reading; complex authenticated apps still need careful testing.
Practical LinkLoot angle
Kage is worth testing if your team has web documentation that must survive outages, vendor changes, travel, or low-connectivity field work. It sits between classic mirroring tools and browser "Save As": it uses a browser first, but then removes the runtime JavaScript so the saved result is closer to static documentation.
| Tool or format | Best use | Limitation | Source |
|---|---|---|---|
| Kage clone | Rendered public sites, docs, essays, and wikis that need offline copies | Requires Chrome or Chromium and may need crawl limits on large sites | GitHub |
| Kage ZIM output | Portable archives readable through the wider Kiwix ecosystem | Kage notes that its ZIM output does not include the full-text search index shipped with some Kiwix packs | GitHub |
| Kage binary output | Handing someone one executable that serves the archived site | The executable includes Kage itself, so tiny sites still carry binary overhead | GitHub |
| SingleFile / HTTrack comparisons | Deciding whether you need one page, a recursive crawl, or a rendered static mirror | HN discussion includes useful comparisons, but each tool handles dynamic sites differently | Hacker News |
The operational use case is simple: pick one public documentation site, run a bounded crawl, and inspect the output offline. Check links, images, code samples, search boxes, and navigation before trusting it as a disaster-recovery copy.
What to verify before you act
Confirm the site allows crawling, then set conservative page, depth, concurrency, and scope limits before a first run. Test whether important content appears only after login, user actions, modals, infinite scroll, or API calls that Kage cannot preserve after scripts are stripped. If you package a binary for other people, verify the target operating system and architecture, and decide whether a ZIM archive is easier to audit and store.
Source check
The GitHub repository confirms Kage's purpose, install path, Chrome/Chromium dependency, clone and pack commands, ZIM/binary outputs, scope flags, resume behavior, and architecture. Trendshift independently identifies the repository and its offline, script-stripping purpose. The Hacker News thread confirms community attention and adds practical comparisons, but its comments are treated as untrusted discussion, not as proof of Kage's implementation.
For more tools that turn small workflows into reusable utilities, see LinkLoot's AI agent tools guide.
Kage renders a website with headless Chrome, saves the final page state, strips JavaScript, localizes assets, and stores the site for offline browsing.
