Pakeのリリースに必要なバージョン更新、テスト、公開、公開後の検証を進めるスキル。通常リリースとnpm限定の修正公開、それぞれの手順を扱います。
- Pakeの通常リリースを準備したいとき
- CLIの修正をnpmだけに公開したいとき
- 利用者向けのリリースノート作成
WebサイトやローカルのHTMLをPakeでデスクトップアプリにまとめるスキル。名前、アイコン、アプリ識別子、プロキシの設定からビルド結果の確認まで扱います。
Package a website or local web build as a desktop app with Pake. Use for packaging, CLI options, icons, bundle identifiers, or WebView proxy setup. Not for unrelated Tauri development or uninstalling apps.
WebサイトのURL、静的ファイルのフォルダ、単一のHTMLファイルを、Pakeでデスクトップアプリにまとめます。アプリ名、アイコン、アプリを区別する識別子、画面設定、プロキシなどを整理し、コマンドや設定ファイルに反映します。ビルド後はJSON形式の結果から生成物の保存先や警告を確認します。
よく使うWebサイトを独立したアプリとして使いたいときや、AIで作ったローカルのWeb画面を配布用にまとめたいときに向いています。アイコンを指定したい場合や、アプリ内のWeb表示にプロキシを設定したい場合にも使えます。
./distをPakeでまとめて、生成されたファイルの場所を教えて」app.jsonにまとめて」pake-cliと、Rustなどのビルド依存環境が必要です。ローカルフォルダには直下のindex.htmlが必要で、履歴モードのSPAルーティングには未対応です。Chrome拡張機能は使えず、一部の認証サービスはログインを拒否する場合があります。プロキシ設定はビルド時に固定され、アイコン取得には適用されません。macOSのプロキシ対応はmacOS 14以降です。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Pake wraps any webpage or local web build into a native desktop app via Tauri (Rust + system WebView).
"name": "pake-cli"): build once with pnpm run cli:build, then use node dist/cli.js.npm install -g pake-cli and run pake, or run without installing via npx pake-cli.All examples below use pake; substitute node dist/cli.js inside a checkout.
Pass --json on every automated run: logs move to stderr and stdout carries exactly one JSON result object.
pake "https://example.com" --name MyApp --json
# stdout -> {"ok":true,"name":"MyApp","platform":"darwin","arch":"arm64",
# "outputs":[{"path":"/abs/MyApp.dmg","sizeBytes":5242880,"format":"dmg"}],
# "warnings":[],"error":null}
--json (and any non-TTY stdin) disables every interactive prompt.
Exit codes: 0 success, 2 invalid input, 3 build failure, 4 missing environment or dependency setup failure, 1 unexpected. On failure error carries {code, message, hint}:
error.code | What to do |
|---|---|
INVALID_INPUT | Fix the flag, name, or config field named in message; hint states the accepted form |
ENV_MISSING | Environment setup needed (usually Rust); relay hint to the user, or install and rerun |
BUILD_FAILED | Rerun once with --debug for verbose logs; check platform notes below before changing anything |
NETWORK | Reserved, not emitted today; network failures arrive as ENV_MISSING or BUILD_FAILED instead |
UNEXPECTED | Report the message upstream; do not loop on retries |
On success, report outputs[].path to the user; that is the installer/bundle they need. On Linux multi-target builds, ok: true can carry fewer outputs than requested formats (failed targets land in warnings); check outputs[].format before declaring all formats built.
cat > app.json <<'EOF'
{
"$schema": "https://raw.githubusercontent.com/tw93/Pake/main/schema/pake.schema.json",
"url": "https://example.com",
"name": "MyApp",
"width": 1280,
"hideTitleBar": true
}
EOF
pake --config app.json --json
Fields are the camelCase CLI option names plus url; an explicit CLI flag wins over a config field. Unknown fields and wrong types fail fast with INVALID_INPUT.
For the full option list, run pake --help or read the schema above. Do not guess option names; the schema is the source of truth. Complete reference: https://github.com/tw93/Pake/blob/main/docs/cli-usage.md
Pake packages local web artifacts, not just URLs:
# A directory of static files (must contain index.html at its root)
pake ./dist --name MyTool --json
# A single HTML file
pake ./page.html --name MyPage --json
Hash-based routing works out of the box; history-mode SPA routing is not yet supported for local packaging.
Use the supplied requirements and existing defaults; ask only for missing inputs that would materially change the build:
| Parameter | Why it matters |
|---|---|
| URL or local path | The target website or build output |
| Name | Becomes the .app / .exe name and productName |
Bundle ID (--identifier) | Defaults to com.pake.a{md5hash}; set explicitly for clean installs (e.g. com.pake.youtube) |
Proxy (--proxy-url) | Baked into the binary at build time; not runtime-configurable. Format: http://host:port or socks5://host:port |
| Icon | Auto-fetched from website if omitted; can be a local path or URL |
Pake auto-fetches icons from multiple services (logo.dev, brandfetch, clearbit, Google favicons, direct favicon.ico). However:
The icon download does NOT use --proxy-url. That flag only configures the packaged app's WebView proxy. If the icon URL requires a proxy to reach (e.g. Google/GitHub assets from China), download it manually first:
curl -x http://<proxy-host>:<proxy-port> -o /tmp/icon.png "<icon-url>" --connect-timeout 15 -s
pake "<URL>" --icon /tmp/icon.png --json
Icon tips:
.icns (macOS), .ico (Windows), .png (Linux)src-tauri/icons/<name>.icns is reused; rename or remove it to force re-fetchBuild takes ~40s with cache, ~2min cold; the very first build on a fresh machine compiles Tauri dependencies and can take 10+ minutes. After a successful build:
outputs[].pathmdls -name kMDItemCFBundleIdentifier <path-to>.app (macOS)| Platform | Status | Notes |
|---|---|---|
| Windows | Full | Via --proxy-server browser arg |
| Linux | Full | Via Tauri native proxy_url |
| macOS | macOS 14+ | Uses Tauri native macos-proxy feature; auto-detected at build time |
Not supported. Pake uses the system WebView (WKWebView on macOS, WebView2 on Windows, WebKitGTK on Linux), not a full Chrome browser. Use --inject to add custom JS/CSS as an alternative.
--new-window allows popup auth windows and --safe-domain keeps SSO callbacks in-app, but some providers (especially Google) block sign-in inside embedded webviews regardless of flags. Warn the user before promising OAuth support.
If an AppImage opens but clicks or keyboard input do not reach the page on a pure Wayland compositor (especially niri), first rebuild with the latest pake-cli, then try the native WebKit path:
PAKE_LINUX_WEBKIT_SAFE_MODE=0 ./YourApp.AppImage
If that produces a blank window on the same system, re-enable the conservative workaround with PAKE_LINUX_WEBKIT_SAFE_MODE=1. Do not diagnose this from GTK, appindicator, or GStreamer warnings alone; those are often unrelated optional runtime warnings.
まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
Pakeのリリースに必要なバージョン更新、テスト、公開、公開後の検証を進めるスキル。通常リリースとnpm限定の修正公開、それぞれの手順を扱います。