Skip to main content

Interface: ToolsetConfig

Version pins and custom bundle overrides for the binary toolsets that electron-builder downloads and caches locally.

Each toolset is a versioned archive hosted at electron-userland/electron-builder-binaries. Omitting a property (or setting it to latest) selects the modern default for that toolset.

To supply your own bundle, set the property to a ToolsetCustom object with a url (https:// or file://) and a checksum for verification. The bundle must mirror the expected directory layout of the corresponding built-in bundle; see the build scripts at https://github.com/electron-userland/electron-builder-binaries/tree/master/packages.

Properties​

appimage?​

readonly optional appimage?: "latest" | ToolsetCustom | "0.0.0" | "1.1.0" | "1.0.3"

Version of the AppImage toolset bundle used for building .AppImage files.

The bundle ships:

  • mksquashfs — creates the SquashFS filesystem embedded in the AppImage.
  • desktop-file-validate — validates the generated .desktop entry.
  • AppImage runtime — the self-executing stub that mounts the SquashFS at launch.

Available versions:

VersionRuntime dateNotes
"0.0.0"LegacyFUSE2-based AppImage runtime (pre-v27)
"1.0.3"20251108Introduces static AppImage runtime
"1.1.0"20251108Adds unsquashfs support

Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/appimage/CHANGELOG.md

Default​

"latest"

fpm?​

readonly optional fpm?: "latest" | ToolsetCustom | "2.2.1"

Version of the FPM bundle used to build Linux packages (.deb, .rpm, .pacman, etc.) on macOS and Linux hosts.

Available versions:

VersionFPM versionNotes
"2.2.1"1.17.0 (Ruby 3.4.3)Current default

Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/fpm/CHANGELOG.md

Default​

"latest"

icons?​

readonly optional icons?: "latest" | ToolsetCustom | "1.2.3"

Version of the icons-conversion bundle used to convert source images to .icns, .ico, and PNG icon sets.

Set to a ToolsetCustom object to supply your own icons bundle directory.

Available versions:

VersionNotes
"1.2.3"Writes 16px/32px ICNS entries as ic04/ic05 ARGB (fixes corrupt small icons in Finder)

Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/icons/CHANGELOG.md

Default​

"latest"

linuxToolsMac?​

readonly optional linuxToolsMac?: "latest" | "1.0.1" | "1.0.0" | ToolsetCustom

Version of the Linux-tools-mac bundle used to produce .tar.lz archives and build Linux targets on macOS hosts.

The bundle ships macOS-native builds of ar, lzip, and gtar (GNU tar).

Available versions:

VersionNotes
"1.0.0"gnu-tar, lzip, makedepend, glib, libgsf, libtool, pcre, gettext, binutils
"1.0.1"Same tools rebuilt on macOS 15 runners — binaries run on macOS 15+ (1.0.0 required macOS 26)

Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/linux-tools-mac/CHANGELOG.md

Default​

"latest"

nsis?​

readonly optional nsis?: "latest" | ToolsetCustom | "0.0.0" | "1.2.1"

Version of the NSIS toolset bundle used to compile Windows installers.

The bundle ships:

  • makensis — the NSIS compiler invoked to build .nsi scripts into .exe installers.
  • NSIS plugins — the plugin DLLs (NsisMultiUser, UAC, StdUtils, etc.) referenced by electron-builder's default installer scripts.
  • elevate.exe — UAC elevation helper included in NSIS installers.

Available versions:

Versionmakensis versionNotes
"0.0.0"3.0.4.1Legacy split bundle — nsis + nsis-resources archives (pre-v27)
"1.2.1"3.12Unified bundle — single archive, entrypoint scripts auto-set NSISDIR

Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/nsis/CHANGELOG.md

Default​

"latest"

sevenZip?​

readonly optional sevenZip?: "latest" | "1.0.1" | "1.0.0" | ToolsetCustom

Version of the 7-Zip binary bundle used internally to extract .7z and .tar.xz archives.

Set to a ToolsetCustom object to supply your own 7za binary. The url must point to a directory (or a .tar.gz/.zip archive of one) that contains bin/7za (macOS/Linux) or bin/7za.exe (Windows).

Bootstrap constraint: the custom bundle itself must be a .tar.gz or .zip archive (or a bare file:// directory). .7z and .tar.xz archives cannot be used here because extracting them requires 7za — a circular dependency.

Available versions:

VersionNotes
"1.0.0"Shipped the 32-bit 7za.exe for every Windows arch (1.75 GiB memory cap, no LZMA2 multithreading on x64/arm64)
"1.0.1"Correct per-arch Windows binaries (x64, ia32, arm64)

Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/7zip/CHANGELOG.md

Default​

"latest"

squirrel?​

readonly optional squirrel?: "latest" | ToolsetCustom | "1.1.1"

Version of the squirrel.windows bundle used to build Squirrel.Windows installers.

The bundle ships the Squirrel vendor toolset under electron-winstaller/vendor/:

  • Squirrel.exe / Squirrel-Mono.exe — releasify the app into Setup.exe (and an optional MSI).
  • SyncReleases.exe — downloads prior releases to produce delta packages.
  • nuget.exe, 7z — pack the app into a .nupkg and compress release assets.

rcedit.exe is provisioned from the winCodeSign toolset at runtime (on every platform; under Wine on non-Windows hosts). Building an MSI additionally uses the shared WiX toolset.

Available versions:

VersionNotes
"1.1.1"Squirrel.Windows 2.0.1 (patched) with a standalone, checksum-verified nuget.exe 6.14.0

Set to a ToolsetCustom object to supply your own bundle — it must contain the electron-winstaller/vendor/ subtree. Only used when building the squirrelWindows target.

Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/squirrel.windows/CHANGELOG.md

Default​

"latest"

winCodeSign?​

readonly optional winCodeSign?: "latest" | "1.0.0" | ToolsetCustom | "1.3.0" | "0.0.0" | "1.1.0" | "1.1.1" | "1.2.1"

Version of the win-codesign bundle used for Windows code signing and resource editing.

The bundle ships:

  • signtool.exe (Windows) / osslsigncode (macOS & Linux) — used to sign .exe, .dll, and .msix artifacts.
  • rcedit — embeds version metadata and icons into .exe files (legacy usage, migrated to npm resedit package).
  • Windows Kits — used by AppX/MSIX packaging (makeappx, signtool).

Available versions:

VersionNotes
"0.0.0"Legacy bundle — winCodeSign-2.6.0 (pre-v27)
"1.0.0"Windows Kits 10.0.26100.0, osslsigncode v2.9
"1.1.1"Updates osslsigncode to v2.11
"1.2.1"Adds native osslsigncode arm64
"1.3.0"Includes support for Azure Trusted Signing signtool via dlib and .NET 8 runtime

Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/win-codesign/CHANGELOG.md

Default​

"latest"

wine?​

readonly optional wine?: "latest" | "1.0.1" | "system" | ToolsetCustom | "0.0.0"

Version of the Wine bundle used to run Windows tools (NSIS, rcedit, signtool) on non-Windows hosts (macOS and Linux).

Wine is only required when building Windows targets on a non-Windows machine. On Windows, this setting has no effect.

Available versions:

VersionWine versionPlatform supportNotes
"0.0.0"4.0.1macOSLegacy portable bundle (pre-v27)
"1.0.1"11.0macOSSupports arm64 macOS via Rosetta
"system"host installmacOS, LinuxUses the wine binary on PATH instead of a bundle

"system" is the replacement for the USE_SYSTEM_WINE environment variable removed in v27, and is what "latest" (the default) currently resolves to on every platform: the published "1.0.1" bundles ship no PE builtins, so a host Wine installation is required to build Windows targets on macOS or Linux.

To use a custom Wine binary, use a ToolsetCustom object.

Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/wine/CHANGELOG.md

Default​

"latest"