Click a React component, your agent opens its file.
In a React app, Tencil does more than describe the element you clicked: it reads the component that renders it, and the components above that, each with the file and line it is written on. Your agent starts in the right file instead of searching for it.
npx tencilThe component and its owners
Tencil walks up from the element to the components that rendered it: the
Buttonyou clicked, thePricingCardthat renders it, the page around that. The agent gets each one with its file and line, so it can decide whether the change belongs in the button or in the card.From React itself
The file and line come from React 19’s owner stacks in development, mapped back to your source through the source maps your dev server already serves. There is no Babel plugin or build step to add.
Older React still works
On React 18 or without source maps, Tencil falls back to the names of the components, which still narrows the search. The markup, selector, text and size go along either way.
vite.config.ts
import react from '@vitejs/plugin-react'; import tencil from 'tencil/vite'; export default defineConfig({ plugins: [react(), tencil()], });Any React setup
Next.js through
<Tencil />, and Vite, TanStack Start, React Router or Astro islands through the Vite plugin.npx tencilpicks the right one and shows the change before it writes it.
Frequently asked questions
Using Tencil with React.
Any. With React 19 in development, your agent gets the file and line of each component; with React 18, it gets their names. Everything else is the same.
Tencil reads the components React renders in the browser. For a Server Component, the agent gets the client markup and the nearest components React reports, and finds the rest in your repository.
No. Tencil reads what React already exposes in development. Nothing changes in how your app is built.
More integrations
Tencil works the same everywhere: point at an element, say what should change.
- Next.jsAdd one component to your Next.js root layout, click any element of your dev site and tell your coding agent what to change. App and pages router.
- ViteA Vite plugin for React, Vue, Svelte, TanStack Start and Astro: click any element of your dev site and tell your coding agent what should change.
- Any dev serverNot on Next.js or Vite? Load one script in your development HTML and point at any element of your Rails, Laravel, Django, Phoenix or static site to prompt your coding agent.
- Claude CodeClick any element of your running app and Claude Code makes the change, under your own login. Every pin is a Claude Code session you can resume in a terminal.
- T3 CodeClick any element of your running app and T3 Code makes the change. Every pin is a real T3 Code thread in your project, so you can continue it there.