Pake

用 Rust 把任何网页变成桌面应用开源

关于 Pake

Pake 是一个命令行工具,一条命令就能把任意网页打包成 macOS、Windows 和 Linux 上的桌面应用。它基于 Rust 和 Tauri,借用系统自带的 WebView 渲染页面,所以安装包通常小于 10 MB;Electron 应用则捆绑整套 Chromium。项目由独立开发者 Tw93 发起并维护,2026 年 6 月起改用 GPL-3.0-or-later 许可证,但用它生成的应用可以按任意许可证分发。

它解决什么问题

很多人每天开着的网页工具,比如 ChatGPT、Notion、微信读书、X,也可以当成独立的桌面应用用:有自己的窗口和图标,能用 Cmd+Tab 切换,不会淹没在几十个浏览器标签里。传统做法是用 Electron 套一层壳,但 Electron 应用会捆绑一整套 Chromium。

Pake 的做法是用 Tauri 框架,借用操作系统自带的 WebView:macOS 上是 WKWebView,Windows 上是 WebView2,Linux 上是 WebKitGTK。README 称打出的安装包比 Electron 应用小近 20 倍,通常小于 10 MB。官网把它定位为已归档的 Nativefier 的后继:同样是「一条命令」的思路,但去掉了捆绑的 Chromium。

除了把网页装进窗口,Pake 还提供一些接近原生应用的功能:快捷键透传、沉浸式窗口(macOS 可隐藏标题栏)、拖拽、样式定制和去广告。仓库里还为常用网站写了专门的样式微调,例如 V3.17.6 让 ChatGPT、Grok、Gemini、DeepSeek 在隐藏标题栏时,标志和侧边栏按钮不再被左上角的红绿灯挡住。

谁做的:Pake 挂在 GitHub 个人账号 tw93 下,作者 Tw93 是产品工程师和开源作者,博客是 tw93.fun,GitHub 账号注册于 2014 年,约 1.36 万关注者(2026-10-25)。据 pake.run 页面介绍,他的作品还包括 Mac 清理工具 Mole、终端工具 Kaku、Markdown 笔记应用妙言(MiaoYan)以及 Waza、Kami 等。项目没有公司主体,README 的「支持」一节建议用户购买作者的付费 Mac 应用 Mole 来支持他,或者给他的两只猫买罐头。

时间线:仓库创建于 2022-10-14;npm 上的 pake-cli 包创建于 2022-11-13,1.0.0 发布于 2022-12-21,2.0.0 发布于 2023-04-29,3.0.0 发布于 2024-12-19。2026 年进入 3.17 系列:3.17.0 发布于 9 月 20 日,3.17.6 发布于 10 月 17 日。GitHub Release 的版本名都带一个代号,例如 V3.17.0 Harbor、V3.17.2 Lantern、V3.17.3 Tide、V3.17.5 Compass、V3.17.6 Clearance;3.17.1 和 3.17.4 只发了 npm,没有对应的 GitHub Release。

一条命令把任意网页打包成桌面应用,支持 macOS、Windows 和 Linux

Pake 中文 README

核心能力

一条命令打包。 安装 pake-cli 后运行 pake 加网址和 --name,Pake 会自动抓取网站图标,生成对应平台的安装包。常用参数包括 --icon、--width、--height(默认 1200×780)、--hide-title-bar(仅 macOS)、--hide-window-decorations(仅 Windows 和 Linux)和 --debug。

窗口与系统集成。 支持全屏或最大化启动、窗口置顶、全局唤起快捷键(如 CmdOrControl+Shift+P)、系统托盘、关闭时隐藏、启动到托盘、深色模式、页内查找;--multi-arch 可以在 macOS 上打出同时支持 Intel 和苹果芯片的通用包。

样式和脚本注入。 --inject 可以向页面注入本地 CSS 或 JavaScript,实现样式定制、加快捷键或屏蔽广告,写一次可以复用到多个应用。FAQ 举了一个例子:用一小段脚本让 Hacker News 每 5 分钟在用户没有输入时自动刷新。

隐私与登录选项。 --incognito 以无痕模式启动,不保留 Cookie、本地存储和历史;FAQ 提到微信网页版检测到 WebView 后会持续拦截,加 --incognito 可以解决,代价是每次启动都要重新扫码。--password-autosave 在 Windows 上开启 WebView2 的密码保存,凭据只存在应用自己的配置里。

本地文件打包。 可以把带 index.html 的静态目录或单个 HTML 文件打进应用;支持 hash 路由,暂不支持 history 模式的单页应用路由。目录打包需要 3.15.0 及以上版本。

在线构建。 不想装 Rust 和 Node.js 的话,fork 仓库后在 GitHub Actions 里填表运行 Build App With Pake CLI 即可。文档说首次运行建立缓存约 10 到 15 分钟,之后约 5 分钟;产物保留 3 天。构建平台可选 Windows、macOS 和 Ubuntu 24.04,也可以用 GitHub 命令行 gh run download 加运行编号直接把产物拉到本地。

