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 devruns on macOS, Windows, and Linux. A macOS.app/.dmgmust be built on macOS; a portable Windows folder /.zipcan be cross-built from any host. Linux x64 and arm64 targets produce an AppDir,.AppImage, and.deb; creating the AppImage requiresmksquashfs.
Scaffold
pnpm create murasaki@latest my-app
cd my-appThis 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 devA 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 installerThe 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.