React Native TV · Beta

Debug React Native TV apps with Buoy

Updated September 2026

Connect a compatible React Native TV app to Buoy Desktop. Headless mode keeps the floating menu off the TV screen. TV Remote records received input, and Focus Inspector shows observed focus transitions and possible navigation problems.

Install and configure your account

Start with a compatible react-native-tvos development build. Focus Inspector requires New Architecture event support. Follow native setup requirements for your selected packages; a Metro restart alone may not be sufficient.

npm install @buoy-gg/core @buoy-gg/external-sync @buoy-gg/tv-remote @buoy-gg/focus-inspector
npx --package=@buoy-gg/core buoy login

For Expo, use the account key the CLI saved to your env file. React Native CLI apps must supply the key through their own environment configuration. Mount Buoy inside any providers required by your selected tools:

import { FloatingDevTools } from "@buoy-gg/core";

// Add alongside your app content, inside the required providers.
<FloatingDevTools
  headless
  licenseKey={process.env.EXPO_PUBLIC_BUOY_KEY}
  externalSync={{ deviceName: "Living Room TV" }}
/>

Open Buoy Desktop, sign in and select the TV connection. For an Android TV emulator, forward the broker port to the host:

adb -s <serial> reverse tcp:42831 tcp:42831

Physical devices need a reachable broker address. Follow the TV installation guide for connection and host-tool setup.

Keep the TV app headless

Focusable overlays can affect D-pad navigation. Headless mode avoids adding Buoy's floating menu to the screen while keeping supported capture and sync active. It does not configure every store or router automatically.

Compare a known focus path with capture enabled and disabled if you suspect interference. A successful check in one app does not prove zero overhead or identical focus behavior in every layout.

TV Remote and Focus Inspector

TV Remote

Record supported remote events and replay sequences through available host input. Compare received events with the app behavior.

npm i @buoy-gg/tv-remote

Focus Inspector

Inspect observed focus transitions, discovered focusable elements and possible focus problems. Findings need review in your layout.

npm i @buoy-gg/focus-inspector

Record a short remote sequence and compare the events with what the TV did. Focus findings are heuristics: an unvisited element is not necessarily unreachable. Check your layout and focus guides before treating a flag as a defect.

See the TV Remote and Focus Inspector guides for recording, scanning and action limits.

Host input support

TargetRecord received eventsSend input from the host
Android TV emulator or authorized deviceSupported TV eventsadb; target must be reachable
Apple TV simulatorSupported TV eventsidb arrows, select and menu; no play/pause in this path
Physical Apple TVSupported TV eventsNot supported by Buoy

Desktop sends host input; the TV package observes events delivered to the app. Not every OS-level event reaches JavaScript. The Apple TV simulator path needs idb installed separately from Xcode. Use the installation guide for the host commands.

Other tools on TV

Install the inspectors your app needs and configure their adapters. Data availability depends on the TV fork, build, installed tools and capture start.

Network

Inspect supported requests captured after instrumentation starts, with available headers, bodies and timing.

Storage

Inspect configured storage adapters. Editing and retained history depend on the adapter and plan.

Console

Inspect supported JavaScript logs captured after setup, subject to retention limits.

Env

Inspect the configuration values explicitly supplied to the tool.

Routes

Inspect connected navigation state and use supported route actions with the required parameters.

Events Timeline

Review events from configured sources in a shared timeline.

React Query

Inspect the connected query client and available cache controls.

Redux

Inspect actions and state from the store connected to Buoy.

Zustand

Inspect registered stores and captured changes.

Jotai

Inspect tracked atoms and captured updates.

Does TV need a separate Buoy SDK?

The integration uses React Native Buoy packages in a compatible react-native-tvos app. Use headless mode and the TV-specific setup guide; phone-app compatibility alone does not verify a TV build.

Can I replay input on a physical Apple TV?

Buoy can record supported events received by the app. Host-side replay is not supported for physical Apple TV hardware.

Is it free?

A Free Buoy account includes development-build inspection and Desktop at Free limits. Free includes the basic MCP. Pro adds the full MCP and supported React Native release tools. Configure release sync explicitly when connecting a release build.

Does headless mean there is no background work?

No. Capture and sync can remain active without a visible menu. Measure overhead and navigation behavior in your own app.

Connect your TV app

Start with a Free account, install the required packages and follow the TV connection guide.

Quick startnpm install @buoy-gg/core @buoy-gg/external-sync