Pake
tw93/Pake — Rust Tauri で Web ページを macOS / Windows / Linux 向けデスクトップアプリに変換する CLI と配布エコシステム。
プロジェクト概要
Pake は、任意の URL またはローカル HTML を 1 コマンドでネイティブアプリにパッケージするツール。Electron 系と比べて体積が小さく、Rust + Tauri v2 をシェルに採用する。
~5 MB
典型サイズ
Tauri 2
Rust シェル
3 OS
mac / win / linux
pake-cli
npm グローバル CLI
解決する課題
Web アプリをデスクトップ化したいが、Electron ベースのラッパーはバンドルサイズとメモリ消費が大きい。Pake は Tauri の軽量 WebView シェルに URL を載せ、ショートカット・没入型ウィンドウ・広告除去などの実用機能を注入スクリプトで足す。
利用者は3 つの入口から選べる: Releases の事前ビルド済みアプリ、pake-cli のローカル打包、GitHub Actions によるクラウドビルド。
初回ビルド: Rust 環境のセットアップを含むため時間がかかる。2 回目以降はキャッシュにより短縮される。環境構築を避けたい場合は Releases ダウンロードか GitHub Actions を使う。
Electron との比較
| 観点 | Pake (Tauri) | 典型的な Electron ラッパー |
|---|---|---|
| バンドルサイズ | ~5 MB 前後 | 数十〜100 MB 超が一般的 |
| ランタイム | OS ネイティブ WebView + Rust | Chromium + Node.js 同梱 |
| メモリ | 低め(README 記載) | Chromium 分だけ重い |
| カスタム | CLI オプション + inject JS/CSS | preload / BrowserWindow 設定 |
| 配布形式 | DMG / MSI / deb / AppImage 等 | プラットフォーム依存 |
組み込み機能(抜粋)
- キーボードショートカット(戻る / 進む / リロード / ズーム / URL コピー等)
- 没入型タイトルバー(
--hide-title-bar、macOS) - システムトレイ、ドラッグ&ドロップ、広告除去用スタイル注入
- ダブルクリックでフルスクリーン、macOS ジェスチャ対応
3 つの入口
B
pake-cli(ローカル)
任意 URL を自分でパッケージ。アイコン自動取得、ウィンドウサイズ、デバッグモード等を CLI フラグで指定。
C
GitHub Actions
リポジトリを Fork し
Build App With Pake CLI ワークフローを実行。Artifacts から成果物を取得。初回 10–15 分、以降 ~5 分。D
ソースから開発
Rust ≥1.85 と Node ≥22(≥18 も可)で clone し
pnpm dev / pnpm build。inject スクリプトや Tauri 設定を直接編集する上級者向け。CLI クイックスタート
bash
# グローバルインストール(pnpm 推奨)
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
ビルドパイプライン
flowchart TD
subgraph cli["bin/ — Node CLI (pake-cli)"]
ENTRY[cli.ts
commander]
OPT[options/index.ts
フラグ正規化]
PROV[BuilderProvider]
end
subgraph builders["builders/ — OS 別"]
MAC[MacBuilder]
WIN[WinBuilder]
LIN[LinuxBuilder]
BASE[BaseBuilder
prepare / build]
end
subgraph tauri["src-tauri/ — Tauri v2"]
CONF[tauri.conf.json
+ プラットフォーム別 overlay]
INJ[inject/*.js
event / style / auth …]
CARGO[Cargo / Rust]
end
OUT[成果物
DMG / MSI / deb / AppImage]
ENTRY --> OPT --> PROV
PROV -->|darwin| MAC
PROV -->|win32| WIN
PROV -->|linux| LIN
MAC --> BASE
WIN --> BASE
LIN --> BASE
BASE --> CONF
BASE --> INJ
BASE --> CARGO
CARGO --> OUT
主要ディレクトリ
bin/cli.tsエントリ。URL とオプションを受け取り Builder を起動
bin/builders/MacBuilder / WinBuilder / LinuxBuilder のファクトリ
bin/options/CLI フラグのパースとデフォルト値
src-tauri/Tauri 設定・Rust コード・アイコン資産
src-tauri/src/inject/WebView へ注入する JS(ショートカット・スタイル等)
action.ymlGitHub Action 用メタデータ
docs/CLI / FAQ / GitHub Actions ガイド
dist/cli.jsnpm 公開バンドル(rollup ビルド)
default_app_list.json人気アプリ一覧メタ
macOS 出力: デフォルトは DMG。テスト用
.app は PAKE_CREATE_APP=1。--install で /Applications へ直接インストールも可能。
よく使うフラグ
完全な一覧は docs/cli-usage.md を参照。
| オプション | 説明 | 例 |
|---|---|---|
--name | アプリ名(未指定時はプロンプト) | --name "Weekly" |
--icon | カスタムアイコン(省略時はサイトから取得) | --icon https://…/app.icns |
--width / --height | ウィンドウサイズ(既定 1200×780) | --width 1400 |
--hide-title-bar | 没入型ヘッダー(macOS のみ) | フラグのみ |
--show-system-tray | システムトレイ常駐 | フラグのみ |
--debug | 開発者ツール有効 | フラグのみ |
--install | macOS で /Applications へインストール | フラグのみ |
--targets | Linux 出力形式(deb 等) | --targets deb |
前提環境
- Node.js ≥18(推奨 ≥22)
- Rust ≥1.85(未インストール時は CLI がインストールを提案)
- macOS / Linux:
curl,wget,file,tar
ローカル開発
前提: Rust ≥1.85、Node ≥22(LTS 推奨)。詳細は Tauri Prerequisites。
bash
git clone https://github.com/tw93/Pake
cd Pake
pnpm i
# 開発(右クリックでデバッグモード)
pnpm run dev
# 本番ビルド
pnpm run build
npm scripts(抜粋)
| script | 内容 |
|---|---|
dev | tauri dev — ホットリロード開発 |
build | tauri build — リリースビルド |
cli:build | rollup で dist/cli.js を生成 |
test | CLI ビルド後に統合テスト実行 |
release:check | バージョン・format・vitest・npm pack 検証 |
スタイルカスタム: inject スクリプトや advanced-usage ドキュメントで CSS 注入・コンテナ通信などの拡張が可能。Fork して独自プロダクト化する場合は別名とクレジット表記が推奨される(TRADEMARK.md)。
GPL と出力物
Pake 本体は GPL-3.0-or-later。LICENSE-EXCEPTION により、Pake でビルドしたアプリの利用・配布は利用者の権利として扱われる。
| 対象 | ライセンス | 備考 |
|---|---|---|
| Pake ソース・CLI | GPL-3.0 | Fork して製品化する場合は別名推奨 |
| ビルド成果物(各アプリ) | 利用者所有 | LICENSE-EXCEPTION 参照 |
| Releases 配布アプリ | 各アプリの利用規約に従う | Web コンテンツ側の ToS も別途確認 |
公式・関連
- GitHub: tw93/Pake — ソースリポジトリ
- Releases — 人気アプリのビルド済みパッケージ
- CLI Usage Guide
- GitHub Actions Usage
- Advanced Usage
- FAQ
- npm: pake-cli