Brave browser for Desktop and Laptop computers running Windows, OSX, and Linux
JavaScript CSS NSIS HTML Smarty Ruby
Latest commit d4f79be Jan 20, 2017 @bbondy bbondy Only set active tab when value changes
Fix #6791

Auditors: @bridiver

I think the real raeson this is happening is because of the async updating which we'll be removing, but is too risky to do for 0.13.0.

I think this is probably better to do in general though anyway
Failed to load latest commit information.
.github Update Jan 20, 2017
.vscode Fix vscode config Oct 15, 2016
app Fix safebrowsing toggling Jan 20, 2017
decls Make flow pass on app/index.js Apr 13, 2016
docs Updates to contribution guidelines and other documentation Jan 17, 2017
img fix new tab page Dec 14, 2016
js Only set active tab when value changes Jan 21, 2017
less Fixed the regression of unclickable buttons under #navigator Jan 16, 2017
res Afterall RPMs deserve depdencies as well Dec 21, 2016
test Make addSite wait for added site Jan 20, 2017
tools Muon 2.0.13 Jan 20, 2017
.babelrc Build: Make babel tranpile smarter by using chrome version (fixes #6367) Jan 8, 2017
.editorconfig .editorconfig: override trim_trailing_whitespace for *.properties as … Apr 29, 2016
.flowconfig Make flow pass on app/index.js Apr 13, 2016
.gitignore Revert "Revert "Update: Add copy to clipboard for about brave page (f… Dec 13, 2016
.npmrc Muon 2.0.13 Jan 20, 2017
.nsprc Add nsp security check Jan 20, 2016
.travis.yml Remove Travis cache Dec 16, 2016 Muon 2.0.13 Jan 20, 2017
COMMIT_TEMPLATE Add commit template Aug 29, 2016
LICENSE.txt Add LICENSE.txt Jan 20, 2016 Update to include the link to docs/ Jan 16, 2017 Tweak changelog for 0.12.0 Sep 4, 2016
appveyor.yml Add appveyor.yml Jun 3, 2016
package.json Revert "Add currency symbols where appropriate" Jan 18, 2017
preload-httpse.js exclude https everywhere on Sep 28, 2016
webpack.config.js Disable minify on css Jan 20, 2017

Build Status

Brave Browser

Desktop browser for macOS, Windows, and Linux.

Follow @brave on Twitter for important news and announcements.

For other versions of our browser, please see:


To download the latest release, see our releases page.

You can also visit our website to get the latest stable release (along with a more user-friendly download page).


Join the community if you'd like to get more involved with Brave. You can ask for help, discuss features you'd like to see, and a lot more. We'd love to have your help so that we can continue improving Brave.

Useful documentation

Running from source

If you're setting up using Windows, please see the Building on Windows wiki entry for a full walkthrough.

For other platforms (macOS, Linux) You'll need certain packages installed before you can build and run Brave locally.


  1. nodejs >= 6.1

    Install from your package manager or download from

  2. node-gyp 3.3.1

    sudo npm install -g node-gyp@3.3.1

On Debian/Ubuntu

apt-get install libgnome-keyring-dev build-essential

On Fedora

dnf install libgnome-keyring-devel rpm-build
dnf group install "Development Tools" "C Development Tools and Libraries"


After installing the prerequisites:

  1. Clone the git repository from GitHub:

    # For beta testers:
    git clone --depth 1
    # For devs over HTTPS:
    git clone
    # For devs over SSH:
    git clone
  2. Open the working directory:

    cd browser-laptop
  3. Install the Node (v5+) dependencies:

    npm install

If this fails on Linux with an error related to ad-block, try updating to Node 6.1 and node-gyp 3.3.1 (see discussion at

Instead of npm install you may also install with yarn.


Additional notes on troubleshooting installation issues are in the Troubleshooting page in the Wiki.

Preconfigured VMs

Some platforms are available as pre-configured VMs. See the readme for details.

Running Brave

To run a development version of the browser requires a few steps. The easiest way is just to use two terminals. One terminal can be used just to watch for changes to the code

npm run watch

Now actually run Brave in another terminal

npm start

To run the webdriver tests:

npm run watch-test  or  npm run watch-all

npm test

Some errors related to brave/electron update can be fixed by doing a clean install:

rm -rf node_modules/
npm install

If this does not work, please clear out your ~/.electron first and try again.


Brave uses port 8080 to communicate between its client and server sides by default. If you are using port 8080 for something else (e.g. a web proxy) then you can set the node config to make it use a different one.

e.g. npm config set brave:port 9001

Additional notes on troubleshooting development issues are in the Troubleshooting page in the Wiki.

Running inside of a development version of Muon

By default, we provide pre-built binaries when you npm install with our own fork of electron-prebuilt.

If you want to modify the code to Muon (Brave's Electron fork), then you'll need to build it. An example of why you might do that would be exposing a new event to the webview (from Muon).

To start this process, you'll want to check out our browser-laptop-bootstrap repo. From there, you can follow the steps in our wiki to get up and running.

Packaging for bundles, installers, and updates

Please see our wiki entry for more information about packaging.