1--- 2title: Installation 3--- 4 5import { Terminal } from '~/ui/components/Snippet'; 6 7To develop applications with Expo, you need two tools. A command-line tool called [Expo CLI](#expo-cli) to serve your project, and a mobile client app called [Expo Go](#expo-go-app-for-android-and-ios) to open the project on Android and iOS platforms. Additionally, you can use any web browser to run the project on the web. 8 9> **info** You don't need macOS to build an iOS app with [EAS](/eas). You only need an iOS device to run [development builds](/development/introduction). Windows, Linux, and macOS are all supported as your development machine. 10 11## Expo CLI 12 13[Expo CLI](/workflow/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. 14 15### Requirements 16 17To use Expo CLI, you need to have the following tools installed on your developer machine: 18 19- [Node.js LTS release](https://nodejs.org/en/) - Only Node.js LTS releases (even-numbered) are recommended. 20 As Node.js [officially states](https://nodejs.org/en/about/releases/), "Production applications should only use Active LTS or Maintenance LTS releases". 21- [Git](https://git-scm.com) 22- For macOS or Linux users: [Watchman](https://facebook.github.io/watchman/docs/install#buildinstall) 23 24### Recommended tools 25 26- [Yarn](https://classic.yarnpkg.com/en/docs/install) 27- [VS Code Editor](https://code.visualstudio.com/download) 28 - [VS Code Expo Extension](https://marketplace.visualstudio.com/items?itemName=byCedric.vscode-expo) for Expo config debugging and autocomplete. 29 30For Windows users we recommend using [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-windows), Bash via WSL, or the VS Code terminal. 31 32### Using Expo CLI 33 34Expo CLI is part of the `expo` package, and you can use it by leveraging `npx` — a Node.js package runner. No installation is required. 35 36For example, to see a list of available commands in Expo CLI, open the terminal on your development machine and run the following command: 37 38<Terminal cmd={['# See a list of available commands in Expo CLI', '$ npx expo -h']} /> 39 40Now, run the following command: 41 42<Terminal cmd={['$ npx expo whoami']} /> 43 44This 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. 45You 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: 46 47<Terminal cmd={['$ npx expo register']} /> 48 49If you already have an Expo account, you can log in to it by running the command: 50 51<Terminal cmd={['$ npx expo login']} /> 52 53> **Need help?** Try searching the [forums](https://forums.expo.dev) — which are great resources for troubleshooting. 54 55## Expo Go app for Android and iOS 56 57The fastest way to get up and running is to use the [Expo Go](https://expo.dev/client) 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. 58 59- [Android Play Store](https://play.google.com/store/apps/details?id=host.exp.exponent) - Android Lollipop (5) and greater 60- [iOS App Store](https://apps.apple.com/app/expo-go/id982107779) - iOS 13 and greater 61 62Open 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. 63 64> Sometimes, it can be useful to run your app directly on your computer instead of on a separate physical device. 65> If you would like to set this up, you can learn more about [installing an Android Emulator](/workflow/android-studio-emulator) and [installing the iOS Simulator (macOS only)](/workflow/ios-simulator). 66 67## Next steps 68 69Now that Expo CLI is working and the Expo Go app is installed, [let's create a new app and write some code](/get-started/create-a-new-app). 70