Menu

Request inspection

For HTTP tunnels you can inspect every request and response — live in the terminal or in the dashboard.

Request logging is off by default for each account: it costs CPU and memory, and the host is kept light. An admin enables it per user (see Limits & permissions).

What is captured

When enabled, each exchange captures:

  • Method, path, status, and latency
  • Byte counts
  • Request and response headers
  • A bounded prefix of the bodies (default 32 KB cap; the most recent ~50 requests are kept per tunnel)

In the terminal

While tnnl http <port> runs, each request prints a colored line:

12:30:01  GET /api/users  200  12ms · 1.2kB

Status is colored by class, and WebSocket upgrades show as 101.

tnnl logs [id] attaches the same live feed to an already-running tunnel — pass a tunnel id, or omit it if you have exactly one.

In the dashboard

The inspector shows a live table (streamed over SSE). Click a request to see its headers and pretty or raw body, and a Replay button re-runs a captured request.

What is not inspected

Everything is in-memory and bounded: history is dropped when the tunnel closes or the server restarts. Nothing is persisted to disk. TCP tunnels are opaque and are not inspected.

Note
If logging is off for your account, the dashboard inspector and tnnl logs say request logging is disabled — ask an admin to enable it.