## 特性
- 🎐 **體積小巧**:安裝包比 Electron 應用小近 20 倍,通常小於 10 MB,是 Nativefier 這類 Electron 套殼工具更輕的替代
- 🚀 **效能優異**:基於 Rust Tauri,比傳統 JS 框架更快,記憶體占用更少
- ⚡ **使用簡單**:命令列一行打包,或線上建置,無需繁瑣設定
- 📦 **功能豐富**:支援快捷鍵透傳、沉浸式視窗、拖曳、樣式自訂、去除廣告
## 快速開始
- **新手用戶**:直接下載現成的 [常用包](#常用包下載),或透過 [線上建置](docs/github-actions-usage_CN.md) 無需環境設定即可打包
- **開發者**:安裝 [CLI 工具](docs/cli-usage_CN.md) 後一行命令打包任意網站,支援自訂圖示、視窗等參數
- **進階用戶**:本機複製專案進行 [自訂開發](#自訂開發),或查看 [進階用法](docs/advanced-usage_CN.md) 實現樣式自訂、功能擴充
- **遇到問題**:查看 [常見問題](docs/faq_CN.md) 排查故障與使用疑問
## 常用包下載
🏂 更多應用可去 Release 下載,點選展開快捷鍵說明
| Mac | Windows/Linux | 功能 |
| --------------------------------------------------------- | --------------------------------------------------- | -------------------- |
| ⌘ + [ | Ctrl + [ | 返回上一頁 |
| ⌘ + ] | Ctrl + ] | 前進到下一頁 |
| ⌘ + ↑ | Ctrl + ↑ | 自動捲動到頁面頂端 |
| ⌘ + ↓ | Ctrl + ↓ | 自動捲動到頁面底部 |
| ⌘ + R | Ctrl + R | 重新整理頁面 |
| ⌘ + W | Ctrl + W | 隱藏視窗(非退出) |
| ⌘ + - | Ctrl + - | 縮小頁面 |
| ⌘ + = | Ctrl + = | 放大頁面 |
| ⌘ + 0 | Ctrl + 0 | 重設頁面縮放 |
| ⌘ + L | Ctrl + L | 複製目前頁面網址 |
| ⌘ + ⇧ + ⌥ + V | Ctrl + Shift + V | 貼上並符合樣式 |
| ⌘ + ⇧ + H | Ctrl + Shift + H | 回到首頁 |
| ⌘ + ⌥ + I | Ctrl + Shift + I | 開啟偵錯(僅開發版) |
| ⌘ + ⇧ + ⌫ | Ctrl + Shift + Del | 清除快取並重啟 |
| ⌃ + ⌘ + F | F11 | 切換原生全螢幕 |
雙擊標題列可以切換全螢幕,Windows 與 Linux 加上 `--hide-window-decorations` 會得到頂部具拖曳區域的無邊框視窗,Mac 支援手勢滑動返回與前進,也可以拖曳標題列移動視窗,選單列裡也有導覽、縮放與視窗控制等選項。
## 命令列一行打包

```bash
# 安裝 Pake CLI
pnpm install -g pake-cli
# 基本用法,自動取得網站圖示
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
```
首次打包需要準備建置環境,耗時會稍長一些,後續打包會很快。完整參數說明查看 [CLI 使用指南](docs/cli-usage_CN.md),不想用命令列可以試試 [GitHub Actions 線上建置](docs/github-actions-usage_CN.md)。
在腳本或 AI agent 裡使用 Pake 時,加上 `--json` 取得機器可讀結果,使用 `--config app.json` 宣告式描述應用([schema](schema/pake.schema.json)),本機建置產物可直接 `pake ./dist --name MyTool` 打包,完整 agent 契約見 [llms.txt](llms.txt),官方 skill 這樣安裝:
```text
# Claude Code
/plugin marketplace add tw93/Pake
/plugin install pake@pake
# Codex
codex plugin marketplace add tw93/Pake
codex plugin add pake@pake
```
把下面這段複製給你的 AI agent 即可開始:
```text
用 Pake(npm i -g pake-cli)把網頁打包成桌面應用。先閱讀 https://unpkg.com/pake-cli@latest/llms.txt,執行 pake 時始終加上 --json 並把 stdout 解析為單個 JSON 物件。把 打包成名為 的應用。
```
## 自訂開發
需要 Rust `>=1.85` 與 Node `>=22`(推薦 LTS,較舊的 `>=20.9` 也能用),詳細安裝指南參考 [Tauri 文件](https://v2.tauri.app/start/prerequisites/),不熟悉開發環境的話可以直接使用命令列工具。
```bash
# 安裝相依套件
pnpm i
# 本機開發[右鍵可開啟偵錯模式]
pnpm run dev
# 打包應用
pnpm run build
```
想要樣式自訂、功能擴充、容器通訊等進階玩法,查看 [進階用法文件](docs/advanced-usage_CN.md)。
## 開發者
Pake 的發展離不開這些優秀的貢獻者 ❤️
## 支持
- 購買我做的 Mac 清理應用 [Mole for Mac](https://mole.fit),是對我最直接的支持
- 如果你喜歡 Pake,可以在 GitHub 給一顆 Star,[推薦](https://twitter.com/intent/tweet?url=https://github.com/tw93/Pake&text=Pake%20-%20一個指令把任意網頁打包成桌面應用,支援%20macOS、Windows%20與%20Linux) 給志同道合的朋友,遇到問題或發現適合做成桌面 App 的網頁,也歡迎提 issue 和 PR
- 我養了兩隻貓,一隻叫湯圓,一隻叫可樂,如果 Pake 讓你的生活更美好,可以給她們餵罐頭 🥩
這些可愛的朋友已經贊助過 🐱
## 開源授權
Pake 使用 GPL-3.0 條款開源,詳見 [LICENSE](./LICENSE) 與 [Pake Output Exception](./LICENSE-EXCEPTION);用 Pake 打包生成的應用所有權完全歸你,可以自由使用和發布。如果你想基於 fork 重新做一個 Pake 產品,為了避免誤解,辛苦換一個名稱並註明出處。