DevTools for Svelte,
inside Vite.

A Vite DevTools plugin for Svelte and SvelteKit. Fifteen specialized panels for inspecting components, profiling reactivity, debugging routes, and everything in between — without leaving your dev server.

$ npm install -D vite-devtools-svelte
overview.svelte reactive.graph profiler.ts
vite-devtools-svelte
Overview panel of vite-devtools-svelte
dev-server: ready · 15 panels · RPC: WS + HTTP fallback · UTF-8 · LF
15
panels
0
runtime overhead
0
config required
WS
transport
§ 02 · architecture virtual-modules · ws · fs

How it works.

A virtual-module architecture instead of fragile regex transforms. Runtime data flows out, static analysis flows in.

  1. Runtime wrapper

    in browser

    Intercepts svelte/internal/client to track component lifecycle and reactive signals — $state, $derived, $effect.

  2. HMR channel

    ws · dual-rpc

    Streams runtime data — component tree, render profiles, reactive graph — from the browser to the dev server via WebSocket.

  3. Static analyzers

    fs

    Extract routes, component relations, assets, and project metadata straight from the filesystem — no runtime instrumentation needed.

  4. DevTools panels

    in devtools

    Mounted in the Vite DevTools Kit shell. Dev-only, opt-in, with HTTP fallback for older DevTools Kit versions.

§ 03 · start

Open the workshop.

Three lines of config. No production code touched. Drop the plugin into a Svelte 5 + Vite 8 project and the panels appear in your DevTools sidebar.

// vite.config.ts
import { svelteDevtools } from 'vite-devtools-svelte'
import { sveltekit } from '@sveltejs/kit/vite'
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [
    svelteDevtools(),
    sveltekit(),
  ],
})