NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3720 most downloaded on npm
The Expo CLI
Last release 2 days ago
18 Sep 2026
Ships on a steady schedule
a new release about every 9 days
Some releases are documented
notes for 25 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
516 releases · first in 2022
One column per quarter.
Update @react-native/dev-middleware to 0.74.85. (#30139 by @gabrieldonadel)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Resolve module specifiers to posix paths for Metro. (#29696 by @byCedric)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Add experimental React Compiler support. (#29168 by @EvanBacon)
--port 0 to use any free port. (#29466 by @EvanBacon)_This version does not introduce any user-facing changes._
Fixed broken React DevTools since SDK 51. (#29181 by @kudo)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Resolve real path of entry file for expo export:embed. (#28926 by @byCedric)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Force exit the export command to prevent hanging processes. (#28735 by @EvanBacon)
<root>/node_modules as extraneous watchFolder. (#28778 by @byCedric)findUp utilities for Windows by aborting when path.dirname(cwd) returns cwd. (#28801 by @byCedric)Filter out unavailable connected devices when running npx expo run:ios -d. (#28642 by @gabrieldonadel)
npx expo run:ios -d. (#28642 by @gabrieldonadel)Bump experiments.reactCanary to React 19 beta commit. (#28592 by @EvanBacon)
experiments.reactCanary to React 19 beta commit. (#28592 by @EvanBacon)_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Prevent overwriting exported Atlas data when exporting web with static renderer. (#28502 by @byCedric)
-PreactNativeArchitectures to gradle. (#28548 by @alanjhughes)Prevent duplicate watchman warnings. (#28461 by @EvanBacon)
Fix launching web from run:ios. (#28439 by @EvanBacon)
Support building for macOS devices and visionOS simulators with npx expo run:ios -d. (#28430 by @EvanBacon)
npx expo run:ios -d. (#28430 by @EvanBacon)Add ability to install apps on OTA Apple devices with expo run:ios -d. (#28402 by @EvanBacon)
expo run:ios -d. (#28402 by @EvanBacon)expo start and expo export. (#27895 by @byCedric)_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Fixed TypeError: osascript(...) is not a function when pressing "j" to open JS debugger. (#28315 by @kudo)
Add source map outputs when exporting API route bundles. (#27913 by @kitten)
react-server support. (#27264 by @EvanBacon)expo lint command to configure and run ESLint. (#28104 by @kadikraman, @byCedric)react-server bundles. (#28238 by @EvanBacon)(a,b) with server output. (#27462 by @EvanBacon)console.log statements from colliding with Metro logs. (#27217 by @EvanBacon)error.code check for Deno support. (#27822 by @littledivy)experiments.serverComponents to experiments.reactCanary. ([#27303]( (#27923 by @EvanBacon)@expo/cli. (#27061 by @byCedric)ExpoRequest/ExpoResponse imports from @expo/server. (#27261 by @kitten)__typetests__ files. (#27089 by @byCedric)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Filter extra avd info when listing emulators. (#27497 by @gabrieldonadel)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Add --no-bytecode flag to expo export to disable generating Hermes bytecode for use with debugging tools. (#26985 by @EvanBacon)
--no-bytecode flag to expo export to disable generating Hermes bytecode for use with debugging tools. (#26985 by @EvanBacon)Add stack traces for warnings and errors that originate from API routes or server rendering. (#26812 by @EvanBacon)
.gz files as binary to avoid corruption when unpacking with expo prebuild --template. (#26741 by @shirakaba)Add better error when metro.config.js does not extend expo/metro-config. (#26726 by @EvanBacon)
metro.config.js does not extend expo/metro-config. (#26726 by @EvanBacon)tsconfig.json resolution of baseUrl when paths is not defined. (#26734 by @EvanBacon)100% when bundling app. (#26775 by @byCedric)[Android] correct drawable types in updates embedded manifest. (#26676 by @douglowder)
Add support for GitHub URLs in expo prebuild --template. (#26631 by @byCedric)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Hide the deprecated export:web command from the general help output. (#26480 by @EvanBacon)
expo customize to show public instead of web when Metro web is used. (#26473 by @EvanBacon)origin and headOrigin settings. (#26463 by @kudo)web.bundler to metro if missing and/or @expo/webpack-config is not installed (#26452 by @marklawlor)export:embed, run android, and run ios should take precedence (#26471 by @kitten)export:web command from the general help output. (#26480 by @EvanBacon)@expo/server to be a dependency of expo-router. (#25937 by @EvanBacon)templateChecksum for prebuild to check the current template version. (#26414 by @kudo)Add default user to Android adb install command. (#26388 by @EvanBacon)
Fix metro asset call in expo-updates embedded manifest creation step. (#26307 by @wschurman)
Update import for type generation. (#26145 by @EvanBacon)
Import ExpoConfig from direct dependency @expo/config. (#25989 by @byCedric)
Update run:ios build warning formatting for SDK 50. (#25978 by @EvanBacon)
run:ios build warning formatting for SDK 50. (#25978 by @EvanBacon)@expo/image-utils dependency. (#25990 by @byCedric)find-yarn-workspace-root dependency. (#25991 by @byCedric)lodash.debounce dependency. (#25990 by @byCedric)@react-native/dev-middleware dependency. (#26000 by @byCedric)web.output with API Routes. (#25931 by @marklawlor)Invalidate API Route cache whenever any file in the repo changes. (#25936 by @EvanBacon)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Add back legacy inspector js middleware for dev menu. (#25881 by @byCedric)
tsconfig.json attribute baseUrl will no longer default to enabled when paths are defined. (#25510 by @EvanBacon)
tsconfig.json attribute baseUrl will no longer default to enabled when paths are defined. (#25510 by @EvanBacon)tsconfig.json attribute baseUrl will now be resolved before node modules instead of after. (#25510 by @EvanBacon)tsconfig.json attribute baseUrl will no longer be resolved if a group from paths are matched first. (#25510 by @EvanBacon)react-native-web@0.19.8. (#25429 by @EvanBacon)react-native-vector-icons to @expo/vector-icons in the Metro resolver. (#25512 by @EvanBacon)expo run command to select platform to run. (#23514 by @byCedric)EXPO_USE_UNSTABLE_DEBUGGER to open new React Native JS Inspector. (#25671 by @byCedric)--max-workers flag in npx expo export. (#25710 by @EvanBacon)bundledNativeModules.json for dependencies validation when using canary versions. (#25600 by @byCedric)+not-found and *+api routes from typed routes (#24496 by @marklawlor)extraNodeModules augmentation for web resolution in favor of standard aliases. (#25506 by @EvanBacon)server/ and client/ subfolders when exporting. (#25640 by @kitten)npx expo prebuild will only install Node dependencies if the dependencies have changed. (#25211 by @EvanBacon)
npx expo prebuild will only install Node dependencies if the dependencies have changed. (#25211 by @EvanBacon)npx expo prebuild will no longer modify devDependencies of the package.json. (#25211 by @EvanBacon)basePath to baseUrl and expose to bundles with process.env.EXPO_BASE_URL. (#25305 by @EvanBacon)--dump-sourcemap to --source-maps with -s alias in expo export. (#25303 by @EvanBacon)babel-preset-expo to support source maps. (#25239 by @EvanBacon)generateStaticParams in server manifest. (#25003 by @EvanBacon)src/app directory. (#24968 by @EvanBacon)npx expo export and npx expo export:embed from hanging with file watchers. (#24952 by @EvanBacon)Runtime.callFunctionOn messages from Vscode debugger to avoid Hermes crashes. (#25270 by @byCedric)react-native/Libraries/Image/AssetRegistry to @react-native/assets-registry/registry. (#25265 by @EvanBacon)src/app directory to prevent spam. (#25000 by @EvanBacon)expo-cli when the upgrade subcommand is used. (#25168 by @alanjhughes)Enable tsconfigPaths by default flag (#24490 by @marklawlor)
tsconfigPaths by default flag (#24490 by @marklawlor)file to server manifest to support mjs/cjs API Routes. (#24739 by @EvanBacon)+not-found convention for 404s. (#24528 by @EvanBacon)react-native-web BackHandler to remove excessive error message. (#24726 by @EvanBacon)npx expo install --check|fix now checks for and fixes an out-of-date expo package patch release (#24142 by @keith-kurak)--dump-sourcemap is not provided. (#24689 by @EvanBacon)xcrun devicectl for iOS 17 to launch the app. (#24635 by @byCedric)baseUrl with new resolver. (#24673 by @EvanBacon)expo.entryFile in the app.json. (#24688 by @EvanBacon)isCSSEnabled flag from e2e tests (#24489 by @marklawlor)expo instead of expo-router. (#24255 by @marklawlor)Fix SPA web mode in Expo Router. (#24472 by @EvanBacon)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Drop /logs and remove @expo/dev-server package. (#24272 by @EvanBacon)
/logs and remove @expo/dev-server package. (#24272 by @EvanBacon)minipass@3.3.6 to use built-in types. (#24402 by @byCedric)tar@6.1.13 to avoid minipass compatibility issues. (#24402 by @byCedric)process.env polyfill strip to expo/metro-config. (#24455 by @EvanBacon)getRuntimeVersionAsync and getRuntimeVersionNullableAsync. (#24126 by @mccraveiro)Bump minimum required Xcode version. (#24205 by @EvanBacon)
expo install, start, prebuild. (#24162 by @EvanBacon)basePath support for npx expo export. (#23911 by @EvanBacon)npx expo export:embed. (#24095 by @EvanBacon)expo config --json. (#24192 by @EvanBacon)react-native-web for static rendering with Expo Router. (#24093 by @EvanBacon)EXPO_USE_METRO_WORKSPACE_ROOT is used. (#23910 by @EvanBacon)npx expo run:ios. (#23831 by @EvanBacon)EXPO_SKIP_MANIFEST_VALIDATION_TOKEN usage. (#23890 by @EvanBacon)_ in protocol. (#23519 by @byCedric)@expo/cli. (#22941 by @byCedric)md5-file library. (#24090 by @EvanBacon)--generate-static-view-configs flag from npx expo export:embed. (#24095 by @EvanBacon)expo export for Metro static web. (#23987 by @EvanBacon)Android package name validation to disallow the Java keyword native. (#24155 by @alanjhughes)Drop support for sending logUrl in manifests (unimplemented feature from expo-cli). (#18596 by @EvanBacon)
logUrl in manifests (unimplemented feature from expo-cli). (#18596 by @EvanBacon).mjs extensions in Expo Metro. (#23528 by @EvanBacon)Fixed typo in connection message when opening React DevTools (#23672 by @frankcalise)
Nothing published for this version
Prevent additional logs from showing in expo config --json. (#24192 by @EvanBacon)
expo config --json. (#24192 by @EvanBacon)Nothing published for this version
Add expo customize tsconfig.json command. (#23642 by @marklawlor)
expo customize tsconfig.json command. (#23642 by @marklawlor)Fallback to xcrun devicectl for iOS 17 to launch the app. (#24635 by @byCedric)
Add support for bun as a package manager. (#24344 by @EvanBacon)
Your coding agent can read these notes before it upgrades. Set up the MCP server →