Inspectro Documentation

Everything you need to install, configure and master the workspace — a VS Code extension that inspects your running frontend.

Introduction

Inspectro is a VS Code extension that inspects your running frontend. It ties your component tree, your source, and your app's runtime behavior together in one panel — so you can see what a component is, where it lives, and what it's doing, without leaving the editor.

The one thing to remember: component ↔ source ↔ runtime, connected live. Everything else is an instrument built on top of that link.

How it works

Inspectro doesn't wrap your app or ask you to change your code. When you start your dev server, it runs an HTTP proxy that injects a lightweight agent into the running app. The agent streams what the app is doing — component tree, network, renders — to the DevTools panel over a WebSocket, and the Debug tab attaches over the Chrome DevTools Protocol.

Your framework's components resolve into one common model, so the same tree and the same instruments work across React, Next.js, Vue, Nuxt, Angular and Svelte — with framework-specific caveats listed below.

The panel is seven tabs — Inspector, Network, Performance, Cookies, Accessibility, Coverage and Debug — with a live Preview always docked on the right, a Console drawer for unified server and browser logs, and Settings a click away.

Different frameworks resolve into one common component model.
Different frameworks resolve into one common component model.

Supported Frameworks

Every framework below was tested against a running demo app, not inferred from documentation. A framework is only listed as supported when the whole feature set works — a debugger that half-works misleads you, which is worse than one that tells you up front it is not ready.

Supported

Verified against a running app. Everything on the feature list works.

What you get
  • Component tree with real component names
  • Click-to-source into the file that owns the element
  • Props panel — read and edit live
  • Network, Console, Performance, Coverage, Cookies and Preview
In progress

The component tree works, but click-to-source or the props panel does not do what you would expect yet. We would rather say so than have you find out mid-debug.

Not supported

You get Inspectro's generic DOM inspector, not a component view.

Caveats
1
Vue and Nuxt — line precision depends on your setup
Click-to-source always opens the right file. Nuxt enables Vue's component tracer in development by default, and with it Inspectro jumps to the exact line and column. On a plain Vite + Vue project without that plugin, Vue exposes no line information at runtime, so Inspectro searches the file for the element you clicked — accurate in practice, though an element with no text of its own opens at the top of the file.
2
Angular — why it is not in the supported list yet
The component tree, component names and file paths all work, and they require an Angular 17+ development build — a production build carries no source metadata at all. The blocker is where click-to-source lands: it opens the component's class declaration, not the template line you clicked. The props panel also lists only plain scalar fields, so signal-based state is neither shown nor editable, which is most state in a modern Angular app.
3
Svelte — why it is not in the supported list yet
Detection, component names and per-element line numbers survive Svelte 5's runes. Two things do not. Click-to-source fails to open, because Svelte reports paths relative to the project root and we resolve them as absolute. And the props panel is always empty: the reader targets Svelte 3/4 internals that Svelte 5 no longer exposes.
4
Solid — a compiler decision, not a gap in our roadmap
Solid's compiler erases components at build time, so at runtime there are no component instances to find — only DOM. That is a property of how Solid works, not something we have yet to get to, which is why this says "not supported" rather than "coming soon". You still get the element outline, selection, and style and attribute editing, plus Network, Console, Performance, Coverage and Preview.

Requirements

Inspectro reads a running app, not your files on disk. These have to be true before it can show you anything.

VS Code, with your project open as the workspace folder
Inspectro ships only as a VS Code extension. Some frameworks report source paths relative to the project root, so the files must live under the folder you opened.
A dev server, running
Inspectro attaches by proxying your dev server and injecting an agent into the HTML it serves. It cannot inspect a static export, a preview build or a deployed site.
A development build of your framework
Every component name, source path and prop comes from metadata the framework emits in dev mode only. Production builds are not inspectable in any framework.
A supported framework version
React 18+, Next.js, Vue 3, Nuxt 4, Angular 17+ or Svelte 5 / SvelteKit 2. See the matrix above for what each one actually gives you.
A Chromium-based browser
The Preview panel and the Debug tab drive Chrome over the Chrome DevTools Protocol; browser-runtime debugging launches a Chrome instance.

Known Limitations

These apply in every framework, including React. They are properties of how component metadata reaches the browser, not bugs in one adapter.

The tree is element-level, not component-level
Every DOM element inside a component becomes its own node carrying that component's name, file and props. One icon component can appear as four nodes — svg, path, polyline, line — all identical.
Library components resolve into node_modules, or nowhere
Nodes belonging to third-party components either point at a file inside node_modules rather than your code, or carry no source at all.
Non-scalar props are dropped
Only string, number and boolean props are shown. Objects, arrays and functions are silently omitted from the props panel.
Everything depends on dev-build metadata
Component identity is read from compiler output that exists only in development builds. Against a production build there is no tree, no names and no source mapping.
Detection can lag on a slow first load
On a server-rendered app a slow first load can finish framework detection before the framework has attached, so the tree appears briefly as a generic DOM outline with no component names. Inspectro keeps probing and switches over automatically once the framework is ready — no reload needed.

