File: dev-client.md | Updated: 11/15/2025
Hide navigation
Search
Ctrl K
Home Guides EAS Reference Learn
Reference version
SDK 53
Archive Expo Snack Discord and Forums Newsletter
Expo DevClientA library that allows creating a development build and includes useful development tools.
Android
iOS
Bundled version:
~5.2.4
Copy page
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
.
Terminal
Copy
- npx expo install expo-dev-client
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
.
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.
app.json
Copy
{ "expo": { "plugins": [ [ "expo-dev-client", { "launchMode": "most-recent" } ] ] } }
| Name | Default | Description |
| --- | --- | --- |
| launchMode | "most-recent" | Determines whether to launch the most recently opened project or navigate to the launcher screen.<br><br>* most-recent - Attempt to launch directly into a previously opened project and if unable to connect, fall back to the launcher screen.<br>* launcher - Opens the launcher screen. |
| addGeneratedScheme | true | By default, expo-dev-client will register a custom URL scheme to open a project. Set this property to false to disable this scheme. |
import * as DevClient from 'expo-dev-client';
DevClient.closeMenu()A method that closes development client menu when called.
Returns:
void
DevClient.hideMenu()A method that hides development client menu when called.
Returns:
void
DevClient.isDevelopmentBuild()A method that returns a boolean to indicate if the current application is a development build.
Returns:
boolean
DevClient.openMenu()A method that opens development client menu when called.
Returns:
void
DevClient.registerDevMenuItems(items)| Parameter | Type |
| --- | --- |
| items | [ExpoDevMenuItem[]](https://docs.expo.dev/versions/v53.0.0/sdk/dev-client#expodevmenuitem) |
A method that allows to specify custom entries in the development client menu.
Returns:
[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) <void>
ExpoDevMenuItemAn object representing the custom development client menu entry.
| Property | Type | Description |
| --- | --- | --- |
| callback | () => void | Callback to fire, when user selects an item. |
| name | string | Name of the entry, will be used as label. |
| shouldCollapse(optional) | boolean | A boolean specifying if the menu should close after the user interaction.<br><br>Default:false |