Murasaki
Getting Started

Quick start

Scaffold a Murasaki app, run it with HMR, and build a distributable.

Prerequisites

  • Node.js 22.12+ (Node 20 is end-of-life and is not supported)
  • murasaki dev runs on macOS, Windows, and Linux. A macOS .app / .dmg must be built on macOS; a portable Windows folder / .zip can be cross-built from any host. Linux x64 and arm64 targets produce an AppDir, .AppImage, and .deb; creating the AppImage requires mksquashfs.

Scaffold

pnpm create murasaki@latest my-app
cd my-app

This creates a React 19 + Vite + Tailwind app with a Next.js-like layout, a native window, and a working context menu — no index.html or entry file to maintain (Murasaki owns the app shell).

Develop

pnpm dev

A native window opens on top of the Vite dev server — React Fast Refresh and HMR work as usual. Edit src/app/page.tsx and the window updates instantly.

Right-click anywhere for the app's native menu; right-click the card for its own scoped menu — both are real NSMenus, not HTML popups.

Build a distributable

pnpm bundle
pnpm installer

The bundle ships a portable Node runtime and a native launcher, so it runs on other machines — not just your build machine. On macOS, the first two commands produce an .app and .dmg. Select a target explicitly to build portable Windows or Linux artifacts:

pnpm bundle --arch x64            # choose the target architecture
pnpm bundle --target win32-x64    # portable Windows folder + .zip
pnpm bundle --target linux-x64    # AppDir + AppImage
pnpm installer --target linux-x64 # Debian package (.deb)

pnpm installer --target win32-x64 creates an NSIS .exe when makensis is installed. With the built-in updater disabled, it also creates an MSI .msi when WiX v4 is available on Windows. An updater-enabled build is intentionally per-user NSIS only. The command fails when no installer can be produced; use pnpm bundle --target win32-x64 when the portable .zip is the intended artifact. See Distribution for tool setup and all targets.

On macOS, unsigned builds trigger Gatekeeper on other machines (recipients right-click → Open the first time). To ship a signed, notarized app with no warning, see Distribution → Signing.

Next

Improve this page on GitHub

On this page