httpmon · Go CLI

See the HTTP traffic.

Run a command that honours proxy settings through httpmon and watch its HTTP traffic live. Its responses are unchanged.

go install github.com/hxddh/https-traffic-inspector@latest

GoMIT v1.4.1 (Sep 29, 2026) local proxyHTTP / HTTPS / HTTP/2 / gRPC / WebSocketNDJSON / HAR

httpmon v1.4.1 · captured output captured
$ httpmon curl -sS https://proxy.golang.org/github.com/hxddh/https-traffic-inspector/@v/list
REQUEST #1 GET https://proxy.golang.org:443/github.com/hxddh/https-traffic-inspector/@v/list

Host: proxy.golang.org · Accept: */* · User-Agent: curl/8.5.0

RESPONSE #1 HTTP/2.0 200 OK (3.21s)

Content-Type: text/plain; charset=UTF-8 · Content-Length: 91

v1.3.0 v1.0.2 v1.0.0 v1.1.1 v1.4.1 …
local HTTPS inspectionoriginal response stream stays with the command

No browser, no GUI, no setup.

Request and response

Method, URL, headers, status, timing; decoded for display only.

WebSocket too

wss:// and ws:// frames, spliced in both directions.

HTTP/2 and gRPC

Trailers carried through; gRPC status decoded.

Start locally

Listens on 127.0.0.1 only; no system proxy changes.

Only that command

Proxy address and ephemeral CA live in that command’s environment.

Save when needed

NDJSON, HAR 1.2, or a recording, to replay or share.

Get started

Requires Go 1.24+. Pre-built binaries are on GitHub Releases.

  1. Wrap a command and watch its traffic

    httpmon curl https://api.github.com/users/octocat

Where your data goes.

  • httpmon sends nothing of its own: it relays the wrapped command’s traffic, and --replay re-sends recordings only when you ask.
  • The CA lives for one run: its private key never touches disk, and the temporary CA bundle is deleted on exit.
  • Captures stay in your terminal unless you pass --record or --har; those files can hold credentials, so treat them as sensitive.

FAQ

Which commands can it wrap?

curl, aws, Python, Node, or any other proxy-aware command. Only that child process gets the proxy address and temporary CA; your system proxy and global network settings stay as they are. Go programs skip the proxy for loopback targets, Node’s built-in fetch needs Node 22.21 or 24, and JVM tools are not configured automatically.

Does it handle HTTPS, HTTP/2, and WebSocket?

Yes. HTTPS is decrypted locally. HTTP/2 is negotiated with the command and the upstream separately; gRPC calls show their status from the trailers, and their bodies are summarised, not decoded. For wss:// and ws:// the upgrade handshake is logged, then frames are spliced in both directions.

Can recordings hold secrets?

Yes. Headers, cookies, query parameters, and response bodies may contain credentials or business data. Capture and replay only in authorized environments, and handle NDJSON, HAR, and recording files as sensitive logs.

Does it diagnose storage errors?

No. httpmon shows the traffic and leaves the judgment to you. To diagnose S3-compatible storage errors in Pi, the open-source terminal coding agent, use StorageOps, which captures traces through httpmon. Open StorageOps

httpmon

The S3 kit

For migrating and troubleshooting object storage, in this order.

  1. s3-turbo-list List the bucket
  2. Storage Agent Find what needs attention
  3. StorageOps Diagnose in Pi
  4. httpmon See the real requests
All tools