给 AI 代理用的接口。 加上 --json 之后,命令行在标准输出只打印一个 JSON 结果,包含成功与否、产物路径和错误信息,日志全部改走标准错误输出,交互式提示全部关闭;退出码也有约定:0 表示成功,2 表示输入非法,3 表示构建失败,4 表示环境缺失或依赖安装失败(例如没装 Rust),方便脚本和代理判断下一步;--config 可以读取一个 app.json 文件来声明应用名称、网址、窗口尺寸等配置,仓库提供了对应的 JSON Schema。README 还给出了 Claude Code 和 Codex 的插件安装命令,装好后编程代理可以直接打包网站。

最近一个版本做了什么。 V3.17.6 Clearance(2026-10-17)以修复使用中的问题为主。除了隐藏标题栏时的遮挡问题,它还修复了 macOS 上用中文或日文输入法时按回车选词会把半截消息发出去的问题;内置的样式微调改为只作用于对应网站,不再影响其他页面;Windows 通知恢复系统提示音;Linux 的 deb 和 rpm 包只安装一个启动器;新增 YouTube Music 图标;FAQ 补充了通行密钥和 Touch ID 在 macOS 应用里不可用的说明。

和同类比

Electron 自己写:Electron 应用捆绑 Chromium,渲染在各平台上一致,能调用完整的 Node.js 能力。

Nativefier:「一条命令打包网页」工具,基于 Electron,GitHub 约 3.5 万星,已于 2023 年 9 月 29 日归档、不再维护。

直接用 Tauri:Pake 本身就建立在 Tauri 之上(pake-cli 依赖 @tauri-apps/cli 2.10 系列),Tauri 采用 Apache-2.0 许可证,GitHub 约 11.2 万星。

浏览器的「安装为应用」:Chrome、Edge 等浏览器可以把网站安装成独立窗口。Pake 的 FAQ 也把它列为 Google 登录受阻时的替代方案。它不用装任何东西,登录态和扩展与浏览器共享。

以上工具都免费。

谁在用,适合谁

采用数据(截至 2026-10-25):GitHub 仓库 62,299 星、12,828 个复刻,1 个未关闭的 issue;有 GitHub 账号的贡献者约 91 人(GitHub API,2026-10-25)。npm 上 pake-cli 在 2026-10-16 至 10-22 这一周下载 2,109 次。

适合谁

想把常用网页变成独立窗口的普通用户。官方每个版本都会构建一批现成应用,包括 ChatGPT、Gemini、Grok、DeepSeek、YouTube、YouTube Music、Twitter(X)、Notion、Excalidraw、微信读书、小红书、flomo、李志音乐、ProgramMusic 等,直接下载 Mac、Windows 或 Linux 安装包即可,不用装任何开发环境。

前端开发者和独立开发者。已经有一个网页版工具,想快速给用户一个桌面安装包,Pake 可以把线上网址或本地构建产物(例如 dist 目录)直接打成 .dmg、.msi、.deb、AppImage 或 .rpm。

需要内部工具桌面化的团队。--safe-domain 可以把企业 SSO 跳转(如 Slack 搭配 Okta)留在应用内,--ignore-certificate-errors 适用于内网自签名证书。

用 AI 编程代理做自动化的人。--json 让命令行只输出一个机器可读的 JSON 结果,--config app.json 可以用文件声明应用配置,项目还提供 llms.txt 和 Claude Code、Codex 插件。

不适合谁

需要 Google 账号登录的网站。FAQ 写明 Google 等身份提供方会阻止在嵌入式 WebView 里登录,即使开了新窗口选项也可能失败,这类站点建议用浏览器或官方客户端。

想靠它省内存的人。小的是安装包,不是运行时内存;系统 WebView 加载 Gemini、Slack 这类重型网页,照样占几百 MB。

需要通行密钥或 Touch ID 登录的 Mac 用户。FAQ 说明 macOS 只把这项能力开放给浏览器和与域名绑定的应用,Pake 应用只能用密码加两步验证码。

要做复杂原生功能的产品团队。Pake 本质是网页外壳,需要深度系统集成时,应直接用 Tauri 或其他原生框架开发。

上手路径

不打包也可以:到 README 或官网的现成应用列表里,直接下载 ChatGPT、DeepSeek、微信读书等应用的安装包。

要打包自己的网站,先装命令行:pnpm install -g pake-cli(遇到全局安装权限问题,FAQ 建议用 npx 或 pnpm)。CLI 需要 Node.js 20.9 及以上和 Rust;首次构建会安装 Rust 依赖,耗时较长,之后会快很多。然后运行 pake 加网址、--name 加应用名。Linux 上应用名会被自动转成小写加连字符。打包目标可以用 --targets 指定:Linux 支持 deb、AppImage、rpm 等格式,Windows 支持 x64 和 arm64,macOS 支持 Intel、苹果芯片和通用包,默认输出 dmg。从源码构建则需要 Rust 1.85 及以上,README 推荐 Node.js 22 及以上。

