Skip to main content





  • Fixed several issues in the frontend-library-based development flow (i.e., removed the hardcoded port number, fixed double devCommand execution, etc.,).


Core: frontend-library-based development#

Added new configuration options to the cli.frontendLibrary key of the neutralino.config.json:

  • projectPath: Sets the project path of the frontend-library project. This path will be used as the current directory while executing the frontend-app-related commands.
  • initCommand: A command that gets executed after downloading an app template with the neu create command.
  • devCommand: This command will run with the neu run command to start the frontend development server. The CLI doesn't wait for devCommand completion, instead, it will wait for the frontend development server via the tcp-port-used package.
  • buildCommand: The neu build command will execute this command before generating the app bundle, so you can generate static resources of your frontend app using this command.


Core: Downloader#

  • Download the latest Neutralinojs framework resources with the --latest option in the neu update command.
  • If framework versions are not present in the app/template configuration, download the latest framework resources automatically. The CLI will download nightly releases if it can't fetch the latest release tag because of an GitHub API-related issue (i.e., Exceeded rate limits).


Core: Downloader/bundler#

  • Download the TypeScript definition file for standalone client library mode. This won't include the TypeScript definition file to the final application bundle.



  • Fix the hot-reloading issue that occurs with newer Node runtime versions.


Core: Bundler#

  • Avoid copying the WebView2Loader.dll file to the final app package since it was removed from the Neutralinojs framework.



  • Use the decompress library instead of unzipper to fix issues with latest Node.js runtime versions.
  • Generate the Mac universal binary with the neu build command.



  • Implement a way to test plugins locally.


DevOps: new test suite#

  • Initiate a new Node.js-based test suite.


  • Clean project files if the neu create command wan't successful.
  • Display an error message if the neu build --copy-storage fails due to missing .storage directory.
  • Support Darwin arm64 binaries natively without binary translation (x64 -> arm64).
  • Make the client library downloading process optional and support importing the client library via @neutralinojs/lib.
  • Download the module version of the client library based on the app configuration.


Core: Plugins#

  • Automatically re-install plugins when the neu CLI version is upgraded/downgraded via package managers.

Core: downloader/builder#

  • Support ARM (armhf/arm64) binaries.



  • Add short descriptions for each command.
  • Support to download nightly build versions.


  • Fix plugin listing issue.


  • Add a simple test-suite for testing CLI commands with a Bash script.



  • Improve log messages and styles

Core: Runner#

  • Display Neutralinojs process's STDIN and STDERR streams directly on the console.
  • Remove --verbose option from the run command.


Core: Runner#

  • Fix client library path issue with hot-reload workaround on Windows.



  • Fix browser mode exit issue with neu run.


Core: Runner#

  • Add a workaround to use hot module reloading from the app developer's existing frontend library/framework.


Core: Creator#

  • Allow downloading any community template via neu create myapp --template <template>. <template> accepts valid GitHub repo identifiers. The default value is neutralinojs/neutralinojs-minimal.

Core: Runner#

  • Add --verbose option to identify framework initialization crashes. It will show STDERR and STDOUT of the framework once the process was terminated.
  • Support sending any internal CLI argument to the Neutralinojs process via neu run -- <additional_args>.
  • Remove --mode=<mode> option from run since the same work can be done with neu run -- --mode=<mode>.

Bugfixes and improvements#

  • Fix the infinite retry issue with the neu run command.
  • Show an error message for download failures.


Core: File watcher#

  • Exclude auto-reload files via cli.autoReloadExclude.
  • Watch only the cli.resourcesDir to avoid many unwanted reloads.

Core: Bundler#

  • Add new --copy-storage flag to automatically copy storage data to the app bundle.


Core: Bundler#

  • Make cli.extensionsDir optional for bundling process.


  • Fix an issue in websocket error log.


Core: Bundler#

  • Copy extensions to the app bundle.
  • Rename res.neu to resources.neu.

Core: Runner#

  • Use websocket connection to auto reload app.


Core: Downloader#

  • Use server/client versions from config

neu version#

  • Removed global Neutralino version details