spicypath
Inspect any profile. A fast, zero-build, offline profile inspector that runs in the browser. Drop in a profile and explore it as a flame graph, a timeline, a sandwich (caller/callee), or a radial view — with search, semantic color, auto-collapse, profile diffing, and metric track coupling.
Try it live View on GitHub Changelog
What it is
- No build, no dependencies. Plain ES modules and a single Canvas 2D renderer — open it and it runs. Nothing is uploaded; parsing happens locally in your browser.
- Reads common formats: folded/collapsed, pprof, OTLP Profiles, V8
.cpuprofile, speedscope (sampled + evented),perf script, Gecko (Firefox Profiler /samply), and JFR (JDK Flight Recorder). See Formats. - Views: Timeline (flame chart) · Aggregated (flame graph) · Sandwich · Radial, plus a diff/comparison mode.
It inspects profiles you point it at. It is deliberately not a dashboard, not a Grafana panel plugin, and it does not own collection or storage — those are permanent non-goals.
Documentation
- Architecture — the canonical data model and the rendering design principles (width is sacred · borderless · semantic color · scale via “draw less”).
- Formats — every supported input/export format and how to add a parser.
- Changelog — what has shipped, by milestone.
- Contributing — conventions and how to add a parser or view.
Run it
Serve the src/ directory and open it in a browser:
cd src
python3 -m http.server
# then open http://localhost:8000
A sample profile loads on start. Drop a profile onto the window (or ⌘K → Open profile) to open your own; ⌘K → Open from URL fetches one by link; ⌘K → Connect to a profile source pulls from a live /debug/pprof, Pyroscope, or Parca backend.