kage:把任何网站克隆成纯净离线版的 Go 工具

📅 2026年06月15日 · 技术

kage 项目封面

你应该遇到过这种事:在浏览器里对一个网页点了"另存为",半年后再打开,要么白屏、要么转圈转不停,要么还在偷偷请求早就下线的统计服务。原因很简单——你存的不是页面,而是别人 JavaScript 的一份薄客户端。kage("影",日语读音 kage)走的是相反的路:它驱动一个真实的无头 Chrome,等页面渲染完,把人类最终看到的那份 DOM 拍下来,再把所有 JavaScript 抽掉,把 CSS、图片、字体拉到本地路径,最后丢回磁盘的就是一堆能直接双击打开的 .html

它和 wget --mirror 有什么不同

wget / httrack 这类老牌镜像工具抓的是源码,对重度依赖前端框架、靠 JS 在运行时拼出内容的现代站点几乎无能为力。kage 用的是真浏览器:它会等页面 settle,所以单页应用、懒加载内容也能被"渲染后"地保存下来,再去掉脚本,留下的就是一张静态快照。没有追踪、没有网络回连、没有意外。

怎么用

一条 go install 就能装上:

go install github.com/tamnd/kage/cmd/kage@latest

不想本地装 Chrome 的,直接用官方 Docker 镜像(自带 Chromium):

docker run --rm -v "$PWD/out:/out" ghcr.io/tamnd/kage clone paulgraham.com

除了 clone,它还能把整个站点 pack 成单个自包含文件方便分发,以及以原生窗口(而不是浏览器标签页)的方式打开离线内容。预编译的 .deb / .rpm / .apk 在 release 页都能找到。

适合什么场景

对前端依赖很重的现代网站,kage 提供了一种比传统镜像更靠谱的"截图式"离线方案,Go 实现、单二进制、开箱即用。

参考来源

🔧 在线开发者工具 — JSON格式化 · Base64 · UUID生成 · 正则测试 等80+免费工具
🔧 在线开发者工具 — JSON格式化 · Base64 · UUID生成 · 正则测试 等80+免费工具