zeitzeuge mascot

AI-Powered Performance Analysis

Capture V8 heap snapshots, Chrome runtime traces, and CPU profiles — hand them to a Deep Agent that finds bottlenecks and suggests code-level fixes.

npx zeitzeuge https://zeitzeuge.dev

Features

Page-Load Analysis

Launch Chrome, capture heap snapshots, performance traces, runtime traces, and all network assets in a single page load.

Vitest Integration

Drop-in Vitest plugin that profiles your test suite with V8 CPU profiling and analyzes your application code performance.

Deep Agent Investigation

A LangChain Deep Agent autonomously browses a virtual filesystem, reads source code, and correlates heap + trace + runtime data.

Code-Level Fixes

Get actionable suggestions — memory leaks, frame-blocking functions, listener leaks, render-blocking scripts — with line-number precision.

Runtime Trace Analysis

Captures every function call, event dispatch, layout, paint, and GC event on the main thread via the Chrome Tracing domain.

Zero Config

Set an API key, run npx zeitzeuge <url> — done. For Vitest, add one plugin line to your config.

How It Works

  1. 1

    Launches Chrome via WebdriverIO with DevTools Protocol access

  2. 2

    Captures heap snapshot + performance trace + runtime trace + network assets

  3. 3

    Builds a VFS workspace with all captured data

  4. 4

    Deep Agent explores the workspace and correlates findings

  5. 5

    Markdown report written to disk with code-level fixes

What It Finds

🌐 Page Load

  • Memory leaks, detached DOM nodes, closure leaks
  • Render-blocking scripts & stylesheets
  • Long main-thread tasks (> 50ms)
  • Frame-blocking functions with exact source locations
  • Event listener leaks
  • GC pressure & layout thrashing

Vitest

  • Hot functions with high self time in your source code
  • Expensive algorithms (O(n²) loops, redundant computation)
  • Dependency bottlenecks
  • GC pressure from short-lived allocations
  • Event listener leaks
  • Blocking I/O in hot paths

Quick Start

CLI

# Set your API key
export OPENAI_API_KEY=sk-...

# Analyze any URL
npx zeitzeuge http://localhost:3000

Vitest

// vitest.config.ts
import { defineConfig } from 'vitest/config';
import { zeitzeuge } from '@zeitzeuge/vitest';

export default defineConfig({
  plugins: [zeitzeuge()],
});