This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

Expo DevClient iconExpo DevClient

A library that allows creating a development build and includes useful development tools.

Android
iOS
tvOS
Recommended version:
~56.0.27

expo-dev-client adds various useful development tools to your debug builds:

Expo documentation refers to debug builds that include expo-dev-client as development builds.

Installation

Terminal
- npx expo install expo-dev-client
- yarn expo install expo-dev-client
- pnpm expo install expo-dev-client
- bun expo install expo-dev-client

When you create a build with EAS Build, set developmentClient to true on a build profile in your eas.json. Without it, EAS Build produces a standalone build with no development tools. For example:

eas.json
{ "build": { "development": { "developmentClient": true, "distribution": "internal" %%placeholder-start%%... %%placeholder-end%% } } %%placeholder-start%%... %%placeholder-end%% }

For more information, see the developmentClient property in the eas.json reference.

If you are installing this in an existing React Native app, start by installing expo in your project. Then, follow the instructions from Install expo-dev-client in an existing React Native project.

Configuration in app config

You can configure development client launcher using its built-in config plugin if you use config plugins in your project (Continuous Native Generation (CNG)). The plugin allows you to configure various properties that cannot be set at runtime and require building a new app binary to take effect. If your app does not use CNG, then you'll need to manually configure the library.

Example app.json with config plugin

app.json
{ "expo": { "plugins": [ [ "expo-dev-client", { "launchMode": "most-recent", "defaultLaunchURL": "http://localhost:8081", "android": { "defaultLaunchURL": "http://10.0.0.2:8081" }, "toolsButton": true, "skipOnboarding": false, "showMenuAtLaunch": true } ] ] } }

Configurable properties

NameDefaultDescription
launchMode"most-recent"

Determines whether to launch the most recently opened project or navigate to the launcher screen.

  • most-recent - Attempt to launch directly into a previously opened project and if unable to connect, fall back to the launcher screen.
  • launcher - Opens the launcher screen.
addGeneratedSchemetrue

By default, expo-dev-client will register a custom URL scheme to open a project. Set this property to false to disable this scheme.

defaultLaunchURL-

Launch directly into this URL instead of navigating to launcher screen. If launchMode is set to most-recent, then launcher will use the defaultLaunchURL as a fallback.

toolsButtontrue

Whether to show the floating tools button.

skipOnboardingfalse

Skip the onboarding screen that shows in the dev menu on the first launch of the app.

showMenuAtLaunchtrue

Show the developer menu immediately after launching the app.

TV support

  • Android TV: All operations are supported, similar to an Android phone.
  • Apple TV: Basic operations with a local or tunneled packager are supported. Authentication to EAS and listing of EAS builds and updates is not yet supported.

API

import * as DevClient from 'expo-dev-client';

No API data file found, sorry!