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
1 — 概要

Web アプリをデスクトップ化したいが、Electron ベースのラッパーはバンドルサイズとメモリ消費が大きい。Pake は Tauri の軽量 WebView シェルに URL を載せ、ショートカット・没入型ウィンドウ・広告除去などの実用機能を注入スクリプトで足す。

利用者は3 つの入口から選べる: Releases の事前ビルド済みアプリ、pake-cli のローカル打包、GitHub Actions によるクラウドビルド。

初回ビルド: Rust 環境のセットアップを含むため時間がかかる。2 回目以降はキャッシュにより短縮される。環境構築を避けたい場合は Releases ダウンロードか GitHub Actions を使う。
2 — 特徴
観点Pake (Tauri)典型的な Electron ラッパー
バンドルサイズ~5 MB 前後数十〜100 MB 超が一般的
ランタイムOS ネイティブ WebView + RustChromium + Node.js 同梱
メモリ低め(README 記載)Chromium 分だけ重い
カスタムCLI オプション + inject JS/CSSpreload / BrowserWindow 設定
配布形式DMG / MSI / deb / AppImage 等プラットフォーム依存

組み込み機能(抜粋)

  • キーボードショートカット(戻る / 進む / リロード / ズーム / URL コピー等)
  • 没入型タイトルバー(--hide-title-bar、macOS)
  • システムトレイ、ドラッグ&ドロップ、広告除去用スタイル注入
  • ダブルクリックでフルスクリーン、macOS ジェスチャ対応
3 — 利用経路
A
Releases から入手
ChatGPT・YouTube・Twitter 等、人気サイト向けのビルド済み DMG / MSI / deb を Releases から直接ダウンロード。環境不要。
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
4 — 構成
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 へ直接インストールも可能。
5 — CLI オプション

完全な一覧は 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開発者ツール有効フラグのみ
--installmacOS で /Applications へインストールフラグのみ
--targetsLinux 出力形式(deb 等)--targets deb

前提環境

  • Node.js ≥18(推奨 ≥22)
  • Rust ≥1.85(未インストール時は CLI がインストールを提案)
  • macOS / Linux: curl, wget, file, tar
6 — 開発

前提: 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内容
devtauri dev — ホットリロード開発
buildtauri build — リリースビルド
cli:buildrollup で dist/cli.js を生成
testCLI ビルド後に統合テスト実行
release:checkバージョン・format・vitest・npm pack 検証
スタイルカスタム: inject スクリプトや advanced-usage ドキュメントで CSS 注入・コンテナ通信などの拡張が可能。Fork して独自プロダクト化する場合は別名とクレジット表記が推奨される(TRADEMARK.md)。
7 — ライセンス

Pake 本体は GPL-3.0-or-later。LICENSE-EXCEPTION により、Pake でビルドしたアプリの利用・配布は利用者の権利として扱われる。

対象ライセンス備考
Pake ソース・CLIGPL-3.0Fork して製品化する場合は別名推奨
ビルド成果物(各アプリ)利用者所有LICENSE-EXCEPTION 参照
Releases 配布アプリ各アプリの利用規約に従うWeb コンテンツ側の ToS も別途確認