Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Nuclide is a collection of packages for Atom to provide IDE-like functionality for a variety of programming languages and technologies.

Important Early Access Notice

Nuclide is currently in a pre-release state, and we are providing early access to a small number of external users in order to help ensure the quality of the project at launch. During this time, please do not share the code more broadly - it is changing fast and we are looking for high quality feedback from a small number of initial users.

As the project progresses over the coming weeks, we will be incrementally adding more of the Nuclide suite of packages in preparation for the full launch. The current release focusses on Hack, Flow, Mercurial, and remote development. It also includes some core utilities that will be used by the next set of packages, to be released very soon.

We want to thank you for your patience and help in putting this project together. Please feel free to raise issues and offer pull requests during this early access period, and we will work hard to get to them!

Thanks! - from all the Nuclide Team.


Most developers choose to maintain individual Node and Atom packages in their own repositories. Because Nuclide is composed of so many packages, we chose to organize all of its code in a single repository rather than across a multitude of repositories. As such, this repository is organized as follows:

  • pkg/ Source code for Nuclide packages.
  • scripts/ Utilities for developing and deploying Nuclide packages.


Currently, Nuclide can be installed only from source. That is, during early access, Nuclide packages are not publicly available in npm or apm. Fortunately, building Nuclide is fairly straightforward.

System Requirements

  • Python 2.6 or later.
  • Atom v0.207.0 or later.
  • node, npm, apm, and git must be on your $PATH. (Node must be v0.12.0 or later.)
  • Optional, but strongly recommended: install the Atom linter package.

Build and install Nuclide

Run the following command from the root of the repository:


or if you are on Windows:

python scripts\dev\setup

If you see any errors, try running the setup script again with the --verbose flag to get more debugging information.

The setup script will fetch the appropriate dependencies from npm and perform any necessary build steps. When complete, you should see several nuclide- packages in your ~/.atom/packages directory. Starting Atom after running ./scripts/dev/setup for the first time may be a little slow because of the large number of Babel files that need to be transpiled. (The results of transpilation are cached for future use. You can see how many files were transpiled from Timecop.)


Currently, Nuclide contains the following Atom packages:

  • nuclide-flow Adds support for Flow. If flow is on your $PATH, then opening .js files with the /* @flow */ pragma under a directory with a .flowconfig should expose information from Flow directly in Atom.
  • nuclide-hack Adds support for Hack.
  • nuclide-hg-repository Local changes to files in a Mercurial repository will be reflected in Atom's file tree and gutter UI as Atom does natively for Git repositories.

Nuclide also adds support for remote development. See the nuclide-server package for more information on setting up remote development.


Read the packages overview to learn how to develop Nuclide.


An open IDE for web and native mobile development, built on top of Atom







No packages published