Build cross platform desktop apps with JavaScript, HTML, and CSS
C++ JavaScript Objective-C++ Python Objective-C HTML Other
Switch branches/tags
Failed to load latest commit information.
.circleci Enable testing with python-dbusmock Dec 5, 2017
.github updates to probot config Sep 29, 2017
atom add loop to catch null values Dec 13, 2017
brightray Security Improvement: Enable Control Flow Guard on Windows - https://โ€ฆ Dec 8, 2017
chromium_src Fix printing_handler_win compilation errors Nov 24, 2017
default_app Replace default_app icon Dec 7, 2017
docs-translations Merge Nov 22, 2017
docs ๐Ÿ“ Fix mixed content warning [ci skip] (#11448) Dec 15, 2017
lib ๐Ÿ”ง Last round of feedback Dec 12, 2017
npm revert electron-download dependency to ^3.0.1 Nov 3, 2017
script Add linux powerMonitor tests using python-dbusmock Dec 5, 2017
spec Merge pull request #11418 from electron/add-reg-defaults Dec 13, 2017
tools Use real shared library names for symbol files Oct 16, 2017
vendor Upgrade Node to v8.9.3 (#11422) Dec 13, 2017
.clang-format Add clang-format config file. Oct 4, 2016
.dockerignore Add to docker context Aug 15, 2017
.gitignore Ignore all npmrc and package-lock Dec 4, 2017
.gitmodules Move brightray submodules to root vendor May 10, 2017
.node-version Bump node version number Sep 14, 2017
.remarkrc add remark lint to ensure fenced codeblocks are formatted properly. Nov 20, 2017
.travis.yml Add arm64 task in travis ci Aug 22, 2017 fix word Nov 22, 2017 clean up remaining references to docs-translations content Nov 9, 2017
Dockerfile Enable testing with python-dbusmock Dec 5, 2017
Dockerfile.circleci Enable testing with python-dbusmock Dec 5, 2017
Jenkinsfile Add 1 hour timeout Dec 4, 2017
LICENSE Update copyright year in LICENSE file Jan 3, 2017 Fix 'electron-versioning' link in Dec 13, 2017 Add Jan 30, 2017
common.gypi Fix "nghttp2" build Nov 24, 2017
electron.gyp Merge pull request #11144 from dittos/mas-login-helper-again Nov 27, 2017
features.gypi Add enable_osr build flag Jun 28, 2017
filenames.gypi Implement powerMonitor "suspend"/"resume" events for Linux. Dec 5, 2017
package.json ๐Ÿ“ฆ Upgrade to StandardJS 10 Nov 23, 2017
toolchain.gypi Some compiler flags are clang only Nov 21, 2017

Electron Logo

CircleCI Build Status AppVeyor Build Status Jenkins Build Status devDependency Status Join the Electron Community on Slack

๐Ÿ“ Available Translations: ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡น๐Ÿ‡ผ ๐Ÿ‡ง๐Ÿ‡ท ๐Ÿ‡ช๐Ÿ‡ธ ๐Ÿ‡ฐ๐Ÿ‡ท ๐Ÿ‡ฏ๐Ÿ‡ต ๐Ÿ‡ท๐Ÿ‡บ ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡น๐Ÿ‡ญ ๐Ÿ‡ณ๐Ÿ‡ฑ ๐Ÿ‡น๐Ÿ‡ท ๐Ÿ‡ฎ๐Ÿ‡ฉ ๐Ÿ‡บ๐Ÿ‡ฆ ๐Ÿ‡จ๐Ÿ‡ฟ ๐Ÿ‡ฎ๐Ÿ‡น. View these docs in other languages at electron/electron-i18n.

The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on Node.js and Chromium and is used by the Atom editor and many other apps.

Follow @ElectronJS on Twitter for important announcements.

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to


To install prebuilt Electron binaries, use npm. The preferred method is to install Electron as a development dependency in your app:

npm install electron --save-dev --save-exact

The --save-exact flag is recommended as Electron does not follow semantic versioning. For info on how to manage Electron versions in your apps, see Electron versioning.

For more installation options and troubleshooting tips, see installation.

Quick start

Clone and run the electron/electron-quick-start repository to see a minimal Electron app in action:

git clone
cd electron-quick-start
npm install
npm start

Resources for learning Electron

Programmatic usage

Most people use Electron from the command line, but if you require electron inside your Node app (not your Electron app) it will return the file path to the binary. Use this to spawn Electron from Node scripts:

const electron = require('electron')
const proc = require('child_process')

// will print something similar to /Users/maf/.../Electron

// spawn Electron
const child = proc.spawn(electron)


Documentation Translations

Find documentation translations in electron/electron-i18n.


You can ask questions and interact with the community in the following locations:

Check out awesome-electron for a community maintained list of useful example apps, tools and resources.



When using the Electron or other GitHub logos, be sure to follow the GitHub logo guidelines.