node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



Generate Windows installers for Electron apps using Squirrel.


  • Pull AppModel into it's own module


# For use in npm scripts
npm i electron-installer-squirrel-windows --save-dev
# For use from cli
npm i electron-installer-squirrel-windows -g


Usage: electron-installer-squirrel-windows <path/to/.app>
Generate Windows installers for Electron apps.
  electron-installer-squirrel-windows ./dist/FooBar-win32-ia32
  # Creates a `.nupkg`, a `RELEASES` file, and a `.exe` installer file in `./`
  --out=<path>         The directory to place artifacts [Default: `process.cwd()`].
  --debug              Enable debug messages.
  --overwrite          Overwrite any existing `Setup.exe` [Default: `false`].
  -h --help            Show this screen.
  --version            Show version.


Squirrel will spawn your app with command line flags on first run, updates, and uninstalls. It is very important that your app handle these events as early as possible, and quit immediately after handling them. Squirrel will give your app a short amount of time (~15sec) to apply these operations and quit.

The electron-squirrel-startup module will handle the most common events for you, such as managing desktop shortcuts. Just add the following to the top of your main.js and you're good to go:

if(require('electron-squirrel-startup')) return;


var createInstaller = require('electron-installer-squirrel-windows')
createInstaller(opts, function done (err) { })

createInstaller(opts, callback)



path - String The directory generated by [electron-packager][electron-packager].


Note All optional keys will be read from your package.json by default.

name - String The application name (usually all lowercase with dashes for spaces).

product_name - String The marketing name (usually name with spaces and titlecased).

out - String The folder path to create the .exe installer in. [Default: process.cwd()]

loading_gif - String The local path to a .gif file to display during install. [Default: __dirname/resources/install-spinner.gif]

authors - String The authors value for the nuget package metadata.

owners - String The owners value for the nuget package metadata. [Default: #{authors}]

exe - String The name of your app's main .exe file. [Default: #{product_name}Setup.exe]

description - String The description value for the nuget package metadata. [Default: ``]

version - String The version value for the nuget package metadata.

title - String The title value for the nuget package metadata. [Default: #{product_name || name}]

cert_path - String The path to an Authenticode Code Signing Certificate. [Default: null]

cert_password - String The password to decrypt the certificate given in cert_path. [Default: null]

sign_with_params - String Params to pass to signtool which overrides cert_path and cert_password. [Default: null]

setup_icon - String URL to the .ico file to use as the icon for the generated Setup.exe. [Default: (atom.ico)]

remote_releases - String URL to your existing updates. If given, these will be downloaded to create delta updates. [Default: null]

overwrite - Boolean Overwrite existing installers if they already exist. [Default: false]

debug - Boolean Enable debug message output. [Default: false]


err - Error Contains errors if any.


Relicensed under Apache 2.0 Copyright (c) 2015 MongoDB Inc.

Based on atom/grunt-electron-installer Copyright (c) 2015 GitHub Inc.