httpmon · Go CLI

See HTTP beside the command

Wrap curl, aws, Python, or any proxy-aware command and read its requests and responses live — system proxy untouched, the command's own response unchanged.

Go · MIT · local proxy · HTTP / HTTPS / wss · NDJSON / HAR

httpmon · local proxy capturing
$ httpmon curl https://api.github.com/users/octocat
REQUEST #1 GET https://api.github.com/users/octocat

Host: api.github.com · Accept: */*

RESPONSE HTTP/1.1 200 OK

Content-Type: application/json · 245ms

{"login":"octocat","id":583231,...}
local HTTPS inspectionoriginal response stream stays with the command
Scoped to one child processNo system proxy changeHTTP / HTTPS / wssNDJSON / HAR

A look inside

The command runs as before

httpmon starts a local proxy for one subprocess. It supplies the proxy and CA through that process only, then clears the temporary setup when it exits.

One command, one local layer

Only the wrapped process is configured

httpmon starts a local MITM proxy, gives its address and temporary CA to one child process, and forwards the original response stream to that process unchanged.

  1. 01

    Start locally

    Put `httpmon` before curl, aws, Python, Node, or another proxy-aware command. No system proxy is changed.

  2. 02

    Configure one child

    The proxy address and ephemeral CA live in that command's environment, not in your global network settings.

  3. 03

    Forward and display

    The command receives its original stream. Beside it, httpmon shows headers, status, timing, and a decoded preview.

  4. 04

    Save when needed

    Write NDJSON, HAR, or a recording when the session needs to be replayed or shared.

In the terminal

In the terminal

01

Request and response

Read method, URL, headers, status, timing, and a decoded body preview in text mode or the terminal UI.

02

The original stream

The wrapped command still receives its original response. Decompression is only for httpmon's display preview.

03

Focused traffic

Use `--filter` when a command is noisy and only a URL or host matters to the investigation.

Record and export

Record and export

A structured record

Write NDJSON for another command or HAR 1.2 for an inspector that understands web traffic.

Record and replay

Record request-response pairs, then replay an authorized session against its original target or a comparison environment.

FAQ

Does it change my system proxy?

No. Proxy and CA settings are passed only to the wrapped child process and are cleaned up when that process exits.

How does HTTPS remain readable?

httpmon creates a temporary local CA and per-host certificates. It decrypts locally for inspection while forwarding the full response stream unchanged.

What does it support beyond HTTP?

It handles HTTPS and captures the `wss://` upgrade handshake. After the 101 response, WebSocket frames are spliced in both directions.

Can recordings contain sensitive data?

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.

Inspect the next command with httpmon

Open repository