CLI リファレンス
dev、build、bundle、installer など、Murasaki のすべてのコマンド。
murasaki dev Vite の開発サーバー + ネイティブウィンドウを起動する(HMR、Fast Refresh)
murasaki build 本番用の Vite ビルド → dist/client
murasaki bundle 現在のプラットフォーム向けのネイティブアプリフォルダ / .app
murasaki installer 現在のプラットフォーム向けの配布用インストーラー
murasaki demo チェックサム検証済みmacOS開発者プレビューを起動する
murasaki init Rust ツールチェーンをインストールする(@murasakijs/native 自体をいじる場合のみ)
murasaki icon 1つの PNG から .icns / .ico / .png を生成する
murasaki release 自動更新マニフェストのヘルパー
murasaki help このヘルプを表示する開発とパッケージングは macOS、Windows、Linux に対応しています。Linux の bundle は AppDir と .AppImage を生成し、installer はさらに .deb も生成します。Linux の --sign は .AppImage、.deb、まとめた SHA256SUMS に GPG 署名します。RPM パッケージやリポジトリ用メタデータへの対応はまだありません。--sign を明示的に指定した場合は、すべてのプラットフォームで出力前に処理を停止します(フェイルクローズ)。未署名の成果物を黙って生成することはありません。
murasaki dev
子プロセスで Vite の開発サーバーを起動し、それを指すネイティブウィンドウをアタッチします。React Fast Refresh と HMR は通常どおり動作し、編集して保存するとウィンドウが更新されます。config.devPort(デフォルトは 5178)で実行され、そのポートが使用中の場合は自動的にインクリメントされます。
murasaki build
本番用の Vite ビルド → dist/client。
murasaki bundle
dist/client + コンパイル済みのサーバーアクションレジストリ + ポータブルな Node ランタイム + ネイティブランチャーバイナリを dist/bundle/ にパッケージングします — macOS では <productName>.app、Windows では <productName>.exe を含む <productName>/ フォルダー、Linux では AppDir と .AppImage になります。
murasaki bundle # ホストのプラットフォーム + アーキテクチャ、未署名
murasaki bundle --arch x64 # クロスアーキテクチャ(macOS): Apple Silicon 上で x64 の .app
murasaki bundle --target win32-arm64 # クロスターゲット: arm64 の Windows バンドル
murasaki bundle --target linux-x64 # Linux AppDir + AppImage
murasaki bundle --sign # macOS Developer ID / Windows Authenticode 署名
murasaki bundle --no-build # 既存の dist/client を再利用する--arch arm64|x64/--target <platform>-<arch>— 対象アーキテクチャ / プラットフォーム(デフォルトはホスト)。darwin-arm64、darwin-x64、win32-x64、win32-arm64、linux-x64、linux-arm64を指定できます。--sign— macOS では.appを Developer ID で署名し、Windows ではポータブル ZIP の作成前にアプリの実行ファイルを Authenticode で署名し、Linux では生成された.AppImageに GPG 署名します。Windows での署名は SignTool がある Windows 上で実行する必要があります。詳しくは 配布を参照してください。--no-build—dist/clientがすでに存在する場合、Vite の再ビルドをスキップします。
murasaki installer
bundle の出力を、対象プラットフォーム向けの配布可能なインストーラーに変換します。macOS ではドラッグインストール用のスタイル付き .dmg(dist/<productName>-<version>.dmg。Finder のスタイル適用に失敗した場合はプレーンな DMG にフォールバックします)、Windows では NSIS の .exe、さらに内蔵の自動更新機能が無効な場合のみ MSI の .msi、Linux では .deb を生成します。ポータブルな Windows 用 ZIP は bundle の出力です。Linux の AppDir と .AppImage も bundle の出力として残ります。
murasaki installer # ホストプラットフォーム向けインストーラ(最初に再バンドル)
murasaki installer --target win32-x64 # Windows x64 のインストーラ
murasaki installer --target linux-x64 # Linux amd64 の .deb とバンドル
murasaki installer --sign --notarize # macOS: Developer ID 署名 + 公証 + ステープル
murasaki installer --target win32-x64 --sign # Windows: app + 生成されたinstallerを署名
murasaki installer --no-build # 既存の dist/bundle を再利用する--target <platform>-<arch>/--arch arm64|x64—bundleに転送されます。--sign— macOS では Developer ID、Windows では Authenticode、Linux では GPG による署名を行います。Windows ではアプリの実行ファイルと生成されたすべてのインストーラーに署名・検証を行います。自動更新が有効なビルドではユーザーごとの NSIS が必須となり、MSI はスキップされます。Linux では.AppImage、.deb、まとめたSHA256SUMSに GPG 署名します。詳しくは 配布の「GPG 分離署名」の項を参照してください。- プラットフォームのパッケージングツールがインストーラーを1つも生成できなかった場合、コマンドは失敗します。ポータブル ZIP や AppImage が目的の出力であれば
murasaki bundleを使用してください。 --notarize— macOS のみ。署名済みの.dmgを Apple の公証サービスに提出し、チケットをステープルします(--notarizeの使用には--signが必須です)。
murasaki demo
パッケージ済みの macOS 開発者プレビューを1コマンドで取得して起動します。Apple silicon と Intel のどちらかを自動選択し、公開済みの SHA-256 と厳密な ad-hoc コード署名でリリースアセットを検証してキャッシュした後、はじめて隔離属性を解除します。
pnpm dlx murasaki@latest demo papelle
pnpm dlx murasaki@latest demo oscilla
pnpm dlx murasaki@latest demo orgliamurasaki demo --listで利用可能なプレビューを一覧表示します。--refreshで検証済みキャッシュを使わず、再ダウンロードします。--no-openでアプリを起動せず、取得と検証だけを実行します。- 名前を省略して
murasaki demoを実行すると、パッケージ済みのデフォルトの create-murasaki スキャフォールドを起動します。
これらは CLI 利用者向けの ad-hoc 署名済み開発者プレビューであり、公証済みの一般ユーザー向けダウンロードではありません。本番アプリは、公開者自身が署名・公証してください。
murasaki init
rustc の有無を確認し、見つからない場合はインストールコマンドを表示します。@murasakijs/native 自体をいじる場合にのみ必要です。Murasaki のエンドユーザーが Rust を必要とすることは決してありません — ビルド済みバイナリが npm から降ってきます。
murasaki icon
murasaki icon assets/logo.png1つの正方形の 1024px PNG からプラットフォーム向けのアイコンリソースを生成します。フル版の Xcode がインストールされた macOS では、AppIcon アセットを収めた Assets.car と icon.icns を出力します。現在の macOS はアセットカタログ側で OS のマスクと外観のレンダリングを適用し、.icns は古い macOS やツール向けのフォールバックとして残ります。Command Line Tools のみの環境では警告を表示したうえで .icns フォールバックを生成します。macOS 以外では現時点で PNG のみに対応しています。
通常、このコマンドを直接実行する必要はありません。murasaki bundle が config.icon から同じリソースを自動生成し、埋め込みます。macOS の角丸マスクを元画像に焼き込まないでください。正方形のデザインを渡し、アセットカタログ版へのマスク適用は OS に任せます。Windows では .ico を生成して .exe に埋め込みます。
murasaki release
murasaki release --keygen [--force]
murasaki release --manifest --base-url <url> --version <v> [--notes <md>] [--mandatory] [--rollout <0-100>]
murasaki release --sign署名付き自動更新を公開するための、3つの独立したモードです — 全体の流れについては 自動更新 ガイドを参照してください。
--keygen— 更新マニフェストの署名に使う Ed25519 の鍵ペアを生成します。.murasaki/update-key.pub(コミットしてください)と.murasaki/update-key(モード0600、自動的に gitignore されます)を書き出します。秘密鍵は表示せず、MURASAKI_UPDATE_KEYという GitHub シークレットに標準入力経由で登録する手順を案内します。--forceを指定しない限り、既存の鍵を上書きすることはありません。--manifest—dist/配下からこのバージョンの成果物(macOS の.app.zip、Windows の-setup-<arch>.exe(win32-x64 では接尾辞なしの旧-setup.exeも認識されます)、Linux の-linux-<arch>.AppImage)を探し、見つかったものをハッシュ化して、generatedAtタイムスタンプ付きのdist/latest.jsonを書き出します。Linux の.debは、システムのパッケージマネージャーが更新を管理するため、意図的に更新ペイロードへ含めていません。見つからないターゲットはエラーにならずスキップされます。--rollout <0-100>は、任意の段階的ロールアウト率(%)を書き込みます。--sign—dist/latest.jsonに署名してdist/latest.json.sigを生成します。鍵は$MURASAKI_UPDATE_KEY、なければ.murasaki/update-keyから読み込まれます。.murasaki/update-key.pubが利用可能な場合は、keyIdのローテーションヒントもマニフェストに書き込みます。
--generate-manifest は、--manifest の非推奨エイリアスとして引き続き動作します。