Skip to content

Getting started

PulseRN combines a desktop debugger with the @pulse-rn/sdk package. The SDK captures development events and sends them to the desktop app’s chronological timeline.

  • A React Native development build
  • PulseRN desktop running on the same computer as Metro
  • Node.js 20.19 or newer only when developing PulseRN itself

Expo Go cannot load native MMKV integrations; use an Expo development build when your app uses MMKV.

Choose a package from desktop installation or GitHub Releases, then open PulseRN. Preview builds are unsigned, so macOS Gatekeeper or Windows SmartScreen may show a warning.

Terminal window
npm install @pulse-rn/sdk

Configure it once during development startup:

import { Platform } from "react-native";
import { ReactNativeDevTool } from "@pulse-rn/sdk";
if (__DEV__) {
ReactNativeDevTool.configure({
host: Platform.OS === "android" ? "10.0.2.2" : "127.0.0.1",
port: 9090,
appName: "MyApp",
enableConsole: true,
enableNetwork: true,
enableErrors: true,
enablePerformance: true,
redaction: { fields: ["password", "token"] },
}).connect();
}

Keep allowInProduction at its default value, false.

Start PulseRN before launching the app. Generate a console.log or network request. A connected device and its events should appear in the desktop timeline.

Use 127.0.0.1 for the iOS Simulator and 10.0.2.2 for the Android Emulator. For an attached Android device, reverse the port:

Terminal window
adb reverse tcp:9090 tcp:9090

For a physical device over Wi-Fi, enable authenticated LAN access in desktop Settings and follow Connections and secure pairing. LAN connections require a one-time pairing code or a previously issued reconnect token.

  • No device appears: confirm PulseRN is open, the port is 9090, and the app is a development build.
  • Android cannot connect: use 10.0.2.2 for an emulator or configure adb reverse for a USB device.
  • Physical device cannot connect: enable LAN access, use the computer’s LAN IP, and create a fresh pairing code.
  • Duplicate network events: avoid enabling an Axios interceptor for requests already captured by the global fetch/XHR instrumentation.

Continue with the complete SDK setup, explore the inspectors, or learn how to use the timeline.