Try to find out which Electron version is bundled in an application file.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Nemo 57eea488b2 Updates 8 months ago
.github/workflows Create dependabot.yml 8 months ago
_scripts v14 is no longer supported 8 months ago
src Updates 8 months ago
tests Re-organize directory structure 1 year ago
.editorconfig Add Makefile 9 months ago
.gitignore Update ignore files 9 months ago
.npmignore Update ignore files 9 months ago update docs 10 months ago new script for updating supporting packages 12 months ago
LICENSE Initial commit 1 year ago
Makefile Updates 9 months ago Adds support for downloading and checking files 1 year ago
package-lock.json Updates 8 months ago
package.json 1.1.4 9 months ago

which-electron npm dependency status for latest release NPM

Find out which Electron version is bundled inside an application.


$ npm install which-electron

$ which-electron
Version Constraint (Unsupported): <v7.0.0
Fingerprint: v3.1.7-v3.1.8
v3.1.8 is currently not supported

$ which-electron
Found Version file: v7.1.10
v7.1.10 is currently not supported
Fingerprint: v7.1.10
v7.1.10 is currently not supported

$ which-electron Appium-linux-1.21.0.AppImage
Fingerprint: v7.2.4-v7.3.3
v7.3.3 is currently not supported

$ which-electron
Fingerprint: v11.0.5-v11.1.1
v11.1.1 is currently not supported

How does it work?

We attempt multiple pathways:

  1. The presence of a electron.asar file denotes an electron version <v7.0.0, since later releases dropped that file and embedded it in the binary instead.
  2. A version text file is sometimes included in the final binary.
  3. The node_modules/electron/package.json file is sometimes present.
  4. A lookup table of hashes from various electron releases is used to guess the version. In case of multiple matches, it returns a range of versions.
  5. Get the electron version from the electron binary (WIP)

Note that this can be run against untrusted binaries as it does not try to run the application. It has been tested against various file formats: zip/dmg/exe/AppImage/tar.gz etc. It extracts limited files using 7-zip to a temporary directory at runtime if needed.

Known Issues

It is known to not work against:

  1. Windows setup files (ones with -setup in their name)
  2. On systems without 7-zip installed, it falls back to an older version of 7zip via the 7z-bin package on NPM. Unfortunately, the older version can't extract AppImage files correctly.


Licensed under the MIT License. See LICENSE file for details.