Skip to content

Capture list

The Captures view uses the same renderer-friendly FlowSummary shape for the live stream and imported .ppsession files, so filters, saved views, sorting, and detail inspection behave consistently across both sources.

Columns

ColumnNotes
ΔSelect up to two live flows for a status/timing/header/body-shape comparison.
kind / RProtocol badge and engine-truth indicator for an applied rule.
Method / Host / URLFull request URL, including query string; default ports are hidden in the Host display only.
StatusIncludes paused and transport-error states.
Size / Time / Start / EndResponse bytes, total duration, and local wall-clock timing.

The table is virtualized, sortable, keyboard-navigable, resizable, and keeps column widths in local storage.

Structured filtering

Space-separated terms compose with AND. Free text remains backward-compatible and searches host, path, and method.

status>=400
kind:ws duration>1s
host:api.example.com -host:analytics.example.com method:POST
rule:map-local header:content-type=json body:"error message"
agent:<mcp-session-id>

Supported fields are status, host, method, kind, duration, rule, header, body, agent, contract, and coverage. The agent value is the internal MCP session ID inserted by View traffic; it attributes rather than hides traffic. Duration accepts ns, us, ms, or s; ws, h1, h2, and gql aliases are accepted. Invalid fields, values, operators, and unclosed quotes produce an inline error and do not silently hide rows.

Body filtering searches captured inline bytes. A truncated row may contain a match outside that prefix; open its detail to fetch the full stored body.

Use Save view to name the current query plus Rule-hits toggle. Saved views are local to the desktop profile. Pause view freezes the visible live snapshot while the proxy continues recording in the background; resume to catch up safely.

Mock and regression workflows

  • Right-click a completed textual response and choose Create Map Local to freeze it into the Captured mocks rule group. Binary, empty, and unavailable bodies are skipped with a reason.
  • Check Δ on exactly two live rows and click Compare for status, duration, response-header-name, and JSON body-shape drift.
  • Import a .ppsession, select it in Baseline…, and click Run baseline to compare current live traffic. The report separates status regressions, p95 latency regressions, and response-shape drift, and lists new/removed endpoints.

These actions reuse the same capture_to_mock, diff_flows, and diff_capture_vs_baseline cores exposed over MCP; the GUI does not maintain a second comparison implementation.

Network waterfall and budgets

Click Waterfall to visualize measured DNS, TCP connect, TLS, request upload, TTFB, and download spans. Requests carrying the harness/browser x-proxypro-step marker are grouped under that action; other traffic stays in Navigation / untagged. A reused connection intentionally has no DNS/TCP/TLS bar—the app does not charge a previous connection’s setup to the current flow.

Optional TTFB and total-duration budgets persist locally and mark violating rows. When a .ppsession baseline contains phase timing, the regression report compares endpoint p95 per phase and identifies whether DNS, connect, TLS, upload, TTFB, or download caused the slowdown. Older sessions remain readable but cannot provide phase attribution.

The waterfall links to the newest Lighthouse HTML report created by run_lighthouse. Lighthouse scores/paint metrics and ProxyPro network spans are kept separate; the link is for cross-checking the lab audit with its captured request window.

Bodies and live updates

Small bodies arrive inline. Larger bodies are fetched on demand from the engine’s memory/SQLite body store. gzip, brotli, and zstd HTTP bodies are decompressed before display. Capture events are batched at roughly 30fps.

Clear removes both renderer state and the engine capture snapshot; it does not reappear when the stream reconnects.