Changelog

0.1.0-beta.2

Closed beta · Unreleased

The first closed beta of Parallax. It gives an AI agent, and you, the same live view of a running React Native app.

What is in it

  • MCP server (@parallax-rn/mcp). 19 tools for the agent. Status: status, doctor. Simulator and emulator: device_list, device_boot, device_screenshot, device_ui, device_tap, device_type, device_swipe, device_open_url. Running app: app_launch, app_reload, app_logs, app_errors, app_tree, app_data (network, state and navigation), app_commands, app_command_run. Inbox: parallax_inbox. Errors come with a stable code and a Fix: line.
  • SDK (@parallax-rn/sdk). Started behind __DEV__, it gives the app's logs, uncaught errors and registered commands, Redux and Zustand stores and TanStack Query clients, the navigation container's route and history, and the network requests on Expo, where the debugger reports none.
  • Babel plugin (@parallax-rn/babel-plugin). Adds source tables, so the component tree shows file:line for each component.
  • Desktop app. The same view for you: the live screen of an iOS simulator or an Android emulator with input, the Inspector with the element picker, logs, errors, and network, state and navigation panels, terminal tabs with a session list, and the approval queue. It is invite-only in the closed beta.
  • Claude Code and Codex setup. npx -y @parallax-rn/mcp@0.1.0-beta.2 setup claude or setup codex registers the server and installs the skill. It shows every change as a diff and asks first; --undo removes it.

Added during the beta's testing

  • Security tab in the window's Device panel: the security hints of the selected device's app by severity, with place, masked evidence and hint; Attach to a message, Accept… with a reason into .parallax/security.json, Re-run. It shows the same report as app_data { source: "security" }.
  • Secrets stored in plain text (ST-2): the app's AsyncStorage, MMKV, UserDefaults, SharedPreferences and SQLite files are read from the Mac on a simulator or emulator, read only, with masked evidence; also security --device --app-id.
  • Sensitive screens not protected from screenshots (ST-3): on Android, FLAG_SECURE is checked on the app's window while a screen with a password, PIN or card field is shown; on iOS, an info hint from the project.
  • A debuggable iOS release build (CD-2) is read from the Xcode project (get-task-allow, ENABLE_TESTABILITY, DEBUG=1, a development identity with manual signing) and, with security --app, from a built app's entitlements.

Fixed during the beta's testing

  • The app opened from Finder or the Dock finds AXe: the Homebrew folders are added to its PATH.
  • setup through the app's own server no longer fails with "the skill file is missing from the package".
  • Sending to a tab target no longer fails with a false "the core is not running".
  • Resume for Codex prefills codex resume --no-daemon <id>, so Parallax can tell the tab of the resumed session.
  • An emulator booted from the window stays booted after Parallax quits; if its boot fails, Parallax stops the emulator it started.
  • The first picture after an emulator Boot comes up without choosing the device again.
  • Log lines no longer show raw ANSI colour codes.
  • When the window's saved device is gone at start, the window picks the next saved booted device, else the first booted one, instead of "No device".
  • The composer keeps the message field usable and Send to agent visible with long status lines; the device chooser in a narrow side-by-side column no longer breaks names letter by letter.

Known limits

  • Screen and input on the iOS simulator and the Android emulator (checked on the AVD Pixel 9 Pro XL, Android 15). On Android device_ui takes about 2 s.
  • macOS on Apple silicon.
  • React Native 0.85 or later, with Hermes and the new architecture. Checked on 0.85, 0.86 and 0.87, bare and Expo development builds (SDK 56 and 57). Expo Go is not checked.
  • Physical devices and release builds are not supported.
  • The server, the SDK and the plugin must have the same version.