Put every agent run under the lens.
WideScope turns raw OTLP, Jaeger, and OpenInference JSON into flame graphs, timelines, token costs, and side-by-side diffs — parsed by Rust / WASM, rendered at 60 fps, and never leaving your browser tab.
From raw JSON to X-ray in one paste.
Drag a file, paste from clipboard, or point at a hosted URL. WideScope parses multi-MB traces progressively, then gives you four synchronized lenses on the same run — plus an LLM-aware sidebar that speaks your instrumentation's dialect.
Flame graph
Canvas-rendered with level-of-detail collapsing — smooth on traces with tens of thousands of spans.
Timeline lanes
Spans grouped per service with virtualized rows — see concurrency and dead air instantly.
Waterfall & critical path
Cascade view with the critical path highlighted, self-time computed, cycles detected.
Service graph
Who calls whom, how often, and how slowly — plus filters by service, status, kind, and duration.
Totals lie.
Diffs don't.
Load two runs side by side. This release looks 1% faster overall — until the diff shows the reranker quietly regressing 4×, masked by an LLM win. WideScope catches what dashboards average away.
also diffs tokens, cost, and span counts — open two traces, or one trace against yesterday's share link.
Your traces never leave the tab.
Prompts and completions are the most sensitive logs you have. WideScope is a static page plus a WASM binary — there is no server to trust, because there is no server at all.
Static files on a CDN. Parsing, layout, and rendering all happen in-process, in your tab.
No ingest endpoint exists. Drag in a 50 MB trace on a plane — it works exactly the same.
The trace viewer that doesn't trace you. No cookies, no analytics, no runtime fetches.
A Rust core parses and lays out tens of thousands of spans without dropping a frame.
share a whole trace as a link — DEFLATE-compressed into the URL fragment, which browsers keep client-side. deep-link straight to view=diff&span=…
Stop tailing JSON.
Start scoping.
It's a URL, not a platform. Open it, paste a trace, and you're inspecting spans before your terminal finishes scrolling.