Build cross platform desktop apps with JavaScript, HTML, and CSS!



  -  105 MB  -  Open Source
  • Latest Version

    Electron 31.0.1 (64-bit) LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    Windows 7 64 / Windows 8 64 / Windows 10 64 / Windows 11

  • User Rating

    Click to vote
  • Author / Product

    GitHub, Inc. / External Link

  • Filename

Electron is a framework for creating native applications with web technologies like JavaScript, HTML, and CSS. It takes care of the hard parts so you can focus on the core of your application. If you can build a website, you can build a desktop app! With Electron, creating a desktop application for your company or idea is easy!

It uses Chromium and Node.js so you can build your app with HTML, CSS, and JavaScript. The app is an open-source project maintained by GitHub and an active community of contributors. Compatible with Mac, Windows, and Linux, Electron apps build and run on three platforms.

The API Demos app interactively demonstrates the most important features of the Electron API. See what's possible with Electron 64 bit with sample code and helpful tips for building your app.

Electron Fiddle lets you create and play with small experiments. It greets you with a quick-start template after opening – changes a few things, chooses the version of the app you want to run it with, and play around. Then, save your Fiddle either as a GitHub Gist or to a local folder. Once pushed to GitHub, anyone can quickly try your Fiddle out by just entering it in the address bar.

It supports Windows 7 and later versions – attempting to develop applications on earlier versions of Windows will not work. Microsoft provides free virtual machine images with Windows 10 and Windows 11 for developers.

Before you get started, you might want to install a code editor suited for JavaScript development.

  • Electron 31.0.1 (64-bit) Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Electron 31.0.1 (64-bit) Screenshot 1
  • Electron 31.0.1 (64-bit) Screenshot 2
  • Electron 31.0.1 (64-bit) Screenshot 3

What's new in this version:

Electron 31.0.1 (64-bit)
- Fixed an issue where fetch dependent interfaces in Node.js were not defined when nodeIntegration was enabled in some circumstances
- Fixed an issue where bad flags passed via --js-flags could cause a crash

Electron 31.0.0 (64-bit)
Breaking Changes:
- Made window.flashFrame(bool) flash continuously on macOS
- Updated Chromium to 126.0.6445.0. (Removed: WebSQL support)
- Updated Chromium to 125.0.6412.0. (Behavior Changed: nativeImage.toDataURL will preserve PNG colorspace)

- Added a new instance property navigationHistory on webContents API with navigationHistory.getEntryAtIndex method, enabling applications to retrieve the URL and title of any navigation entry within the browsing history
- Added options parameter to Session.clearData API
- Added proxy configuring support for requests made with net module from utility process
- Added support for Bluetooth ports being requested by service class ID in navigator.serial
- Added support for NODE_EXTRA_CA_CERTS
- Extended webContents.setWindowOpenHandler to support manual creation of BrowserWindow
- Implemented support for the File System API
- clearData method added to Session
- Extended WebContentsView to accept pre-existing webContents object

- Extended WebContentsView to accept pre-existing webContents object
- Improved error messages when ses.cookies.set fails
- Re-adds functionality to check whether or not an app was launched as a login service on macOS

- The inputFieldType property in the context-menu params has been removed

- Added missing support for the recursive option in fs.{readdir|readdirSync} as well as fs.promises.{readdir|readdirSync}
- Added support for withFileTypes when calling fs.{readdir|readdirSync} with the recursive in Asar archives
- Fixed ASAN build on macOS
- Fixed a bug where a window with maximization disabled and WCO enabled would still show its maximization button
- Fixed an issue where child views in a BrowserWindow could sometimes be
- Fixed issue where windows made visible with showInactive were blank
- Fixed potentially incorrect exit code in UtilityProcess
- originalFs.promises.cp now works

Electron 30.1.0 (64-bit)
- now correctly restores focus to inactive apps on macOS
- Fixed BrowserWindow vibrancy on macOS
- Fixed an issue where BrowserView webContents were getting destroyed even when preventDefault was being set on the owning BrowserWindow's close event
- Fixed an issue where dialogs did not work if they were parented to a BaseWindow and not a BrowserWindow
- Fixed an issue where some calls to WebUSB methods could crash

