字节笔记本
2026年8月29日
Pake 把网页打成桌面应用,顺带备忘清单 reference
Pake 干的事很直接:用系统自带的 WebView,把一个网页(或本地静态站)打成 macOS / Windows / Linux 桌面应用。安装包体积通常不到 10MB,大约是同类 Electron 包的二十分之一。仓库在 tw93/Pake,Rust + Tauri,GPL-3.0;打出来的应用归打包的人。和 Electron 自己塞 Chromium 不同,它复用系统 WebView,所以安装包能压得很小。
下面按「先装 CLI、再打一个应用、再碰常见坑」走一遍。顺带提一下 jaywcjlove/reference:开发者备忘清单站点,很适合用 Pake 打成置顶小窗。
先装环境
Pake CLI 需要:
- Node.js ≥22(≥20 多数情况也能跑)
- Rust ≥1.85(遇到
edition2024报错,先rustup update stable)
全局装 CLI:
pnpm install -g pake-cli
# 或 npm install -g pake-cli国内网络慢时,可以开中国镜像:
export PAKE_USE_CN_MIRROR=1CLI 用法中文文档:cli-usage_CN.md,FAQ:faq_CN.md。
环境就绪后,建议先用一个不需要登录的页面试打,比如 GitHub 或 reference,确认本机工具链没问题,再去打带 OAuth 的站点。第一次编译会拉依赖,耗时比后续长一点属于正常。
最简用法
一行把 GitHub 打成桌面应用:
pake https://github.com --name GitHub带图标、尺寸、隐藏标题栏的例子(作者自己的周刊):
pake https://weekly.tw93.fun \
--name Weekly \
--icon https://cdn.tw93.fun/pake/weekly.icns \
--width 1200 \
--height 800 \
--hide-title-bar本地静态站也可以打。根目录要有 index.html,路由只适合 hash 模式:
pake ./dist --name MyTool不想把参数全写在命令行,可以用配置文件(字段 camelCase,必须带 url):
pake --config app.json字段 schema 在 pake.schema.json。给 Agent 用时可以加 --json;仓库根还有 llms.txt。
打多平台时注意:本机一般只出当前系统的包。要一次出 macOS / Windows / Linux,更省事的是走 GitHub Actions。配置文件里的字段名用 camelCase,和 schema 对齐即可,别写成 snake_case。
不想本机装 Rust:GitHub Actions / Docker
Fork 仓库后,用工作流 Build App With Pake CLI 就能在云端出安装包。步骤写在 github-actions-usage_CN.md。
也可以用官方镜像 ghcr.io/tw93/pake,需要 FUSE / privileged,适合 CI 或本机不想装整套 Rust 工具链的时候。
Claude Code 用户可以直接装 skill:
/plugin marketplace add tw93/Pake
/plugin install pake@pakeReleases 里还有现成的预构建包:ChatGPT、Grok、Gemini、YouTube、Excalidraw、Notion 等,想先试用再自己打,可以先下这些。
Pake 本体是 GPL-3.0,你打出来的应用版权归打包者。把别人的站点打成桌面端,还是要看对方服务条款,别拿去当商业产品卖。
登录和 SSO 的坑
嵌入式 WebView 和浏览器行为不完全一样,登录类站点最容易踩:
- Google OAuth 在嵌入 WebView 里经常被拦,没通用绕过办法。
- 其他 SSO 可以试
--new-window或--safe-domain。 - 微信相关页面常见要加
--incognito。 - Cloudflare 在 Linux 的 WebKitGTK 上循环校验,目前绕不过。
如果某个站点登录后一直白屏或跳转循环,先在系统浏览器里确认账号本身正常,再逐个试 --safe-domain、--new-window;还不行就只能换预构建包或继续用浏览器。
快捷键也和浏览器略有差别,比如 macOS 上 Cmd+[ 后退,Cmd+w 是隐藏窗口而不是退出。完整列表看 FAQ。
再补一个体积误解:宣传里的「大约 5MB」指的是磁盘上的安装包大小,不是内存占用。系统 WebView 跑重型 SPA 时,进程照样会吃到几百 MB 内存。
顺带:把 reference 打成置顶备忘窗
reference 是 jaywcjlove/reference 维护的开发者速查清单:Git、Docker、正则、各种编辑器快捷键都有。网页本身已经很好用,打成桌面小窗后,写代码时翻起来更顺手。常见条目覆盖面很广:从 Git 到 Docker、从正则到各种 IDE 快捷键,适合当第二块屏上的常驻速查,而不是再收藏一堆零散网页。
适合加上置顶和页内搜索:
pake https://wangchujiang.com/reference/ \
--name Reference \
--always-on-top \
--enable-find \
--width 900 \
--height 700日常查命令、快捷键时把它钉在一角,比再开一个浏览器标签少一层切换。
实践里我们更常把内部文档站、监控面板、或者像 reference 这类速查页打成独立窗口:不用和浏览器标签混在一起,也不用为了一个页面拆 Electron 的几百 MB。需要置顶时加 --always-on-top,需要页内搜索时加 --enable-find,大多数工具页这两个就够用。
小结
本机有 Node + 较新的 Rust,就用 pake-cli 一行出包;不想装工具链,走 GitHub Actions 或 ghcr.io/tw93/pake。登录类站点先看 FAQ 里的 SSO 说明,别一上来就怪打包失败。想先感受效果,Releases 预构建包够用;备忘清单类站点(比如 reference)用 --always-on-top 打成小窗,实用度往往比「再包一个 ChatGPT」更高。