Skip to content
TraceItX Docs
Documentation

Configuration

One config object on the provider. This page is the complete list for React Native.

Updated

<TraceItXProvider
  config={{
    apiKey: 'txx_live_…',
    integrations: [txNav, consoleIntegration()],
  }}
>
  <RootNavigator />
</TraceItXProvider>

Options

OptionTypeDefaultWhat it does
apiKeystringRequired. Your app’s SDK key.
appNamestringNot forwarded to native. Accepted by the provider, but extractBridgeConfig does not pass it, so it overrides nothing.
appVersionstringNot forwarded to native, same as appName.
appBuildstringNot forwarded to native, same as appName.
integrationsTraceItXIntegration[][]Navigation AND console integrations. See Screen tracking and Console.
captureScreenshotbooleantrueIgnored by native. Accepted and forwarded, but neither platform reads it — the screenshot is always taken. Mask instead: see Sensitive content.
crashReporting.disabledbooleanfalseUncaught errors never become unattended reports.
networkBodies.disabledbooleanfalseClient veto over body capture. Inert on React Native today — see Network bodies.
installIdentifier.disabledbooleanfalseStop sending the per-install identifier used to count installs against your plan. Nothing about the person is derived from it. Can turn it off, never on.
attachPinUi'builtin' | 'custom' | 'off''builtin'Who presents the phone-pairing PIN on a TV.
companionDeviceIdstringAn MDM id or serial you already trust, hashed natively before it leaves the device.
companionBadge.enabledbooleantrueShow the pairing badge on TV.
companionBadge.positioncornerbottom-rightAlso bottom-left, top-right, top-left.
themeobjectEight colour roles. See Branding.

networkBodies.disabled and installIdentifier.disabled are client vetoes: a client can turn the feature off and can never turn it on. See Server config.

crashReporting.disabled has no server gate — it is a plain local setting.

The hook

const { open, setUser, addBreadcrumb, recordScreen, setExtra } = useTraceItX();
MethodWhat it does
open()Promise<ReporterResult>. Opens the reporter, resolves on submit or cancel.
setUser(user?)Attach or clear the end user. Call with no argument to clear. See Identity.
addBreadcrumb(input)Add a custom entry to the trail.
recordScreen(name, data?)Mark a screen transition.
setExtra(value)Free-form string on the next report. Capped — see Errors & limits.
sensitive.register / unregisterLow-level masking by native tag — normally reached through the component. See Sensitive content.

setUser clears by being called with no argument, not with null. That is a React Native codegen constraint, not a style choice: the bridge cannot express a nullable struct parameter, so absence is the only way to say “no user”.

open, setUser, addBreadcrumb, recordScreen and setExtra are also exported from the package root for code outside the React tree — a global handler, a deep-link handler. They do nothing until the provider has mounted (open() rejects with TraceItXNotMountedError).

What React Native does not have

No hotkey or cspNonce — those are browser concerns, and the reporter here is native UI. No debug, disabled or onError option. No client-side redaction or sessionReplay block: replay is enabled entirely from the server, and redaction runs with built-in default-deny rules rather than a config you pass.

Two-way replies are not implemented in the React Native SDK — no reply UI and no polling. The feature is web-only today.

There is no setIdentityToken on the hook either — verified identity is not part of the React Native surface. See User identity.

To keep TraceItX out of a build, do not mount the provider.