Other Changes:
- Updated Chromium to 124.0.6367.243
- Updated Node.js to v20.14.0

Electron 30.0.9 (64-bit)
- Fixed the type of WebviewTag.webpreferences back to string

Other Changes:
- Updated Chromium to 124.0.6367.233

Electron 30.0.8 (64-bit)
- Updated Chromium to 124.0.6367.230

Electron 30.0.7 (64-bit)
- Fixed an issue where non-English IME users would see app hangs on a second monitor
- Fixed an issue where the window could be incorrectly centered in some circumstances when calling

Other Changes:
- Updated Chromium to 124.0.6367.221

Electron 30.0.6 (64-bit)
- Fixed a potential issue with Linux layout invalidation

Electron 30.0.5 (64-bit)
- Fixed an issue where setTitleBarOverlay didn't work as expected when called on BaseWindow
- Fixed an issue where webContents.navigationHistory was not an enumerable property
- Fixed crash on window maximize on X11
- BrowserWindow.focus() now correctly restore focus to inactive apps on macOS

Other Changes:
- Backported fix for 340221135
- Updated Chromium to 124.0.6367.207

Electron 30.0.4 (64-bit)
- a crash in addChildView if a view is added as its own child
- a crash when the same WebContentsView is added via addChildView multiple times
- an error when calling setAutoResize on a BrowserView
- an inconsistent crash on maximizing window and relayout in Ubuntu
- an issue where calling on Windows and Linux incorrectly centered the window

Electron 30.0.3 (64-bit)
- Fixed an issue where document.requestFullscreen didn't work when calling it from a webContents inside WebContentsView
- Fixed an issue where fs.createWriteStream could write out of order
- Fixed an issue where recentDOcuments wasn't populating properly on macOS
- Fixed crash after upgrade on Linux

Other Changes:
- Backported fix for 330756841
- Backported fix for 339266700
- Updated Chromium to 124.0.6367.119

Electron 30.0.2 (64-bit)
- Electron doesn't paint on offscreen-render mode after gpu process crashed
- Fixed data corruption when protocol.handle() processed incoming data asynchronously
- Fixed nativeImage.createThumbnailFromPath and shell.openExternal not resolving when called in the renderer process

Electron 30.0.1 (64-bit)
- Updated Chromium to 124.0.6367.60

Electron 30.0.0 (64-bit)
- Added support for NODE_EXTRA_CA_CERTS
- Implemented support for the File System API

- Fixed an issue on Windows where silent printing resulted in comically tiny renderer output
- Fixed an issue where showing or focusing a panel window would activate the app on Mac
- Fixed missing <__assertion_handler> header when compiling with libc++

Other Changes:
- Updated Chromium to 124.0.6367.49

Electron 29.3.0 (64-bit)
- Fixed a bug where a window with maximization disabled and WCO enabled would still show its maximization button

Electron 29.2.0 (64-bit)
- crash in Notification::Close() under libnotify 0.8.x with portal environment
- usage of Storage.{get|set|clear}Cookies via the Chrome DevTools Protocol

Electron 29.1.6 (64-bit)
- shell.showItemInFolder not opening Windows Explorer if the passed path contains forward slashes
- a potential crash in chrome.scripting on extension unload
- an issue where emojis weren't properly handled on Windows
- an issue where the serial-port-added event improperly respected filters set by serial.requestPort()

Electron 29.1.5 (64-bit)
- Fixed an issue where badge text set using the Badging API no longer appeared correctly on Windows

Other Changes:
- Updated Chromium to 122.0.6261.130

Electron 29.1.4 (64-bit)
- Updated Chromium to 122.0.6261.129

Electron 29.1.3 (64-bit)
- Fixed chrome://process-internals failing to load
- Fixed a memory corruption crash on Windows by removing DXDiag telemetry code

Other Changes:
- Backported fix for 40265302
- Updated Chromium to 122.0.6261.112

Electron 29.1.1 (64-bit)
- Fixed an issue where user-did-{resign|become}-active were not emitted properly on macOS
- Fixed an issue where webContents.print(options) failed if options was not passed or undefined is passed

