React DevTools
Inspect React component trees, props, state, Suspense boundaries, and hydration timing from the CLI.
Getting Started
Enable React DevTools for the current session:
browse react-devtools enableThis downloads the React DevTools hook (first time only), injects it into the page, and reloads. Works with any React app — Next.js, Remix, Vite, CRA.
Component Tree
View the full component hierarchy:
$ browse react-devtools tree
<App>
<Layout>
<Header />
<Suspense fallback={<Spinner />}>
<Dashboard data={...} />
</Suspense>
<Footer />
</Layout>
</App>Props & State
Inspect any component's props, state, and hooks:
$ browse react-devtools props @e3
Component: SearchInput
Props:
placeholder: "Search..."
onChange: ƒ handleSearch()
State:
query: ""
results: []
Hooks:
useState: ""
useCallback: ƒSuspense Boundaries
Check which Suspense boundaries exist and their current status:
$ browse react-devtools suspense
Suspense #1: <Suspense fallback={<Spinner />}>
Status: resolved
Children: <Dashboard />
Suspense #2: <Suspense fallback={<SkeletonList />}>
Status: pending
Children: <CommentList />Error Boundaries
Find error boundaries and any caught errors:
$ browse react-devtools errors
ErrorBoundary #1: <ErrorBoundary>
Status: clean (no errors caught)
ErrorBoundary #2: <ApiErrorBoundary>
Status: error caught
Error: "Failed to fetch /api/users"Hydration Timing
Measure server-side rendering and client-side hydration performance (Next.js):
$ browse react-devtools hydration
Component | Server | Client | Delta
App | 12ms | 45ms | +33ms
Layout | 3ms | 8ms | +5ms
Dashboard | 8ms | 120ms | +112ms ⚠
Footer | 1ms | 2ms | +1msComponents with large deltas indicate hydration performance issues.
Render Profiling
See what re-rendered and why:
$ browse react-devtools profiler
Component | Renders | Total Time
App | 1 | 45ms
Dashboard | 3 | 360ms ⚠
SearchInput | 12 | 24ms
ResultList | 3 | 180ms$ browse react-devtools renders
Components that re-rendered since last commit:
Dashboard (props changed: data)
ResultList (props changed: items)Disabling
browse react-devtools disableThis removes the DevTools hook and reloads the page. No performance impact when disabled.