Browser & NetworkPRO
Corral captures what your project is doing — not just whether it’s running — in one live, searchable, persistent timeline. It records the HTTP requests arriving at your dev server, the browser’s console output and errors, and the network calls the page itself makes. Unlike DevTools, the capture is server-side: it persists across reloads and is searchable across sessions, with no DevTools window to keep open in the foreground.
What Gets Captured
Capture runs in two layers, both on every Pro project:
- HTTP access — every request through the project’s
.testdomain (andlocalhost:<port>): method, URL, status, timing, and size. - Browser console & network — a tiny agent injected into the page wraps
console, errors,fetch,XHR,WebSocket,EventSource, andPerformanceObserver, and batches those events back to Corral. Error stack traces are resolved through your dev server’s source maps on demand, so you see the original file and line, not bundled output.
Free projects keep raw Caddy access output in the unified Logs view; the dedicated structured surface with browser-side capture is the Pro addition.
The Network Tab
In the macOS app, open a project and select the Network tab. It shows:
- Origin filters — narrow to server access, browser console, or page network activity.
- A per-tab selector and full-text search across the captured timeline.
- A chronological event list, so every event sits in context with the rest.
- An event inspector — select any event to see its headers, body, and (for errors) the resolved stack frames. Headers are labeled by kind, so a request event’s headers read “Request headers”.
Browser console output also folds into the project’s unified Logs view, so console messages sit inline with server output on one timeline.
Privacy
Capture is entirely local. Events are written to a per-project database on your own machine (~/.corral/logs/<project_id>/events.db, keyed by the project’s internal id) and never leave it. Sensitive values — denied query parameters and headers — are redacted at the capture site before anything is stored, with a per-project reveal toggle for when you need to see them. The database is size-capped and evicts oldest-first, so it can’t grow without bound.
How It Works
The capture middleware runs inside the Corral daemon, behind Caddy — so HTTPS, your .test certificate, and routing are untouched. For Pro projects, Corral performs a transparent port-swap: your dev server binds an internal port and the capture middleware takes the advertised one, which lets Corral capture localhost:<port> traffic too. Free projects, and dev servers that terminate their own HTTPS, stay on the direct path unchanged.
Pro enforcement lives at the core layer: capture only engages for a licensed project, and the data-access RPCs are gated in corral-core — the same single source of truth as every other Pro feature.