Show HN: Kage – Shadow any website to a single binary for offline viewing

631 points · 122 comments on HN · read original →

Points and comments are a snapshot, not live.

Kage mirrors websites into offline-browsable folders or binaries with JavaScript stripped out.

Kage is a Go tool that clones websites using headless Chrome, captures the rendered DOM after scripts run, then removes all JavaScript before saving assets locally. The mirror can be browsed offline via a local HTTP server, packed into a single ZIM archive file, or bundled into a self-contained executable that serves itself. Features include breadth-first crawling that respects robots.txt, resumable downloads via Ctrl-C, optional auto-scrolling for lazy-loaded images, and multi-platform app bundling. The tool deterministically maps URLs to local paths so links remain valid. On macOS it can create .app bundles; on Windows and Linux, AppImage or GUI-subsystem executables. An optional webview build opens sites in native windows rather than browser tabs.

What commenters are saying

Commenters noted SingleFile as a comparable tool that packs websites into single HTML files with base64-encoded assets, and suggested HTTrack as an older precedent. The thread surfaced specific feature requests: cookie support for authenticated sites, markdown export, EPUB output, smaller binaries using self-extracting archives instead of embedded browsers, and handling of SPAs and shadow DOMs. The creator acknowledged interest in these ideas and mentioned working on WARC format and a broader search-indexing project. One commenter highlighted that SingleFile supports recursive crawls and handles edge cases like closed shadow DOMs and WebSocket media URLs.