做技术的人,多少都有点“收藏癖”。
看到一篇好文,第一反应是收藏、加书签、丢进 Notion。
等到哪天真想回头看,才发现:链接 404 了,站点重构了,或者打开只剩一个加载动画。
不是你没存,是网页本身已经离不开 JS、接口和网络了。
一旦断网、改版、关站,那些“存下来的页面”其实什么都没留下。
最近有个爆火的项目 kage ,走了是另一条路。
![图片[1]-13MB 打包整个网站、去 JS、跨平台,还能做成 App-酱豆博客](https://jamdou.com/wp-content/uploads/2026/07/13MB打包整个网站去JS跨平台还能做成App有点离谱了_3.jpg)
项目简介
kage 是一个用 Go 编写的命令行工具,专门干一件事: 把任意网站克隆成一份可以离线浏览的本地镜像,同时把所有 JavaScript 彻底剔除。
![图片[2]-13MB 打包整个网站、去 JS、跨平台,还能做成 App-酱豆博客](https://jamdou.com/wp-content/uploads/2026/07/13MB打包整个网站去JS跨平台还能做成App有点离谱了_4-1024x546.gif)
普通网页保存只抓 HTML 源码,而现在的网页大多是个空壳,内容都是 JS 动态生成。
kage不一样,它会启动真正的无头 Chrome,等页面完整渲染完毕,再把浏览器”看到”的最终 DOM 快照下来,然后把脚本、事件处理器、追踪代码统统删掉,只留下样式、图片、字体、文字内容。
结果就是一份干净、可离线、零网络请求的本地副本。
和同类工具 wget -r 、HTTrack 、SingleFile 的对比
![图片[3]-13MB 打包整个网站、去 JS、跨平台,还能做成 App-酱豆博客](https://jamdou.com/wp-content/uploads/2026/07/13MB打包整个网站去JS跨平台还能做成App有点离谱了_5-1024x453.png)
项目在GitHub上已经收获了 2.4k Star,热度相当不错。
![图片[4]-13MB 打包整个网站、去 JS、跨平台,还能做成 App-酱豆博客](https://jamdou.com/wp-content/uploads/2026/07/13MB打包整个网站去JS跨平台还能做成App有点离谱了_6-1024x478.jpg)
功能特色
- 真实渲染后快照,不是存源码 :SPA 内容型页面(博客、文档、Wiki)经 JS 拼装后的正文也能正确捕获,告别白屏空壳。
- JS/追踪全清除,零网络调用 :保存的 HTML 里找不到任何
<script>或onclick,纯静态打开不会有任何网络请求,隐私友好。 - 资源本地化 + 链接重写 :样式表、图片、字体全部下载,
url()和站内超链改为相对路径,把文件夹拷到任何地方双击 index.html 就能点着翻。 - 打包为开放 ZIM 归档或自含二进制 :一条命令打成 Kiwix 生态兼容的
.zim(可用 Kiwix 手机/桌面端读),或打成附加了 Web 服务的单可执行文件(~13MB+站点体积),接收者无需装任何东西直接运行。 - 爬取范围精确可控 :面对大型网站,kage 不会盲目全站扫,
--scope-prefix /docs:只爬某个路径下的内容--max-pages 50:最多抓 50 页就停--max-depth 3:最多跟踪 3 层链接深度--exclude:排除指定路径前缀--subdomains:需要时也可以把子域名纳入范围
快速安装、使用
安装
如果本机有 Go 环境(推荐 Go 1.21+):
go install github.com/tamnd/kage/cmd/kage@latest
没有 Go 也没关系,直接从项目release页面下载对应平台的预编译二进制,解压就能用。
或者用 Docker(自带 Chromium,不需要本机装 Chrome):
docker run --rm -v "$PWD/out:/out" ghcr.io/tamnd/kage clone paulgraham.com
kage 需要本机有 Chrome 或 Chromium,它会自动找。如果想手动指定路径,用 --chrome 参数或设置 KAGE_CHROME 环境变量。
基本使用
克隆一个网站:
kage clone paulgraham.com
等它跑完,镜像默认落在 $HOME/data/kage/paulgraham.com/ 。
![图片[5]-13MB 打包整个网站、去 JS、跨平台,还能做成 App-酱豆博客](https://jamdou.com/wp-content/uploads/2026/07/13MB打包整个网站去JS跨平台还能做成App有点离谱了_7.jpg)
本地预览:
kage serve $HOME/data/kage/paulgraham.com# 浏览器打开 http://127.0.0.1:8800
![图片[6]-13MB 打包整个网站、去 JS、跨平台,还能做成 App-酱豆博客](https://jamdou.com/wp-content/uploads/2026/07/13MB打包整个网站去JS跨平台还能做成App有点离谱了_8.jpg)
打包成单个 ZIM 文件:
kage pack paulgraham.com # 生成 paulgraham.com.zimkage open paulgraham.com.zim # 用 kage 打开
打包成自包含可执行文件:
kage pack paulgraham.com --format binary -o paulgraham./paulgraham # 直接运行,无需安装任何东西
![图片[7]-13MB 打包整个网站、去 JS、跨平台,还能做成 App-酱豆博客](https://jamdou.com/wp-content/uploads/2026/07/13MB打包整个网站去JS跨平台还能做成App有点离谱了_9-1024x292.jpg)
限制爬取范围,快速试用:
kage clone paulgraham.com --max-pages 20 --max-depth 2
开源君想说
说真的,谁还没被“网页已过期”坑过?
kage 这玩意儿,就是把那些花里胡哨的现代网页,打回原形保存,不用联网,不怕跑路,双击就能看。
感觉就像给自己的收藏夹上了份“离线保险”,踏实。
如果你有长期保存某些网站内容的需求——技术文档、博客文章、知识库——不妨试试这个工具。
更多细节功能,感兴趣的可以到项目地址查看:
https://github.com/tamnd/kage






暂无评论内容