BETA We're building something new — all help is welcome! Contribute →

DevTools

Built-in debugging panel for inspecting LiVue components, requests, and events.

Note: DevTools are automatically disabled in production builds. The API returns no-op functions to prevent errors if called in production.

Quick Start

Open DevTools with the keyboard shortcut or programmatically.

// Keyboard shortcut
Ctrl+Shift+L

// Or via JavaScript
LiVue.devtools.open();

Panel Tabs

Components

View the component tree with live state inspection. Click any component to see its properties, dirty fields, and validation errors.

Timeline

Chronological view of all AJAX requests with timing, status, payload preview, and response details.

Events

Track dispatched events with source component, mode (broadcast/self/to), and event data.

Stores

Inspect Pinia stores, registered plugins, global components, and custom directives.

Echo

Monitor Laravel Echo status and active WebSocket channel subscriptions.

Performance

Aggregated metrics: request counts, timing averages, template swap stats, and component counts.

Settings

Configure panel position (right, left, bottom, top) and view keyboard shortcuts.

State Inspector

When you select a component, the side panel shows three views:

View Description
State Current reactive state with type-colored values. Dirty fields marked with orange *
Diff Compare server state vs client state to see unsynced changes
Info Component metadata: name, attributes, composables, upload/streaming status

JavaScript API

// Panel control
LiVue.devtools.open();
LiVue.devtools.close();
LiVue.devtools.toggle();
LiVue.devtools.isOpen();

// Debug mode (verbose console logging)
LiVue.debug(true);
LiVue.debug(false);

// Access collected data
LiVue.devtools.getComponents();
LiVue.devtools.getTimeline();
LiVue.devtools.getEvents();
LiVue.devtools.getPerf();

// Clear data
LiVue.devtools.clear();
LiVue.devtools.clearTimeline();
LiVue.devtools.clearEvents();

// Background collection
LiVue.devtools.startCollecting();
LiVue.devtools.stopCollecting();

Features

4 Panel Positions

Right, left, bottom, or top. Resizable by dragging the edge.

State Persistence

Panel position, active tab, and open/closed state saved to localStorage.

Auto-Reopen

If open when you refresh, it reopens automatically in the same state.

Component Icons

Visual indicators: square (root), circle (child), diamond (island).