1 click
Open the exact source line
Jump straight back to the source.
react-find overlays the real interface, not component trees. Hover the element you care about, open the exact source line, or walk upward through ownership when the render path gets messy.
1 click
Open the exact source line
4 paths
React 18, React 19, Next/Webpack, Remote SSH
The site is now styled like a premium developer tool, but the product story stays practical: less guessing, faster source jumps, clearer ownership.
Hold Command or Control, hover the real interface, and click to open the file and line that produced the current DOM node.
Right click the overlay to see the component ancestry and compare who owns the rendered output.
Support direct runtime mode for older React, a dedicated runtime entry for React 18, and source-attribute flows for Vite, Webpack, and Next.
Pass protocol plus remoteServerName to jump into files even when the app is running over Remote SSH.
Cards, tables, layout shells, and deeply nested surfaces stay debuggable because the overlay maps what is rendered, not what you guess.
The docs focus on the highest-signal integrations so a team can copy, test, and onboard without digging through implementation details first.
Install
pnpm install react-find
Keep it in development only. Production builds stay clean.
Plugin mode
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import { vitePluginReactSource } from 'react-find/vite';
export default defineConfig({
define: {
'process.env': process.env,
},
plugins: [vitePluginReactSource(), react()],
});
Runtime entry
import { init } from 'react-find/next';
init();
Loader mode
{
test: /\.(ts|tsx|js|jsx)$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
options: {
presets: [
'@babel/preset-env',
'@babel/preset-react',
'@babel/preset-typescript',
],
},
},
{
loader: require.resolve('react-find/webpack/webpack-react-source-loader'),
},
],
}
Editor protocol
import { init } from 'react-find/next';
init({
protocol: 'cursor',
remoteServerName: 'your-server-name',
});
The tool stays inside your normal UI and keeps the debugging loop short.
Add react-find to development mode, then choose the runtime or build-time integration that matches the app.
Move across buttons, forms, cards, or nested shells until the exact rendered node is highlighted.
Left click opens the current source line. Right click gives you the parent stack when the render path needs more context.
This docs page ships with English and Chinese copy so you can share setup steps across local and remote teams without maintaining duplicate sites.
These answers cover the setup paths people hit most often during adoption.
React 17 and lower can use the direct runtime entry. React 18 can use the next runtime entry. React 19 and higher should use the source-attribute plugin or loader path.
Yes. react-find is designed for local development and should only be initialized when your app is running in development mode.
Yes. Pass protocol in init, for example cursor, or persist react_find_protocol in localStorage for repeated use.
Provide remoteServerName in init so the generated editor URL uses the vscode-remote style path format.