Compatibility
Which React Native, Expo and platform versions Parallax was checked on, and what is not supported.
Parallax needs React Native 0.85 or later (Hermes, new architecture) and a running Metro dev server. doctor and status say "tested on React Native …" and warn when your version is newer or older than the list below. A warning is not a refusal: the tree and the picker may still answer, or show ? nodes or say "unchecked".
Checked versions
This matrix lists the compatibility fixtures. Bare React Native 0.87.1 was checked separately.
| App type | Expo SDK | Expo | React Native | Result |
|---|---|---|---|---|
| Bare | – | – | 0.85.3 | checked 2026-10-27 |
| Bare | – | – | 0.86.3 | checked 2026-10-27 |
| Expo development build | 56 | 56.0.24 | 0.85.3 | checked 2026-10-27 |
| Expo development build | 57 | 57.0.31 | 0.86.3 | checked 2026-10-27 |
| Expo development build | – | – | 0.87 | no Expo SDK ships React Native 0.87 |
Supported
| What | State |
|---|---|
| React Native 0.85, 0.86 and 0.87, bare | Checked. |
| Expo development build, SDK 56 and 57 | Checked. The network panel needs the SDK, because Expo's debugger reports no request. |
| React Native later than the list above | Not checked. Parallax warns. |
| Expo Go | Not checked. |
| iOS simulator, macOS 26, Apple silicon | The device layer (screen and input). |
| Android emulator (AVD Pixel 9 Pro XL, Android 15) | The live screen and input in the window, the agent's device tools, and the app side, checked on React Native 0.86.3 bare. Needs the Android SDK (adb). |
Not supported
- React Native below 0.85. Tools return
rn_unsupported, anddoctorfails the React Native row. Older Metro allows one debugger per app, so a second one evicts the first (your DevTools). - Physical devices, iOS or Android.
- Release builds. Parallax and its build plugin do nothing there, on purpose.
- A Metro reached only over a tunnel or a LAN address. Not checked.
Known limits
- Android:
device_uitakes about 2 s.uiautomatorreads the whole screen.app_treeis faster for the React side. If the app on the emulator cannot reach Metro, runadb reverse tcp:<Metro port> tcp:<Metro port>. - Metro's
ws7.5.12. Some Expo CLI releases carry a Metro whosewscloses after about 16,000 messages from the app (roughly 4.5 hours after the app connected), with or without Parallax.doctorhas aMetro ws libraryrow for it. Restart the app now and then, or raisewsto 7.5.13 or later with anoverridesorresolutionsentry in your project. Parallax never changes your project. - Expo and the build plugin. If your Expo app had no
babel.config.jsand you add one for the plugin withpresets: ['babel-preset-expo'], Metro may fail with "Cannot find module 'babel-preset-expo'". Runnpx expo install babel-preset-expo. - Network on Expo without the SDK.
app_datawithsource: networksayssilent. Add the SDK. - Localhost only. Parallax connects to Metro as
127.0.0.1:<Metro port>, and Expo's Metro accepts only loopback hosts. A Metro started with--host lanmay answer 401 (not checked). Uselocalhost. - One Parallax core per app. Two agents without the Parallax app each start a core, and the second is refused with
no_app_target. Open the Parallax app so all sessions share one core. - A paused or busy app looks the same to Parallax:
vm_paused. Resume it in DevTools; Parallax never resumes a pause itself.
When something fails
| Code | Meaning | Fix |
|---|---|---|
metro_unreachable | Nothing answers at the Metro address. | Start Metro again; Parallax keeps retrying. Check the port. |
no_app_target | Metro runs, no app connected. | Launch the app and check that it loaded the bundle from this Metro. |
rn_unsupported | React Native below 0.85. | Upgrade React Native. |
sdk_not_ready | The app has no Parallax SDK object yet. | Retry in a moment; the app may have just reloaded. |
vm_paused | The JavaScript did not answer. | Resume the debugger pause, or retry if the app is busy. |
app_reloading | A reload ate the call. | Retry; a reload is not a failure. |
reconnecting | The app disconnected. | Retry shortly; the app has to run again. |
timeout | The app did not connect in time. | Launch the app and start Metro. |
Try in this order: run npx -y @parallax-rn/mcp@0.1.0-beta.2 doctor in your project root; restart Metro with --reset-cache after any plugin change (npx react-native start --reset-cache (bare React Native) or npx expo start -c (Expo)); look at the ws row; close DevTools and other debuggers and see whether the symptom changes.