Getting Started

There's no CLI and no code changes to start. Install Inspectro, open your project, and run your dev server as usual — Inspectro auto-detects your framework and its port, injects its agent and opens the panel.

01
Install Inspectro from the VS Code Marketplace
See Installation below
02
Open your frontend project in VS Code
React, Next.js, Vue, Nuxt, Angular or Svelte — auto-detected
03
Start your dev server
Your usual command, or “Inspectro: Run Dev Server”
04
Inspectro attaches and opens the panel
Framework + port detected automatically
05
Select a component to inspect
See props and state, jump to source, edit React props live

Installation

Inspectro installs straight from the VS Code Marketplace — no terminals, no package managers, no configuration required to start.

01
Open the Extensions panel in VS Code
Ctrl+Shift+X (Cmd+Shift+X on macOS)
02
Search for Inspectro
Confirm the publisher on the listing before installing
03
Click Install
Takes a few seconds
04
Reload VS Code
The Inspectro icon appears in your activity bar
Open VS Code Marketplace

Listing goes live at launch

Configuration

Zero config to start. When you want to tune behavior, every option lives in VS Code Settings under the inspectro.* namespace — there's no separate config file to maintain.

inspectro.autoStartboolean
Start the inspector automatically when a dev server is detected.
inspectro.editorstring
Preferred editor used when opening a source file from the panel.
inspectro.proxyPortnumber
Fixed proxy port. 0 auto-assigns.
inspectro.wsPortnumber
Fixed WebSocket port. 0 auto-assigns in the 9200–9300 range.
inspectro.debug.runtimenode · browser · dual
Which V8 runtime the Debug tab attaches to.
inspectro.debugPortnumber
Chrome remote debugging port used when attaching the debugger.
inspectro.debugPaintDefaultboolean
Enable the debug-paint overlay by default.
inspectro.freshCookiesPerProjectboolean
Start each DevTools session with a clean cookie jar.
inspectro.telemetry.enabledboolean
Send anonymous usage analytics. Also respects VS Code's telemetry setting.
.vscode/settings.json
{
  "inspectro.autoStart": true,
  "inspectro.debug.runtime": "dual",
  "inspectro.freshCookiesPerProject": true
}

Features

Eight instruments, one workspace. Each reads the same live link between your components, your source and your running app.

01 — Inspector

Inspector

Select any element in the running app and see the component that rendered it — its props, its state, and the exact source line — then edit React props live.

When to use it

You're looking at a piece of UI and need to know what component it is, where it lives, and what data it's holding — without hunting through files or scattering console.logs.

How it works

Inspectro builds a framework-aware component tree from the running app and keeps it mapped to your source. Selecting an element in the preview highlights its node in the tree and resolves it back to the file and line that produced it.

Key capabilities
  • Framework-aware component tree — React and Next.js in full, Vue, Nuxt, Angular and Svelte with caveats (see Supported Frameworks)
  • Live scalar prop editing for React — change a value, watch the UI update
  • Props, state, computed, styles and source in one panel
  • Element overlays, a layout inspector and click-to-source
  • Write prop edits back to source codeComing soon
  • Edit CSS at the sourceComing soon
Settings
inspectro.editorstring
Preferred editor used when opening a source file from the panel.
See it
inspectro — inspector
Inspectro Inspector panel
02 — Network

Network

Every fetch and XHR the app makes — request, response, headers, payload and timing — captured continuously and tied to the component that triggered it.

When to use it

A call fails or returns the wrong shape and you need to see exactly what went over the wire, and where it came from.

How it works

The injected agent observes the running app's network activity as it happens and streams it into the panel, correlated with the node in the component tree.

Key capabilities
  • Continuous fetch / XHR capture — nothing to arm before it happens
  • Full request, response, headers, payload and timing
  • Each call correlated to the component that made it
See it
inspectro — network
Inspectro Network panel
03 — Performance

Performance

Render counts, render timings and the cause of each render for every component in the tree — measurement, not generic analytics.

When to use it

The UI feels slow and you need to know which component is re-rendering, how often, and what triggered it.

How it works

Inspectro tracks renders per component and the context that caused each one, so a component re-rendering far more than it should stops being invisible.

Key capabilities
  • Render counts and average render time per component
  • Render-cause attribution — what triggered each render
  • Wasted-render detection
  • UI Time Machine — timeline replay of every render and prop changeComing soon
See it
inspectro — performance
Inspectro Performance panel
04 — Cookies & Environments

Cookies & Environments

Create, edit and delete cookies for the running app straight from the panel — the session state you control, without a browser round-trip.

When to use it

You're testing auth or session state and need to change cookies quickly, or start a project from a clean slate.

How it works

Inspectro runs the preview on its own session and gives you full cookie CRUD against it, with an option to start each project with a fresh cookie jar.

