
Pake
Turn any webpage into a desktop app with RustOpen source
About Pake
Pake is a command-line tool that turns any web page into a desktop app for macOS, Windows and Linux with one command. Built on Rust and Tauri, it renders pages with the system's own WebView, so installers are usually under 10 MB, whereas Electron apps bundle all of Chromium. It was started and is maintained by independent developer Tw93. Since June 2026 it has been licensed GPL-3.0-or-later, but the apps it produces can be distributed under any license.

What it does
Many web tools people keep open all day, such as ChatGPT, Notion, WeRead or X, can also run as standalone desktop apps: their own window and icon, reachable with Cmd+Tab, not buried among dozens of browser tabs. The usual approach is to wrap them in Electron, but Electron bundles a full copy of Chromium.
Pake uses the Tauri framework and borrows the operating system's WebView instead: WKWebView on macOS, WebView2 on Windows and WebKitGTK on Linux. The README says its installers are nearly 20 times smaller than Electron apps, usually under 10 MB. The site positions it as the successor to the archived Nativefier: the same one-command idea, minus the bundled Chromium.
Beyond putting a page in a window, Pake adds features that bring it closer to a native app: shortcut passthrough, an immersive window (the macOS title bar can be hidden), drag and drop, style tweaks and ad removal. The repo also carries site-specific style fixes. In V3.17.6, for example, the logo and sidebar buttons of ChatGPT, Grok, Gemini and DeepSeek no longer sit under the macOS traffic lights when the title bar is hidden.
Who's behind it: Pake lives under the personal GitHub account tw93. Tw93 is a product engineer and open-source author with a blog at tw93.fun; the GitHub account dates from 2014 and has about 13.6k followers (2026-10-25). Per pake.run, his other work includes the Mac cleaner Mole, the terminal tool Kaku, the Markdown notes app MiaoYan, plus Waza and Kami. There's no company behind the project; the README's support section suggests buying his paid Mac app Mole, or buying cat food for his two cats.
Timeline: the repo was created on 2022-10-14. The pake-cli npm package was created on 2022-11-13, with 1.0.0 on 2022-12-21, 2.0.0 on 2023-04-29 and 3.0.0 on 2024-12-19. In 2026 it reached the 3.17 series: 3.17.0 shipped on September 20 and 3.17.6 on October 17. GitHub Releases carry codenames, such as V3.17.0 Harbor, V3.17.2 Lantern, V3.17.3 Tide, V3.17.5 Compass and V3.17.6 Clearance; 3.17.1 and 3.17.4 were published to npm only, with no GitHub Release.
Turn any website into a lightweight desktop app with one command, on macOS, Windows and Linux.
Key features
One command to package. After installing pake-cli, run pake with a URL and --name; Pake fetches the site icon and builds an installer for the current platform. Common flags include --icon, --width and --height (default 1200x780), --hide-title-bar (macOS only), --hide-window-decorations (Windows and Linux only) and --debug.
Window and system integration. Start full screen or maximized, keep the window on top, set a global activation shortcut (such as CmdOrControl+Shift+P), show a tray icon, hide on close, start to tray, force dark mode or enable find-in-page. --multi-arch builds a universal macOS app for both Intel and Apple silicon.
Style and script injection. --inject adds local CSS or JavaScript to the page for styling, extra shortcuts or ad blocking, and one script can be reused across apps. The FAQ's example is a small script that reloads Hacker News every 5 minutes when the user isn't typing.
Privacy and sign-in options. --incognito starts without keeping cookies, local storage or history. The FAQ notes that WeChat for Web keeps blocking once it detects a WebView, and --incognito fixes that at the cost of scanning a QR code at every launch. --password-autosave turns on WebView2's password saving on Windows, with credentials kept in the app's own profile.
Local files. Pake can package a static folder with an index.html, or a single HTML file. Hash routing works; history-mode SPA routing isn't supported yet. Folder packaging needs version 3.15.0 or later.
Online builds. To skip installing Rust and Node.js, fork the repo, fill in the Build App With Pake CLI workflow form in GitHub Actions and run it. The docs say the first run takes about 10 to 15 minutes to build the cache and later runs about 5; artifacts are kept for 3 days. Builds can run on Windows, macOS or Ubuntu 24.04, and artifacts can be pulled down with gh run download plus the run ID.
An interface for AI agents. With --json, the CLI prints a single JSON result to stdout, covering success, output path and any error, while all logs go to stderr and interactive prompts are disabled. Exit codes are defined too: 0 for success, 2 for invalid input, 3 for a failed build and 4 for a missing environment or failed dependency install (no Rust, say), so scripts and agents can decide what to do next. --config reads an app.json that declares the app name, URL, window size and so on, and the repo ships a JSON Schema for it. The README also gives install commands for Claude Code and Codex plugins, so a coding agent can package a site directly.
What the latest release changed. V3.17.6 Clearance (2026-10-17) is mostly fixes for everyday issues. Besides the hidden-title-bar overlap, it fixed Enter sending half-typed messages when picking words with a Chinese or Japanese input method on macOS; built-in style tweaks now apply only to their own site; Windows notifications play the system sound again; Linux deb and rpm packages install a single launcher; there's a new YouTube Music icon; and the FAQ now notes that passkeys and Touch ID don't work in macOS apps.
How it compares
Writing an Electron app: Electron bundles Chromium, renders identically across platforms and exposes full Node.js capabilities.
Nativefier: a one-command web packager, built on Electron, with about 35k GitHub stars. It was archived on September 29, 2023 and is no longer maintained.
Using Tauri directly: Pake is itself built on Tauri (pake-cli depends on the @tauri-apps/cli 2.10 series). Tauri is Apache-2.0 with about 112k GitHub stars.
The browser's install-as-app: Chrome, Edge and other browsers can install a site as a standalone window, and Pake's own FAQ suggests it when Google sign-in is blocked. Nothing to install, and sign-in state and extensions are shared with the browser.
All of these are free.
Who uses it, and who it's for
Adoption (as of 2026-10-25): the GitHub repo has 62,299 stars, 12,828 forks and 1 open issue, with about 91 contributors who have GitHub accounts (GitHub API, 2026-10-25). pake-cli was downloaded 2,109 times on npm in the week of 2026-10-16 to 10-22.
Who it's for
Everyday users who want frequently used sites in their own windows. Each release builds a set of ready-made apps, including ChatGPT, Gemini, Grok, DeepSeek, YouTube, YouTube Music, Twitter (X), Notion, Excalidraw, WeRead, Xiaohongshu, flomo, LiZhi and ProgramMusic. Download the Mac, Windows or Linux installer; no developer tools needed.
Front-end and indie developers. For those who already have a web tool and want to hand users a desktop installer fast, Pake turns a live URL or a local build (a dist folder, say) into a .dmg, .msi, .deb, AppImage or .rpm.
Teams turning internal tools into desktop apps. --safe-domain keeps enterprise SSO redirects (Slack with Okta, for example) inside the app, and --ignore-certificate-errors handles self-signed certificates on an intranet.
People automating with AI coding agents. --json makes the CLI print exactly one machine-readable JSON result, --config app.json describes an app in a file, and the project ships llms.txt plus plugins for Claude Code and Codex.
Not for
Sites that need Google sign-in. The FAQ says Google and some other identity providers block sign-in inside embedded WebViews, and new-window options may not help; it recommends a browser or the official client for those.
Anyone hoping to save memory. The installer is small, not the runtime. A system WebView loading heavy pages like Gemini or Slack still uses hundreds of MB.
Mac users who rely on passkeys or Touch ID. The FAQ explains that macOS reserves these for browsers and domain-associated apps, so Pake apps need a password and a two-factor code.
Product teams that need rich native features. Pake is essentially a web shell; for deep system integration, build on Tauri or another native framework directly.
Getting started
Packaging isn't required: download a ready-made installer for ChatGPT, DeepSeek, WeRead and others from the README or the site.
To package a site, install the CLI with pnpm install -g pake-cli (if a global install hits permission errors, the FAQ suggests npx or pnpm). The CLI needs Node.js 20.9 or later and Rust. The first build installs Rust dependencies and takes a while; later builds are much faster. Then run pake with a URL and --name with an app name. On Linux, the name is converted to lowercase with hyphens. Use --targets to choose outputs: deb, AppImage, rpm and more on Linux; x64 and arm64 on Windows; Intel, Apple silicon or universal on macOS, with dmg as the default. Building from source needs Rust 1.85 or later, and the README recommends Node.js 22 or later.
Without a dev environment, fork the repo, pick Build App With Pake CLI on the Actions page, enter the URL and app name, run it, and download the installer from Artifacts.
When something breaks, check the FAQ first. It covers an outdated Rust (1.85 or later is required), a missing appindicator library on Linux, AppImages that crash on launch, first-build timeouts on Windows and missing Visual Studio build tools. If a site misbehaves, try --user-agent or --inject.
Pricing & license
Pake CLI is free and open source, and the prebuilt apps are free to download. The site says a Mac and Windows desktop app is still in development and coming soon. One of the author's income sources is his paid Mac app Mole, which is separate from Pake.
The license changed in June 2026. Per commit 2058e49b (2026-06-11), the MIT license had let closed, paid forks ship on top of Pake's code, so the project moved to the GPL to block closed-source forks going forward; package.json and Cargo.toml declare GPL-3.0-or-later, meaning version 3 or any later version. It also added the Pake Output Exception: apps generated with Pake or its standard build process don't become subject to the GPL just because they include parts of Pake, and they can be distributed on any terms, including proprietary ones. The exception doesn't cover Pake itself or modified versions of its source. Releases from before the change stay under MIT: on npm, 3.11.8 and earlier are MIT, and 3.11.9 onward is GPL-3.0-or-later. A new TRADEMARK.md reserves the Pake name and logo, so a fork released as a product needs its own name and icon, can't imply Pake's endorsement, and can't use the Pake name to market paid or competing products. The README's license section states that the apps built with it belong entirely to whoever builds them.
Risks & limits
First, it depends on the system WebView. The engine differs on each platform, so the same site can behave differently. The FAQ notes that WebKitGTK on Linux often fails Cloudflare bot checks, so sites like ChatGPT can loop forever, and a custom user agent doesn't help.
Second, sign-in limits. Google sign-in, passkeys and Touch ID may not work in Pake apps. These are provider and OS restrictions. Pake has some adaptations: Sign in with Apple popups take the native path so the callback returns to the original page, and on macOS and Linux other sign-in popups navigate in the current window, because WebKit on those platforms may crash on popups or silently drop them.
Third, it doesn't save memory compared with a browser. Only the installer is small; runtime memory depends on the WebView and the page.
Fourth, a single maintainer. Tw93 maintains the project himself, releases are frequent and flags keep growing.
Our verdict
What sets Pake apart: one command packages a web page into a desktop app for macOS, Windows and Linux using the system WebView, with installers usually under 10 MB; each release ships a set of ready-made apps; and it supports script injection, --json output and online builds in GitHub Actions. Its limits: Google sign-in, passkeys and Touch ID may not work in Pake apps, and WebKitGTK on Linux often fails Cloudflare bot checks; runtime memory depends on the WebView and the page; and Tw93 maintains it alone.
Why it stands out
Pake turns any web page into a small desktop app. Where Electron produces a hundred-megabyte bundle, Pake uses Rust and Tauri, and its README says the installer is typically under 10 MB, with a native window, shortcuts, and an icon that looks like it belongs.
Tw93, an independent developer, built it with an obsessive eye for the details that make a wrapped web app feel native, and the repository is full of small decisions that most people would not bother to make. Pake.run lists a Mac and Windows desktop app as coming soon.
On 2026-06-11 Pake moved from MIT to GPL-3.0-or-later with the Pake Output Exception: Pake's own source stays copyleft, but the apps you build with it can be distributed under any license, including closed source. Releases up to npm 3.11.8 remain MIT.
It turns a web page into a desktop app with Rust and Tauri, and its README says the installer is typically under 10 MB.
Sources
Official
- tw93/Pake (GitHub) · Accessed Oct 25, 2026
- Pake/README.md at main · tw93/Pake · GitHub · Accessed Oct 25, 2026
- Pake/LICENSE at main · tw93/Pake · Accessed Oct 25, 2026
- Pake/package.json at main · tw93/Pake · Accessed Oct 25, 2026
- Pake Output Exception · Accessed Oct 25, 2026
- Pake/TRADEMARK.md at main · tw93/Pake · Accessed Oct 25, 2026
- chore: relicense from MIT to GPL-3.0 with a Pake Output Exception · tw93/Pake@2058e49
- Pake Releases · Accessed Oct 25, 2026
- Release V3.17.6 Clearance · tw93/Pake
- Pake/docs/cli-usage.md at main · tw93/Pake · GitHub · Accessed Oct 25, 2026
- Pake/docs/advanced-usage.md at main · tw93/Pake · GitHub · Accessed Oct 25, 2026
- Pake/docs/github-actions-usage.md at main · tw93/Pake · GitHub · Accessed Oct 25, 2026
- Pake/docs/faq.md at main · tw93/Pake · GitHub · Accessed Oct 25, 2026
- Pake · Turn any website into a desktop app · Accessed Oct 25, 2026
- tw93 (GitHub) · Accessed Oct 25, 2026
- Tw93 · Product Engineering, AI Coding, and Open Source · Accessed Oct 25, 2026
Related products
- npm downloads API: pake-cli, last week (2026-10-16 to 2026-10-22) · Accessed Oct 25, 2026
- Mole · Native Mac Cleaner, App Manager, and System Monitor · Accessed Oct 25, 2026
- nativefier/nativefier (GitHub) · Accessed Oct 25, 2026
- tauri-apps/tauri (GitHub) · Accessed Oct 25, 2026
Data
- GitHub API: tw93/Pake contributors (anon=0) · Accessed Oct 25, 2026
- pake-cli - npm · Accessed Oct 25, 2026