Pake does one small thing and does it cleanly: it takes a URL and hands you back a native-feeling desktop app for macOS, Windows, and Linux. pake https://github.com --name GitHub and you have a GitHub.app. It has been one of the most-starred Chinese developer projects on GitHub for years (created October 2022, past 52,000 stars as of 2026-06), and it keeps trending because the pitch stays relevant: people want their daily web tools to live in the dock with a keyboard shortcut, without Electron’s bulk.
What it really is
Under the hood Pake is a thin, opinionated layer over Tauri, the Rust framework that uses your operating system’s built-in webview instead of bundling Chromium. That is the whole reason the output is small. The project says a Pake bundle is typically around 5MB, roughly 20 times smaller than the equivalent Electron app, because there is no shipped browser engine inside it.
Knowing it is a Tauri webview wrapper tells you most of what you need to decide whether it fits. The “app” you get is the website, loaded in the system webview, plus a set of conveniences Pake adds on top: global shortcuts, an immersive title bar, drag and drop, basic style and ad injection, and zoom controls. If the site is a good single-page web app, the result is genuinely pleasant. If you need real offline behavior, deep OS integration, or logic that does not exist on the page, you are past what a wrapper can give you and into building a proper Tauri or native app.
Three ways to use it
The README points different users at different paths, and they really are different in effort:
- Pre-built apps. The releases page ships ready-made bundles for ChatGPT, Gemini, Grok, DeepSeek, WeRead, Excalidraw, YouTube Music, and more. Zero setup, just download.
- The CLI. For your own sites:
pnpm install -g pake-cli
pake https://github.com --name GitHub
# with options
pake https://weekly.tw93.fun --name Weekly --icon https://cdn.tw93.fun/pake/weekly.icns --width 1200 --height 800 --hide-title-bar
The first build is slow because it sets up the toolchain; later builds are quick. Icons are fetched automatically when you do not pass one.
- GitHub Actions online build. If you do not want a local Rust toolchain at all, the project documents an Actions workflow that builds the app in CI and hands you the artifacts. This is the path most people miss, and it is the easiest one for a non-developer.
For local development of Pake itself you need Rust >=1.85 and Node >=22, then pnpm i && pnpm run dev.
The license detail people actually search for
Pake is GPL-3.0, which usually scares off commercial users. The important nuance, easy to miss in the README, is the Pake Output Exception: apps you build with Pake are yours to use and distribute freely, so the copyleft applies to Pake’s own source rather than reaching into the apps you package. If you fork Pake into your own product, the author asks that you rename it and credit Pake. So packaging your company’s web tool into a desktop app with the CLI is fine; shipping a renamed clone of Pake itself is where the GPL obligations bite.
Gotchas worth knowing
The issue tracker is small and well-managed (only a handful open at any time, which itself says something about the maintenance), but two things recur.
On Windows, building from source can fail with a linker error (LNK1104) caused by the OS path-length limit when the project sits in a deeply nested directory. The fix is to build from a short path near the drive root, or enable long-path support. If your CI or local build dies at the link step on Windows, this is usually why.
The other is documentation drift on CLI options: the help output and the docs do not always list every flag, so when a parameter you expect is missing, check the source or recent releases rather than assuming it was removed.
Alternatives
| Tool | What it is | When to pick it |
|---|---|---|
| Pake | Tauri-based one-command webpage wrapper | Quick, tiny desktop wrapper for a web app you use daily |
| Tauri | The Rust framework underneath Pake | You need real native code, plugins, or offline logic |
| Electron | Chromium-bundled app framework | You need full control and accept the size and memory cost |
| PWA install | Browser-native install of a web app | The site already ships a good PWA and you want zero tooling |
There are no exact peers for Pake in this library because it sits in a narrow niche, but if you like small Rust tooling, see other Rust projects below.
FAQ
Is Pake free? Yes, it is open source under GPL-3.0. Thanks to the Pake Output Exception, the apps you build with it are entirely yours to use and distribute; the GPL covers Pake’s own source.
How is Pake different from Electron? Pake uses Tauri, which relies on the system webview instead of bundling Chromium, so bundles are tiny (the project cites around 5MB, roughly 20x smaller). The cost is that you depend on the OS webview and get a wrapped website, so Electron still wins when you need a fully controlled, self-contained runtime.
Can I package any website without installing anything? Yes. Use the documented GitHub Actions online build, which compiles the app in CI and gives you the installers, so no local Rust or Node toolchain is required.
Why does my Windows build fail with LNK1104? That is the Windows path-length limit hitting the linker on a deeply nested project. Build from a short path near the drive root or turn on long-path support.
Does the app work offline? Only as far as the website itself works offline. Pake loads the live page in a webview, so a site with no offline support stays online-only inside the app.
Related
- apple/container and tursodatabase/turso for other notable Rust projects
- More on the Rust topic page