Parallax

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 typeExpo SDKExpoReact NativeResult
Bare––0.85.3checked 2026-10-27
Bare––0.86.3checked 2026-10-27
Expo development build5656.0.240.85.3checked 2026-10-27
Expo development build5757.0.310.86.3checked 2026-10-27
Expo development build––0.87no Expo SDK ships React Native 0.87

Supported

WhatState
React Native 0.85, 0.86 and 0.87, bareChecked.
Expo development build, SDK 56 and 57Checked. The network panel needs the SDK, because Expo's debugger reports no request.
React Native later than the list aboveNot checked. Parallax warns.
Expo GoNot checked.
iOS simulator, macOS 26, Apple siliconThe 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, and doctor fails 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_ui takes about 2 s. uiautomator reads the whole screen. app_tree is faster for the React side. If the app on the emulator cannot reach Metro, run adb reverse tcp:<Metro port> tcp:<Metro port>.
  • Metro's ws 7.5.12. Some Expo CLI releases carry a Metro whose ws closes after about 16,000 messages from the app (roughly 4.5 hours after the app connected), with or without Parallax. doctor has a Metro ws library row for it. Restart the app now and then, or raise ws to 7.5.13 or later with an overrides or resolutions entry in your project. Parallax never changes your project.
  • Expo and the build plugin. If your Expo app had no babel.config.js and you add one for the plugin with presets: ['babel-preset-expo'], Metro may fail with "Cannot find module 'babel-preset-expo'". Run npx expo install babel-preset-expo.
  • Network on Expo without the SDK. app_data with source: network says silent. 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 lan may answer 401 (not checked). Use localhost.
  • 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

CodeMeaningFix
metro_unreachableNothing answers at the Metro address.Start Metro again; Parallax keeps retrying. Check the port.
no_app_targetMetro runs, no app connected.Launch the app and check that it loaded the bundle from this Metro.
rn_unsupportedReact Native below 0.85.Upgrade React Native.
sdk_not_readyThe app has no Parallax SDK object yet.Retry in a moment; the app may have just reloaded.
vm_pausedThe JavaScript did not answer.Resume the debugger pause, or retry if the app is busy.
app_reloadingA reload ate the call.Retry; a reload is not a failure.
reconnectingThe app disconnected.Retry shortly; the app has to run again.
timeoutThe 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.

On this page