A Go HTTP server that gives AI agents token-efficient control over Chrome, with multi-instance orchestration and a live dashboard.
tamnd/kage
A Go CLI that clones a website into a folder of script-free HTML you can browse offline, rendering pages in headless Chrome first.
Open-source alternative to:HTTrack
Evernote Web Clipper
- Stars
- 3,485
- Forks
- 135
- Open issues
- 9
- Last commit
- 2 months ago
What is it?
kage clones a website into a local folder you can browse offline. It opens each page in headless Chrome, waits for it to finish loading, snapshots the DOM as a user would see it, then removes all JavaScript and downloads CSS, images, and fonts to local paths. The resulting .html files open directly from disk and run no code.
The crawl is breadth-first and respects robots.txt, can seed from sitemap.xml, and can be limited by depth, page count, path prefix, or subdomains. Interrupted crawls resume from saved state, and a re-run with refresh updates an existing mirror in place.
A finished mirror can be served with a built-in static server, or packed into a single ZIM archive readable by Kiwix tools, or into a self-contained executable that serves the site when run. Packing can also produce a macOS .app bundle or a Linux AppImage-style launcher, and an optional webview build opens the site in a native window.
Key features
- 01Renders pages in headless Chrome and saves the final DOM with scripts removed.
- 02Downloads and localises CSS, images, and fonts so pages work offline.
- 03Respects robots.txt and can seed from sitemap.xml.
- 04Resumes interrupted crawls and supports in-place refresh.
- 05Packs mirrors into a ZIM archive or a self-contained executable.
- 06Ships prebuilt binaries, Docker image, and Linux packages.
Use cases
- Keeping a copy of a blog or documentation site for offline reading on a plane or without Wi-Fi.
- Archiving a page whose live version may change or disappear.
- Sharing a static snapshot of a site as a single file with someone else.
- Creating a double-clickable offline viewer for a site on desktop systems.
Quick start
- 1
Install kage with Go
go install github.com/tamnd/kage/cmd/kage@latest - 2
Clone a website into a local folder
kage clone paulgraham.com - 3
Browse the clone offline in your browser at http://127.0.0.1:8800
kage serve $HOME/data/kage/paulgraham.com
Things to know
- Requires Chrome or Chromium installed on the host, unless you use the container image.
- Packed binaries are roughly 13 MiB plus the site, since they bundle the whole kage tool.
- Native webview window needs cgo and the platform WebView, so it is opt-in.
Topics
FAQ
- What is kage?
- A Go CLI that clones a website into a folder of script-free HTML you can browse offline, rendering pages in headless Chrome first. kage clones a website into a local folder you can browse offline. It opens each page in headless Chrome, waits for it to finish loading, snapshots the DOM as a user would see it, then removes all JavaScript and downloads CSS, images, and fonts to local paths. The resulting .html files open directly from disk and run no code.
- Is kage free to use? What license does it have?
- kage is open source under the MIT license. Check the license terms before using it in commercial products.
- Is kage still maintained?
- Updated within 6 months. The last commit to kage was on Aug 10, 2026.
- What can I use kage for?
- Keeping a copy of a blog or documentation site for offline reading on a plane or without Wi-Fi. Archiving a page whose live version may change or disappear. Sharing a static snapshot of a site as a single file with someone else. Creating a double-clickable offline viewer for a site on desktop systems.
- How do I install kage?
- Install kage with Go: go install github.com/tamnd/kage/cmd/kage@latest Clone a website into a local folder: kage clone paulgraham.com Browse the clone offline in your browser at http://127.0.0.1:8800: kage serve $HOME/data/kage/paulgraham.com
- Where can I get kage?
- The source code and installation instructions are on GitHub: https://github.com/tamnd/kage
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source job search engine that aggregates IT job postings directly from company ATS career pages, self-hostable under MIT.
TypeScript, Python and Go SDK for browser agents that drives Chrome with natural-language act, observe and extract calls alongside Playwright-style APIs.
A concurrency-first web crawler and scraping engine in Rust that renders JavaScript only where needed.
Browser automation platform that turns recorded browser actions into MCP commands or Claude Skills so AI agents can control browsers.
A Go CLI and GitHub CLI extension that starts a local web server to preview GitHub Flavored Markdown, including offline.