不想装开发环境的话,fork 仓库,在 Actions 页面选择 Build App With Pake CLI,填写网址和应用名后运行,在 Artifacts 里下载安装包。

遇到问题先看 FAQ:Rust 版本过旧(需 1.85 以上)、Linux 缺少 appindicator 库、AppImage 启动崩溃、Windows 首次构建超时或缺少 Visual Studio 构建工具,都有对应的处理办法。网站功能不正常时,可以先试 --user-agent 或 --inject。

定价与许可证

Pake CLI 免费开源,预编译应用也免费下载。官网显示 Mac 和 Windows 桌面版仍在开发中,标注即将推出。作者的收入来源之一是付费 Mac 应用 Mole,与 Pake 本身无关。

许可证在 2026 年 6 月有变化。按提交 2058e49b(2026-06-11)的说明,此前的 MIT 许可证让一些闭源付费的分支直接拿 Pake 的代码去卖,于是项目改为 GPL-3.0,阻止今后出现闭源分支(package.json 和 Cargo.toml 里写的是 GPL-3.0-or-later,即 GPLv3 或任何更高版本);同时附加 Pake Output Exception:用 Pake 或其标准构建流程生成的应用,不会因为包含 Pake 的部分而必须采用 GPL,可以按任意条款分发,包括闭源。这个例外不适用于 Pake 本身或修改过 Pake 源码的版本。改许可证之前发布的版本仍按 MIT:npm 上 3.11.8 及更早的版本是 MIT,从 3.11.9 起是 GPL-3.0-or-later。新增的 TRADEMARK.md 保留了 Pake 名称和图标,基于它做分支产品时,需要换用自己的名字和图标,也不能暗示获得了 Pake 的认可,或用 Pake 的名字推广付费或竞争产品。README 的许可证一节写明:打包出来的应用完全归打包者所有。

风险与局限

第一,依赖系统 WebView。三个平台的内核不同,同一个网站可能表现不一样。FAQ 提到 Linux 上的 WebKitGTK 经常过不了 Cloudflare 人机验证,ChatGPT 这类站点可能一直循环,自定义 User Agent 也没用。

第二,登录受限。Google 登录、通行密钥和 Touch ID 在 Pake 应用里可能用不了;这是提供方和系统的限制。Pake 已经做了一些适配:Sign in with Apple 的弹窗会走原生路径,保证回调能回到原页面;在 macOS 和 Linux 上,其他登录弹窗改为在当前窗口内跳转,因为这两个平台的 WebKit 内核可能因弹窗崩溃或悄悄丢掉弹窗。

第三,内存并不比浏览器省。体积小只是安装包,运行时内存由 WebView 和页面决定。

第四,单人维护。项目由 Tw93 本人维护,版本发布频繁,参数也在持续增加。

我们的判断

Pake 的特点是:用一条命令把网页打包成 macOS、Windows 和 Linux 桌面应用,借用系统 WebView,安装包通常小于 10 MB;官方每个版本提供一批现成应用;支持脚本注入、--json 输出和 GitHub Actions 在线构建。它的限制:Google 登录、通行密钥和 Touch ID 在 Pake 应用里可能用不了,Linux 上的 WebKitGTK 常过不了 Cloudflare 人机验证;运行时内存由 WebView 和页面决定;项目由 Tw93 一人维护。

亮点

Pake 能把任何网页变成一个小巧的桌面应用。Electron 打出来的包动辄上百 MB,Pake 用 Rust 和 Tauri,安装包通常小于 10 MB,还带原生窗口、快捷键和一个看起来就该在那儿的图标。

独立开发者 Tw93 对那些让套壳网页用起来像原生应用的细节近乎执着,仓库里到处是多数人懒得去做的小决定。pake.run 上的 Mac 和 Windows 桌面客户端标注为即将推出。

2026 年 6 月 11 日,Pake 的许可证由 MIT 改为 GPL-3.0-or-later,并附 Pake Output Exception:Pake 自身源码遵循 copyleft,但用它生成的应用可以按任意许可证分发,包括闭源。npm 3.11.8 及更早版本仍为 MIT。

它用 Rust 和 Tauri 把网页变成桌面应用,README 称安装包通常小于 10 MB。

资料来源

官方

  1. tw93/Pake(GitHub)GitHub · 访问于 2026 年 10 月 25 日
  2. Pake 中文 READMEGitHub · 访问于 2026 年 10 月 25 日
  3. Pake LICENSE(GPLv3 全文)GitHub · 访问于 2026 年 10 月 25 日
  4. Pake package.json(license 字段:GPL-3.0-or-later)GitHub · 访问于 2026 年 10 月 25 日
  5. Pake Output ExceptionGitHub · 访问于 2026 年 10 月 25 日
  6. Pake 商标政策(TRADEMARK.md)GitHub · 访问于 2026 年 10 月 25 日
  7. 提交 2058e49b:由 MIT 改为 GPL-3.0 并附加 Output ExceptionGitHub
  8. Pake ReleasesGitHub · 访问于 2026 年 10 月 25 日

动态与深度阅读