Open Source · MIT License · macOS & Linux

The open source HTTP proxy.
See everything. Debug anything.

Intercept HTTPS traffic with a local CA, inspect every request from your terminal or a live web dashboard, and replay requests to prove a fix worked. Free and open source.

$npx laurel-proxy
Debugging a flaky React dashboard

Intercept Every Request

Your dashboard makes 47 API calls on load. Three of them fail intermittently. Laurel Proxy captures every request with full headers, body, and timing. Filter by status, method, or path to find the culprit in seconds.

Read docs: CLI Reference →
Terminal
Reverse-engineering a mobile app

HTTPS Interception

That iOS app doesn't have public API docs. Point your device at Laurel Proxy, trust the CA, and watch every encrypted request in cleartext. See exactly what endpoints it hits, what tokens it sends, what data it returns.

Read docs: HTTPS Setup →
Terminal
Your AI agent debugs a 422 error

AI Agent Integration

Tell your AI agent "the user update endpoint returns 422." It queries Laurel Proxy, inspects the request body, sees the validation error, fixes your code, replays the request, and confirms the fix. You watch.

Read docs: AI Agent Plugin →
Terminal
Reproducing a production bug locally

Request Replay

Captured the failing request in staging. Replay it against your local server with one command. Modify headers, change the body, hit it again. Iterate until the fix works without touching the frontend.

Read docs: API Reference →
Terminal
Reproducing how your app behaves on a bad connection

Bandwidth Throttling

Your app looks fine on office WiFi and falls apart on a customer's spotty 4G. Apply a preset or exact down/up/latency values, and every connection through the proxy shares that simulated pipe — concurrent requests queue and slow down exactly like they would on a real constrained link.

Read docs: Throttle Command →
Terminal
Debugging a flaky live-chat feature

WebSocket Capture & Replay

Real-time features don't fit the request/response model your other tools assume. Laurel Proxy records the handshake like any other request, decodes every frame in both directions, and replays the whole exchange to reproduce a bug that only shows up mid-connection.

Read docs: Messages Command →
Terminal
Built for humans

Every request, one click away

A real-time dashboard for inspecting all HTTP and HTTPS traffic passing through the proxy. Filter, sort, drill into details, and replay requests without leaving the browser.

Laurel Proxy web dashboard showing live HTTP traffic with filters, sortable columns, and request details

Real-time streaming

Requests appear as they happen. No refresh, no polling. SSE-powered live updates.

Filter & search

Narrow by status code, HTTP method, host, or URL path. Combine filters for precision.

Request detail panel

Click any row to inspect full headers, response bodies, timing, and protocol details.

Repeater

Grab any captured request, edit the method, URL, headers, or body, and resend it.

cURL export

One-click copy of any request as a cURL command. Share with teammates or script it.

System proxy toggle

Route all macOS HTTP/HTTPS traffic through the proxy with a single click.

Built for iteration

A request builder that starts from real traffic

Most API clients start with an empty form, so you rebuild a request that already happened. The Repeater starts from the one you captured, keeps the original response alongside it, and tells you whether your change actually helped.

Laurel Proxy Repeater showing a captured request loaded into an editable tab with the replayed response compared against the original
1

Start from real traffic

Open any captured request and send it straight to the Repeater. Method, URL, headers, and body arrive already filled in.

2

Change one thing

Edit the header, fix the malformed field, drop the bad parameter. Everything is editable before you resend.

3

Resend and compare

Cmd/Ctrl+Enter fires the request. The original response travels with it, so the result is scored against what happened the first time.

Every replay is labelled by comparing its status code against the original response:

IMPROVEDwas failing, now succeeds
REGRESSEDwas succeeding, now fails
CHANGEDdifferent status than before
UNCHANGEDsame status as the original

Open as many tabs as you need. The same comparison is available from the terminal withlaurel-proxy replay <id> --diff.

For scripts, agents, and pipelines

Programmable by design

Every captured request is available through a REST API. Query traffic, replay requests, stream events in real-time. Build on top of Laurel Proxy with curl, scripts, or your AI agent.

Query traffic
curl "http://127.0.0.1:8081/api/requests?status=500&limit=5"
# → 3 matching requests with full headers and bodies
Replay a request
curl -X POST http://127.0.0.1:8081/api/replay \
  -H "Content-Type: application/json" \
  -d '{"id": "a1b2c3d4..."}'
# → 200 OK
Stream live events
curl -N http://127.0.0.1:8081/api/events
# event: request
# data: {"method":"POST","status":422,...}
Check proxy status
curl http://127.0.0.1:8081/api/status
# → {"running": true, "requestCount": 142}

AI Agent Debugging

Your agent queries the API, finds the broken request, reads the validation error, fixes your code, replays to verify. You watch.

CI Pipeline Integration

Run your test suite with traffic routed through the proxy. Then query for unexpected 500s, slow requests, or missing headers.

Custom Dashboards

Build your own traffic visualization using the same REST API that powers the built-in dashboard. Stream events via SSE for real-time updates.

Everything at a glance

One proxy. Three interfaces. Full visibility.

HTTP Interception

Capture every request and response passing through the proxy with full headers, bodies, and timing.

HTTPS Interception

Decrypt TLS traffic with an auto-generated CA certificate. See encrypted requests in cleartext.

WebSocket Capture & Replay

Frames are decoded and stored alongside HTTP traffic, filterable and followable live, with connection replay.

Bandwidth Throttling

Six presets or custom down/up/latency values. One shared virtual link, so concurrent connections contend for bandwidth like a real network.

HTTP/2 Support

ALPN negotiates the client hop and the origin hop independently — no flag, no config. Both are recorded and filterable, right down to the mixed-hops case.

Web UI Dashboard

Live traffic viewer with filters, sortable columns, and a full request/response detail panel.

Repeater

Load a captured request into an editable tab, resend it, and score the response against the original.

REST API

Query captured traffic, replay requests, stream events, and control the proxy programmatically.

AI Agent Plugin

Claude Code plugin and skill, plus an agent output format with decoded bodies and error flags.

Replay from the CLI

laurel-proxy replay <id> --diff resends a captured request and reports whether the response improved.

cURL Export

Copy any captured request as a cURL command. Share with teammates or use in scripts.

Real-time SSE Streaming

Subscribe to live traffic events via Server-Sent Events. Build custom dashboards or monitors.

System Proxy

Route all macOS HTTP/HTTPS traffic through Laurel Proxy with one command or one click.

Start capturing traffic in 10 seconds

Free, open source, MIT licensed. Works on macOS and Linux.

$npx laurel-proxy