Other Changes:
- Updated Chromium to 122.0.6261.95

Electron 29.1.0 (64-bit)
- Added proxy configuring support for requests made with net module from utility process

- Ensured ScreenCaptureKit is used exclusively on macOS 14.4 and higher to avoid permission prompts

Other Changes:
- Updated Chromium to 122.0.6261.70

Electron 29.0.1 (64-bit)
- Fixed an issue where the -webkit-app-region: drag property was not respected on some windows
- Updated Chromium to 122.0.6261.57

Electron 29.0.0 (64-bit)
Breaking Changes:
- Functions called over the contextBridge are now called with the expected receiver (this)
- The gpu-process-crashed event on app has been deprecated
- The deprecated gpu-process-crashed event on app has been removed
- The deprecated renderer-process-crashed event on app and crashed event on WebContents and have been removed

- Added WebContentsView and BaseWindow, replacing the now-deprecated BrowserView APIs
- Added keyboardLock to ses.setPermissionRequestHandler(handler)
- Added an option in protocol.registerSchemesAsPrivileged to allow V8 code cache in custom schemes
- Added net module to utility process
- Added new Electron Fuse that opts the file:// protocol into more secure and restrictive behaviour that matches Chromium
- Added new webUtils.getPathForFile method to replace File.path augmentation
- Added support for configuring use_remote_checksums via .npmrc
- Migrated app.{set|get}LoginItemSettings(settings) to use Apple's new recommended underlying framework on macOS
- This PR adds several properties to the display object including detected, maximumCursorSize, and nativeOrigin

- Removed extraneous dlls from Windows zip files

- Added support for ThumbnailCapturerMac and ScreenCaptureKitStreamPickerSonoma chromium feature flags to bypass deprecated API warning on macOS 14.4
- Fixed Electron 29.0.0-beta.3 regression that could pop up context menus in the wrong location
- Fixed an issue where import.meta.url did not work in the renderer process with contextIsolation enabled
- Fixed an issue where original-fs methods were not properly corrected for patched imports
- Fixed an issue where draggable regions didn't work across platforms
- Fixed crash in MessagePort::close
- Fixed the GrantFileProtocolExtraPrivileges not correctly preventing fetch() calls to file:// URLs

Electron 28.2.3 (64-bit)
- a crash that started occurring sporadically with some types of macOS window close
- an issue where webContents.printToPDF could fail when certain combinations of margins and pageSize values are passed
- an issue where crashes in node::Environment destruction potentially wouldn't be propagated to the NodeService exit handler
- an issue where zoom level settings did not persist per-session for webviews

Other Changes:
- Updated Chromium to 120.0.6099.283

Electron 28.2.2 (64-bit)
- Fixed an issue where select-usb-device did not respect the filter option in navigator.usb.requestDevice()

Electron 28.2.1 (64-bit)
- Apply module search paths restriction on worker and child process
- Fixed a potential async_hooks crash when listening for the restore event on Windows after minimizing a maximized BrowserWindow
- Fixed an issue where Request objects did not correctly copy headers into fetches
- Fixed an issue where non-modal windows with vibrancy could have incorrectly rounded corners on Sonoma
- Fixed an issue where the printBackground option in webContents.printToPDF did not work as expected
- Fixed forked child process not able to send IPC message under some cases on macOS
- Fixed on-screen-keyboard not hiding for webviews under some cases

Other Changes:
- Removed extraneous dlls from Windows zip files
- Security: backported fix for CVE-2024-0807
- Security: backported fix for 1407197
- Updated Chromium to 120.0.6099.268

Electron 28.2.0 (64-bit)
- Added net module to utility process

- session.fromPartition() key lookup bug
- a potential crash when calling dialog.showMessageBoxSync
- a potential renderer crash when inspecting elements
- macOS bug that causes window maximize button to be disabled in full-screen mode

Other Changes:
- Updated Chromium to 120.0.6099.227

Electron 28.1.4 (64-bit)
- Fixed an issue where inAppPurchase.getProducts and inAppPurchase.purchasedProduct did not resolve as expected

Electron 28.1.3 (64-bit)
- Fixed a crash resultant from trying to listen to power-related events before the ready event was emitted on Linux