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 null) selects the modern default for that toolset. Setting a property to "0.0.0" forces the legacy bundle — useful only for diagnosing regressions introduced by newer toolset bundles.

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?: ToolsetCustom | "0.0.0" | "1.0.2" | "1.0.3" | null

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 default)
"1.0.2"20251108Static-runtime (FUSE3-compatible)
"1.0.3"20251108Static-runtime (FUSE3-compatible); recommended (default)

Releases: https://github.com/electron-userland/electron-builder-binaries/releases?q=appimage

Default

"1.0.3"

fpm?

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

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/releases?q=fpm

Default

"2.2.1"

icons?

readonly optional icons?: ToolsetCustom | "1.1.0" | null

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.1.0"Current default

Releases: https://github.com/electron-userland/electron-builder-binaries/releases?q=icons

Default

"1.1.0"

linuxToolsMac?

readonly optional linuxToolsMac?: ToolsetCustom | "1.0.0" | null

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"Current default

Releases: https://github.com/electron-userland/electron-builder-binaries/releases?q=linux-tools-mac

Default

"1.0.0"

nsis?

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

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 default)
"1.2.1"3.12Unified bundle — single archive, entrypoint scripts auto-set NSISDIR (default)

Releases: https://github.com/electron-userland/electron-builder-binaries/releases?q=nsis

Default

"1.2.1"

sevenZip?

readonly optional sevenZip?: ToolsetCustom | "1.0.0" | null

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.

Default

"1.0.0"

winCodeSign?

readonly optional winCodeSign?: ToolsetCustom | "1.1.0" | "1.0.0" | "0.0.0" | null

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 — used to embed version metadata and icons into .exe files.
  • Windows Kits (10.0.26100.0) — used by AppX/MSIX packaging (makeappx, signtool).

Available versions:

VersionContents
"0.0.0"Legacy bundle — winCodeSign-2.6.0 (pre-v27 default)
"1.0.0"Modern bundle — Windows Kits 10.0.26100.0, win-codesign v1.0.0
"1.1.0"Modern bundle — Windows Kits 10.0.26100.0, win-codesign v1.1.0 (default)

Releases: https://github.com/electron-userland/electron-builder-binaries/releases?q=win-codesign

Default

"1.1.0"

wine?

readonly optional wine?: ToolsetCustom | "0.0.0" | null

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.1macOS onlyLegacy portable bundle (pre-v27 default)

On Linux, the system wine binary is used instead of a bundled one. Set USE_SYSTEM_WINE=true to force system Wine regardless of this setting.

Releases: https://github.com/electron-userland/electron-builder-binaries/releases?q=wine

Default

"0.0.0"