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?
readonlyoptionalappimage?:"latest"|ToolsetCustom|"0.0.0"|"1.1.0"|"1.2.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. It also packs legacy-base (core18/core20/core22) snaps built from the snap template app.desktop-file-validate— validates the generated.desktopentry.- AppImage runtime — the self-executing stub that mounts the SquashFS at launch.
Available versions:
| Version | Runtime date | Notes |
|---|---|---|
"0.0.0" | Legacy | FUSE2-based AppImage runtime (pre-v27) |
"1.0.3" | 20251108 | Introduces static AppImage runtime |
"1.1.0" | 20251108 | Adds unsquashfs support |
"1.2.0" | 20251108 | squashfs-tools 4.7.5 with a statically linked zstd 1.5.7, so Linux and macOS hosts produce identical images |
An explicit version pin always selects exactly that release.
Default
"latest"
executables?
readonlyoptionalexecutables?:ExecutablesConfig|null
Where the host programs that electron-builder starts are installed on the build machine, by program name.
electron-builder starts these programs only from an absolute path, never by looking up a name on PATH. For each one it
uses the first location that is an executable file: from this entry when it is set, otherwise from a built-in list of
default install locations for the host operating system (see https://www.electron.build/docs/toolsets#executables).
An entry replaces the default list for that program; it is not merged with it.
Example
{
"toolsets": {
"executables": {
"mono": "file:///opt/homebrew/bin/mono",
"pwsh": ["file:///usr/local/microsoft/powershell/7/pwsh", "file:///opt/microsoft/powershell/7/pwsh"],
"powershell": "file:///C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe"
}
}
}
fpm?
readonlyoptionalfpm?:"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:
| Version | FPM version | Notes |
|---|---|---|
"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?
readonlyoptionalicons?:"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:
| Version | Notes |
|---|---|
"1.2.3" | Writes 16px/32px ICNS entries as ic04/ic05 ARGB (fixes corrupt small icons in Finder) |
Default
"latest"
linuxToolsMac?
readonlyoptionallinuxToolsMac?:"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:
| Version | Notes |
|---|---|
"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) |
Default
"latest"
nsis?
readonlyoptionalnsis?:"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.nsiscripts into.exeinstallers.- 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:
| Version | makensis version | Notes |
|---|---|---|
"0.0.0" | 3.0.4.1 | Legacy split bundle — nsis + nsis-resources archives (pre-v27) |
"1.2.1" | 3.12 | Unified bundle — single archive, entrypoint scripts auto-set NSISDIR |
A custom bundle (a ToolsetCustom object) must follow the layout at https://www.electron.build/docs/toolsets#custom-nsis-bundle-layout
Default
"latest"
sevenZip?
readonlyoptionalsevenZip?:"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:
| Version | Notes |
|---|---|
"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) |
Default
"latest"
squirrel?
readonlyoptionalsquirrel?:"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 intoSetup.exe(and an optional MSI).SyncReleases.exe— downloads prior releases to produce delta packages.nuget.exe,7z— pack the app into a.nupkgand 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:
| Version | Notes |
|---|---|
"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.
Default
"latest"
winCodeSign?
readonlyoptionalwinCodeSign?:"latest"|"1.0.0"|ToolsetCustom|"1.3.1"|"0.0.0"|"1.1.0"|"1.1.1"|"1.2.1"|"1.3.0"
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.msixartifacts.rcedit— embeds version metadata and icons into.exefiles (legacy usage, migrated to npmreseditpackage).- Windows Kits — used by AppX/MSIX packaging (
makeappx,signtool).
Available versions:
| Version | Notes |
|---|---|
"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 |
"1.3.1" | macOS osslsigncode bundles its own OpenSSL (no Homebrew openssl@3 needed) and libp11's PKCS#11 provider |
Default
"latest"
wine?
readonlyoptionalwine?:"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:
| Version | Wine version | Platform support | Notes |
|---|---|---|---|
"0.0.0" | 4.0.1 | macOS | Legacy portable bundle (pre-v27) |
"1.0.1" | 11.0 | macOS | Supports arm64 macOS via Rosetta |
"system" | host install | macOS, Linux | Uses the host Wine at a fixed install location 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.
The host Wine ("system") is started by absolute path, never looked up on PATH: it is the wine entry of
executables, which lists its default install locations and is where a Wine installed elsewhere is set.
Setting both a bundle that would be used (a ToolsetCustom object, or a version on macOS; on Linux a version selects no
bundle) and executables.wine is a configuration error.
To use a custom Wine bundle, use a ToolsetCustom object.
Default
"latest"
wix?
readonlyoptionalwix?:"latest"|"2.0.0"|ToolsetCustom|"0.0.0"
Version of the WiX Toolset bundle used to build msi and msiWrapped installers.
The bundle ships candle.exe and light.exe (compile and link the generated .wxs project) and the WiX
extensions (WixUIExtension for assisted installers). On macOS and Linux they run under Wine with wine-mono.
Available versions:
| Version | WiX version | Notes |
|---|---|---|
"0.0.0" | 4.0.0.5512 (preview) | Legacy bundle (pre-v27). An arm64 app is packaged in an x64 MSI, because this toolset has no arm64 |
"2.0.0" | 3.14.1 | Builds a native arm64 MSI for arm64 |
The .wxs project uses the WiX 3 schema with "2.0.0": an msiProjectCreated hook that inserts elements of a WiX 4
extension namespace must use the WiX 3 one (for example http://schemas.microsoft.com/wix/UtilExtension), or pin "0.0.0".
A custom bundle (a ToolsetCustom object) must have the WiX v3 layout: candle.exe, light.exe and the
extensions at its root.
Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/wix/CHANGELOG.md
Default
"latest"