Desktop browser for macOS, Windows, and Linux.
Follow @brave on Twitter for important news and announcements.
For other versions of our browser, please see:
- iPhone - brave/browser-ios
- Android - brave/browser-android-tabs
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).
Brave supports 4 release channels: Release, Beta, Developer, and Nightly.
Join the Q&A 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.
Join our Discord community chat for higher bandwidth discussions.
- See CONTRIBUTING.md for tips and guidelines about contributing.
- See docs/style.md for information on styling.
- See docs/tests.md for information on testing, including how to run a subset of the tests.
- See docs/debugging.md for information on debugging.
- See docs/translations.md to learn how you can help us with translations (localization).
- See docs/linuxInstall.md for information on installing the browser on Linux distributions.
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.
-
the current LTS version of
nodejs
Install from your package manager, nvm, or download from https://nodejs.org
-
npm version 5 or greater (to make use of the
package-lock.json
)
Ensure you have Xcode Command Line Tools installed:
xcode-select --install
apt-get install build-essential rpm ninja-build
dnf install rpm-build
dnf group install "Development Tools" "C Development Tools and Libraries"
sudo eopkg it -c system.devel gconf
After installing the prerequisites:
-
Clone the git repository from GitHub:
# For beta testers: git clone --depth 1 https://github.com/brave/browser-laptop # For devs over HTTPS: git clone https://github.com/brave/browser-laptop # For devs over SSH: git clone [email protected]:brave/browser-laptop.git
-
Open the working directory:
cd browser-laptop
-
Install the Node dependencies:
npm install
Instead of npm install
you may also install with yarn running yarn install
.
Additional notes on troubleshooting installation issues are in the Troubleshooting page in the Wiki.
Some platforms are available as pre-configured VMs. See the readme for details.
Running a development version of the browser requires two steps. The easiest way is just to use two terminals (or one terminal with two tabs). First, you'll need to start the watch process (which runs webpack and watches for changes to the code)
npm run watch
Second, you can start the actual Brave process (in another terminal or tab)
npm start
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.
To run the webdriver tests
npm run watch-test or npm run watch-all
Now run tests in another terminal
npm test
See docs/tests.md for more information.
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.
Please see our wiki entry for more information about packaging.