Key capabilities
  • Full cookie CRUD for the running app
  • Optional clean cookie jar per project for isolation
  • Environment and user switching with JWT auth states and VPN statusComing soon
Settings
inspectro.freshCookiesPerProjectboolean
Start each DevTools session with a clean cookie jar.
See it
inspectro — cookies & environments
Inspectro Cookies & Environments panel
05 — Accessibility

Accessibility

A live accessibility audit of your running app — an overall score with every issue tied to the exact component at fault.

When to use it

You want accessibility to be part of the build, not a launch-week scramble.

How it works

Inspectro checks the rendered app against accessibility rules and streams errors, warnings and passes per component, pushing issues straight into the VS Code Problems panel as you fix them.

Key capabilities
  • Overall 0–100 accessibility score
  • Severity-filtered issues wired to the component at fault
  • Issues pushed into the VS Code Problems panel
  • Errors, warnings and passes stream in as you fix
See it
inspectro — accessibility
Inspectro Accessibility panel
06 — Coverage

Coverage

Line, branch and function coverage from your latest run, shown per file and directory next to your source.

When to use it

After a test run, to see what's actually exercised on the branch you're working on.

How it works

Load an .lcov report and Inspectro maps it onto your files and directories, aware of the git branch you're on, exportable as JSON for CI.

Key capabilities
  • Line, branch and function coverage from .lcov
  • Per-file and per-directory breakdown
  • Git-branch context, exportable as JSON
  • Coverage V2 dashboard — hotspots and trendsComing soon
See it
inspectro — coverage
Inspectro Coverage panel
07 — Debug

Debug

Step through server-rendered and Node/API code — the runtime no other frontend tool lets you debug — with breakpoints synced bidirectionally to VS Code.

When to use it

The bug only throws on the server, lives in SSR or an API route, or you need to see server execution the browser never shows.

How it works

Inspectro attaches over the Chrome DevTools Protocol to the Node runtime for SSR/API code, keeping breakpoints in sync with the editor. Client-side/browser debugging runs over Browser CDP and is currently in beta.

Key capabilities
  • Node CDP for SSR / API — the mature, unique path
  • Breakpoints synchronize bidirectionally with VS Code
  • Client / browser debugging (beta)
  • Watch and conditional breakpoints, flame chartComing soon
Settings
inspectro.debug.runtimenode · browser · dual
Which V8 runtime the Debug tab attaches to.
inspectro.debugPortnumber
Chrome remote debugging port used when attaching the debugger.
See it
inspectro — debug
Inspectro Debug panel
08 — Preview

Preview

The persistent right-side panel — a live preview of the running app with a device toolbar, paint overlays, full ancestry and click-to-source.

When to use it

You're checking responsive states or want to jump from the rendered UI straight into the code behind it.

How it works

Inspectro renders the app in the panel beside whatever tab is active, with device modes and overlays, so hovering a component shows its hierarchy and opens it in the browser or your editor.

Key capabilities
  • Live preview with a device toolbar, always beside the active tab
  • Debug-paint overlays and full component ancestry
  • Click-to-source from the running UI
Settings
inspectro.debugPaintDefaultboolean
Enable the debug-paint overlay by default.
See it
inspectro — preview
Inspectro Preview panel

Commands & Settings

Inspectro adds these commands to the VS Code command palette (Ctrl/Cmd+Shift+P). Everything else is driven from the panel and the settings above.

Inspectro: Run Dev Serverinspectro.run
Start your dev server with the inspector attached.
Inspectro: Open DevToolsinspectro.openDevTools
Open the Inspectro panel.
Inspectro: Toggle Select Component Modeinspectro.toggleSelectMode
Click any element in the preview to select its component.
Inspectro: Toggle Debug Paintinspectro.toggleDebugPaint
Overlay repaint highlights on the running UI.
Inspectro: Refresh Component Treeinspectro.refreshTree
Rebuild the component tree from the live app.
Inspectro: Go to Sourceinspectro.goToSource
Jump from the selected component to its source line.

Troubleshooting

Inspectro didn't detect my dev server
Make sure the server is actually running. If you use a fixed port, set inspectro.proxyPort. inspectro.autoStart controls whether Inspectro attaches automatically when a server appears.
Which frameworks are supported?
React and Next.js are fully supported. Vue 3, Nuxt, Angular 17+ and Svelte 5 are supported with specific caveats — mostly around click-to-source and prop inspection. Solid is not supported as a framework and falls back to the generic DOM inspector. The Supported Frameworks matrix above lists every capability per framework.
How do I debug SSR versus client code?
Set inspectro.debug.runtime to node for SSR/API code, browser for the client, or dual to attach to both.
Does Inspectro change my code?
No. It injects a runtime agent into the running app through a proxy — there are no source changes and no build step to start.
Where does my data go?
Telemetry is anonymous, respects VS Code's own telemetry setting, and can be turned off with inspectro.telemetry.enabled.

Changelog

Release notes for the Inspectro extension start at launch. Until then, the roadmap is what you see across the site.

View release notes