ByteNoteByteNote

字节笔记本

2026年8月29日

Pake 把网页打成桌面应用,顺带备忘清单 reference

API中转
¥120

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:

bash
pnpm install -g pake-cli
# 或 npm install -g pake-cli

国内网络慢时,可以开中国镜像:

bash
export PAKE_USE_CN_MIRROR=1

CLI 用法中文文档:cli-usage_CN.md,FAQ:faq_CN.md

环境就绪后,建议先用一个不需要登录的页面试打,比如 GitHub 或 reference,确认本机工具链没问题,再去打带 OAuth 的站点。第一次编译会拉依赖,耗时比后续长一点属于正常。

最简用法

一行把 GitHub 打成桌面应用:

bash
pake https://github.com --name GitHub

带图标、尺寸、隐藏标题栏的例子(作者自己的周刊):

bash
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 模式:

bash
pake ./dist --name MyTool

不想把参数全写在命令行,可以用配置文件(字段 camelCase,必须带 url):

bash
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:

bash
/plugin marketplace add tw93/Pake
/plugin install pake@pake

Releases 里还有现成的预构建包: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 打成置顶备忘窗

referencejaywcjlove/reference 维护的开发者速查清单:Git、Docker、正则、各种编辑器快捷键都有。网页本身已经很好用,打成桌面小窗后,写代码时翻起来更顺手。常见条目覆盖面很广:从 Git 到 Docker、从正则到各种 IDE 快捷键,适合当第二块屏上的常驻速查,而不是再收藏一堆零散网页。

适合加上置顶和页内搜索:

bash
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」更高。

分享: