
一句话看懂:开发者 tamnd 发布开源工具 Kage,通过真实浏览器渲染后剥离 JavaScript,将任意网站镜像为可离线浏览的静态文件,并支持打包为独立二进制文件。该工具解决了传统“保存网页”功能无法应对高度依赖 JavaScript 的现代网站的问题。
事件核心:发生了什么
Kage 是一款用 Go 语言编写的命令行工具,核心工作流程分三步:首先在无头 Chrome 浏览器中真实加载目标网站,等待所有脚本执行完毕、页面状态稳定;然后截取用户最终看到的 DOM 快照,剥离所有 JavaScript;最后将 CSS、图片、字体等静态资源下载到本地并重写链接路径。输出结果是一组可直接在磁盘上打开的 .html 文件,或者通过 `kage pack` 命令压缩为单个 ZIM 存档或独立的二进制可执行文件。工具支持 robots.txt 协议、sitemap.xml 种子、并发渲染、爬取深度/范围限制、增量刷新等能力。安装方式包括 Go 安装、预编译二进制包(.deb/.rpm/.apk)以及 Docker 容器镜像(内置 Chromium)。项目目前托管在 GitHub,完整文档位于 kage.tamnd.com。
为什么重要
Kage 的价值在于它重新定义了“保存网页”的语义。过去十年,网站架构从静态 HTML 转向重度依赖客户端 JavaScript 的单页应用,传统浏览器的“另存为”功能几乎失效——保存的文件要么是空白页,要么仍试图向不再存在的服务器请求数据。Kage 通过真实浏览器先渲染再剥离脚本的方式,保留用户实际交互后的视觉效果,同时消除追踪代码和网络依赖。这种做法在归档、内容审计、飞行模式阅读、长期保存等场景中有实际需求。目前开源工具中,Wget 可以静态爬取但无法处理 JS 渲染,SingleFile 能保存单个页面但缺少批量和打包能力,Kage 填补了“完整站点镜像+脚本剥离+单文件分发”这个组合功能的空白。
对用户/开发者/创作者的影响
对于普通用户:无需安装 Python 或 Node.js 环境,通过一条 `kage clone paulgraham.com` 命令就能获得完整可离线浏览的站点副本,并可用 `kage pack –format binary` 生成一个不含任何运行依赖的独立浏览器窗口。对于开发者:Kage 的架构思路值得参考——使用 headless Chrome 的 Page.captureSnapshot API 获取页面静态快照,然后遍历 DOM 替换资源路径,这种模式可以复用于自动化测试、合规审计、数据备份等场景。对于内容创作者和研究者:Kage 提供了一种低成本的归档方案,用于保存博客、文档站、知识库等未来可能消失或改版的内容。但需要注意,Kage 仅保留页面视觉状态,不保留交互功能(如评论、搜索、表单提交),且对完全依赖 API 获取内容的 SPA 站点可能无法完整捕获全部数据。
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
值得关注的后续
第一,Kage 目前处于早期发布阶段,GitHub 上还没有明确的许可证和贡献指南,其长期维护计划和社区响应速度有待观察。第二,“将站点打包为单一二进制”功能背后依赖 WebView 或 Electron 技术,生成的文件大小和启动性能对于大型站点(数千页面)是实际考验。第三,如果该项目持续迭代,可能被知识管理工具(如 Obsidian、Logseq)或浏览器扩展(如 SingleFile 的批量版本)借鉴或集成。目前公开信息显示作者以个人开发者身份维护,没有商业化迹象。


