Skip to main content
httpmon identifies the operating system process behind each proxied request. The PROCESS column in the flow list shows the process name and PID, so you can tell at a glance whether a request came from curl, Chrome, Safari, or your own application.
httpmon flow list with process column

How it works

When a request arrives, httpmon looks up which process owns the client connection’s local port. The lookup runs asynchronously so it never slows down the proxy. Results are cached per PID to avoid repeated lookups. If the process exits before resolution completes, or if permissions are insufficient, the column displays an em-dash ().
On macOS and Linux, process resolution may require elevated permissions. If you see for every flow, try running httpmon with sudo.

Process column

The flow list includes a PROCESS column showing name(pid) for each flow.
DisplayMeaning
curl(1234)Process name and PID
Resolution failed or insufficient permissions

Group by process

Press t to cycle through grouping modes: flathostprocessflat. In process grouping mode, flows are grouped by process name and PID. Each group header shows the process identifier and the number of flows.
httpmon process tree view
KeyAction
tCycle grouping: flat → host → process
l / Right arrowExpand process group
h / Left arrowCollapse process group
fFocus on a single process group

Detail view

The detail inspector shows a Process section with the full command line that initiated the request.
httpmon detail view with process section
FieldDescription
NameProcess executable name
PIDProcess ID
CmdFull command line (truncated at 100 characters)

Supported platforms

PlatformMethod
macOSSystem calls via gopsutil
Linux/proc filesystem via gopsutil