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, one click from your 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, Angular and Vue.js, with the 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

The four frameworks Inspectro targets, chosen by 2025 usage share: React 44.7%, Next.js 20.8%, Angular 18.2%, Vue.js 17.6%. Those shares overlap rather than add up, because a Next.js app is also a React app. Each is verified against a running app.

What you get
  • Component tree with real component names
  • Click-to-source into the file that owns the element
  • Props panel: read live, and edit scalars on React
  • Network, Console, Performance, Coverage, Cookies and Preview
Outside the supported set

Anything else gets Inspectro's generic DOM inspector, not a component view. Network, Console, Performance, Coverage, Cookies and Preview still work.

Caveats
1
Vite and webpack are build tools, not frameworks
Inspectro supports frameworks, not bundlers. Vite, webpack, Rspack, Parcel and Create React App are build tools and dev servers; React, Vue and Angular are the frameworks built with them. Inspectro attaches by proxying whatever dev server you run, so any of those toolchains is fine, and the framework you wrote the app in is what decides which component tree you get. A "Vite app" is a React app, a Vue app or an Angular app, and that is the answer that matters here.
2
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, which is accurate in practice, though an element with no text of its own opens at the top of the file.
3
Angular: what works, and the one rough edge
The component tree, component names, file paths and click-to-source all work, and they require an Angular 17+ development build, because a production build carries no source metadata at all. Angular reports one source location per component (the class declaration) rather than one per element, so click-to-source treats that as the file and then searches it for the text you clicked to land on the template line. One rough edge remains: the props panel lists only plain scalar fields, so signal-based state is neither shown nor editable, which is most state in a modern Angular app.

Requirements

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

An Inspectro account, signed in from the editor
Inspectro asks you to sign in before it starts a session. It is free, and you can create one with GitHub, GitLab or Bitbucket, or with an email address and a password.
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, Angular 17+ or Vue 3 (including Nuxt 4). Your build tool is not the question: Vite, webpack, Rspack and Create React App all work, because Inspectro proxies whatever dev server you run. See the matrix above for what each framework 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, with 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, Angular or Vue.js, 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
Published by Hema Sai Charan Kothamasu — check the publisher 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

Configuration

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

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.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.proxyPort": 0,
  "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 across React, Next.js, Angular and Vue.js (see Supported Frameworks for the per-framework caveats)
  • 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
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, with 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
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 so Inspectro proxies the port you expect rather than auto-assigning one.
Which frameworks are supported?
Four: React, Next.js, Angular and Vue.js, which is where 2025 frontend work actually is. Vite and webpack are not frameworks, so they are not on that list; Inspectro proxies whatever dev server you run, and the framework decides what you get. The Supported Frameworks section above lists the caveats 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, so 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

Inspectro is live on the VS Code Marketplace. Every shipped version and what changed in it is on the changelog page.

View release notes