GuidesExpo Application ServicesAPI Reference
ArchiveExpo SnackDiscordForumsChangelog

Installation


To develop applications with Expo, you will want to start with two tools: the command-line tool called Expo CLI to serve your project, and a mobile client app called Expo Go to open the project on Android and iOS platforms. Additionally, you can use any web browser to run the project on the web.

You don't need macOS to build an iOS app with EAS. You only need an iOS device to run development builds. Windows, Linux, and macOS are all supported as your development machine.

Expo CLI

Expo CLI is a command-line tool that is the primary interface between a developer and other Expo tools. You are going to use it for different tasks in the development life cycle of your project such as serving the project in development, viewing logs, opening the app on an emulator or a physical device, and so on.

Requirements

To use Expo CLI, you need to have the following tools installed on your developer machine:

  • Node.js LTS release - Only Node.js LTS releases (even-numbered) are recommended. As Node.js officially states, "Production applications should only use Active LTS or Maintenance LTS releases".
    • You can install Node.js using a version management tool (such as nvm or volta or any other of your choice) to switch between different Node.js versions.
  • Git
  • For macOS or Linux users: Watchman

Recommended tools

For Windows users we recommend using PowerShell, Bash via WSL, or the VS Code terminal.

Using Expo CLI

Expo CLI is part of the expo package, and you can use it by leveraging npx — a Node.js package runner. No installation is required.

For example, to see a list of available commands in Expo CLI, open the terminal on your development machine and run the following command:

Terminal
# See a list of available commands in Expo CLI
npx expo -h

Now, run the following command:

Terminal
npx expo whoami

This command checks which Expo account is currently authenticated on your machine. You will see a Not logged in message since you are not logged in to an Expo account. You do not need an account to start and can proceed further with your project. However, if you want to register a new Expo account, run the following command to register a new account:

Terminal
npx expo register

If you already have an Expo account, you can log in to it by running the command:

Terminal
npx expo login

Need help? Try searching the forums — which are great resources for troubleshooting.

Expo Go app for Android and iOS

The fastest way to get up and running is to use the Expo Go client app on your Android or iOS device. It allows you to open up apps served through Expo CLI and run your projects faster when developing them. It is available on both the Android Play Store and iOS App Store.

Open the Expo Go app after it has finished installing. If you have created an account with Expo CLI, you can sign in by clicking the Login button in the top header on the Home tab. Signing in will make it easier for you to open projects in the Expo Go app while developing them — they will appear automatically under the Projects section on the Home tab of the app.

Sometimes, it can be useful to run your app directly on your computer instead of on a separate physical device. If you would like to set this up, you can learn more about installing an Android Emulator and installing the iOS Simulator (macOS only).

Next steps

Now that Expo CLI is working and the Expo Go app is installed, let's create a new app and write some code.