Convert any website into a lightweight cross-platform desktop app (Windows, macOS, Linux) with a single command powered by NeutralinoJS. No Electron bundle and no boilerplate to maintain.
- Node.js 14+ and npm
- Neutralino CLI is reused when already installed (
NEU_BIN, localnode_modules/.bin/neu, orneuon your PATH); if missing, it is installed globally once vianpm install -g @neutralinojs/neu
npm install -g web2app-cliRun the interactive console and follow the prompts:
web2appYou’ll be asked for a app name, destination URL, optional metadata, bundle identifier, icon path, and window size. Press Enter to accept the suggested value shown in square brackets.
If you prefer Bun:
bun ./bin/web2app-cli.cjs- Builds into
web2app_build/<appname>/. - Produces release executables for Windows (
-win_x64.exe), macOS (-mac_x64,-mac_arm64,-mac_universal), and Linux (-linux_x64,-linux_armhf,-linux_arm64) with resources embedded (no standaloneresources.neu). - Generates a ready-to-ship
<appname>-release.zipalongside the executables, then removes the zip for a clean output (executables stay). - Downloads Neutralino runtimes into
web2app_build/binon first run, then removes the cache; subsequent builds re-download automatically. - If a site blocks iframes, the app loads the URL directly; otherwise it uses an embedded iframe.
- Generates
neutralino.config.jsonand a minimalindex.htmlpointing at your target URL. - Checks if the site allows embedding (iframe); falls back to direct load when blocked.
- Downloads Neutralino runtimes (all platforms) on first run, calls
neu build --release --embed-resourcesto generate executables, then deletes the temporarybin/and generatedresources/folder. - If
neu updatefails or is blocked, the CLI falls back to downloading the Neutralino release zip directly from GitHub; setWEB2APP_NEU_DIRECT=1to force that path. - Installs the Neutralino CLI globally only when no existing installation is found, so it can be reused across projects.
- Saves NEU libraries in appdata on windows and usr on linux (sorry mac users)
- add interactive setup
MIT