MDN will be in maintenance mode on Wednesday September 20th, starting at 10 AM Pacific / 5 PM UTC, for about 1 hour.

This article runs through in detail how to run the Gaia codebase locally, and what tools are available in this setup.

To start with, we should point out that you DON'T have to build Gecko, or B2G, to contribute to Gaia. You just need to download the Gaia source code and have the ability to run and edit it in some way.

There are several different ways to run Gaia:

  • Flash your phone with an updated Gaia build.
  • Run your Gaia inside WebIDE.
  • Launch Gaia inside our Firefox Mulet tool for running Gaia on the Desktop.

You can find concise information on running it in these different ways on our Different ways to run Gaia page, along with links to more detailed information as required. In general these are ordered from most complex (but most realistic experience provided) to easiest (but least realistic).

In this article we'll be concentrating on running Gaia inside Firefox Mulet or in WebIDE — for most changes you'll want to make to the Gaia codebase, this offers the quickest mechanism for testing updates, but obviously there are some features (such as testing device APIs or interaction with phone hardware) that will need a real device.

Note: To get further help with Gaia, the best places to go are the #fxos IRC channel (see Mozilla IRC for more information) and the dev-fxos mailing list.

Running your own Gaia build

Note: For a simpler, one shot build process, try the Foxbox tool. Windows users especially will benefit from this, as the regular Gaia build procedure doesn't work on a standard Windows environment.

  1. First, make a fork of the main Gaia repo on Github.
  2. Next, clone your fork locally:
    git clone
  3. Add the upstream like this:
    cd gaia
    git remote add upstream
  4. Now you need to create a Gaia profile. Running make inside your repo folder creates a profile in the profile directory, which is setup for optimal debugging.
  5. When your debug profile has been built, it will give you a message along the lines of "Profile Ready: please run [b2g|firefox] -profile /Users/chris/git/gaia/profile". Ignore this, and instead  following the linked instructions to run it in Mulet or WebIDE.

Troubleshooting and known issues

Error: Python executable "python3" is v3.x, which is not supported by gyp.

On some Linux distributions (eg: Archlinux), the default python is python3. This makes npm fail when running some commands (eg. when running tests). To fix it once and for all, you can run the following command:

npm config set python python2

You can look at this Stack Overflow page for other solutions.

Then you should delete your node_modules directory and run the failed command again.

Please Install NodeJS -- (use aptitude on linux or homebrew on osx)

So, you get this error although you think you installed it. Chances are you're running Debian or another Debian-based distribution like Ubuntu. On these distributions, NodeJS is contained in the nodejs package, and you can install the nodejs-legacy package to set up everything correctly:

sudo aptitude install nodejs-legacy

If you have issues installing this package, maybe you're using Chris Lea's PPA for Node; please remove it before moving forward.

Different gaia branches require different node versions; for instance if you previously built the v2.5 branch with node 0.10 and want to switch to the master branch, you may need to run something like:

npm use 4.2 && rm -r node_modules && npm install --production


Document Tags and Contributors

 Last updated by: chrisdavidmills,