Skip to content

Terminal HTTP Proxy

httpmon — Open-Source Terminal HTTP Debugging Proxy

Debug HTTP traffic from your terminal. Think Proxyman or Charles, but keyboard-driven.

Open source. Written in Go. Works everywhere.

httpmon — :8080
METHOD STATUS HOST PATH
────────────────────────────────────────────────────
GET 200 api.stripe.com /v1/charges
POST 201 api.github.com /repos/issues
GET 304 cdn.jsdelivr.net /npm/react@18
DELETE 204 api.example.com /sessions/current
POST 302 auth.example.com /oauth/token
GET 200 api.openai.com /v1/completions
PATCH 200 api.linear.app /graphql
GET 404 example.com /favicon.ico
POST 500 api.payments.com /v2/process
GET 200 registry.npmjs.org /express/latest
10 flows | Proxy :8080 t:host /:filter Space:actions

MITM Proxy + Live Flow

Intercept
Everything

Auto-generated CA certificates. Full HTTPS interception with gRPC and Protobuf decoding. Every request and response flows through your terminal in real time, color-coded by method and status.

HTTP/HTTPS gRPC gRPC-Web Protobuf Auto CA Certs Process ID Host Filter

Protocol Decoding

Decode gRPC &
Protobuf

Point --proto-path at your .proto files and see gRPC-Web and Protobuf bodies decoded as readable JSON with field names. Works without proto files too — raw wire format decoded with field numbers as keys.

gRPC gRPC-Web Protobuf --proto-path JSON Output

Vim Keys + Quick Filter

Navigate
Like a Pro

Full vim-style navigation. Filter by host, path, method, or status code. Open a detail inspector for headers, syntax-highlighted bodies, and image previews.

h j k l / Enter

HAR Export + Diff View

Export &
Analyze

Export captured flows to HAR format. Compare any two requests side-by-side with the built-in diff view. Copy as cURL, compose new requests, or repeat existing ones.

x HAR Export
d Diff View
c Copy cURL
r Repeat

Scripting + MCP Server

Extend &
Control

JavaScript hooks to modify requests and responses on the fly. Simulate network conditions with throttling presets. Serve local files. Expose traffic to LLM agents via MCP.

--mcp MCP Server
S Script
T Throttle
M Map Local
script.js — httpmon
// Modify requests on the fly function onRequest(req) { if (req.host === "api.example.com") { req.headers["Authorization"] = "Bearer test_token"; } return req; } // Modify responses function onResponse(res) { res.statusCode = 200; return res; }

Installation

Get Started

Install httpmon in seconds.

$ brew install kostyay/tap/httpmon

FAQ

Frequently Asked Questions

What is httpmon?

An HTTP/HTTPS debugging proxy that runs in your terminal. It sits between your app and the network, intercepts traffic via a MITM proxy, and lets you inspect and modify requests and responses. Think Proxyman or Charles, but with vim keys and no GUI.

Is httpmon free?

Completely. MIT license, no paid tiers, no account needed. Every feature ships in the free version because there's only one version.

What platforms does httpmon support?

macOS (Apple Silicon and Intel) and Linux (arm64 and amd64). It's a single Go binary — grab it with brew install kostyay/tap/httpmon or download from GitHub releases.

Does httpmon support HTTPS interception?

It generates and installs CA certificates automatically. All HTTPS traffic gets decrypted so you see headers, bodies, and timing in plain text.

Can httpmon decode gRPC, gRPC-Web, and Protobuf?

All three. Point --proto-path at your .proto files and you get decoded JSON with field names. No proto files? It still decodes the wire format with field numbers as keys.

Why use this instead of a GUI proxy?

It works over SSH, in Docker containers, in CI — anywhere you have a terminal. Starts in milliseconds, uses ~20 MB of RAM, and you never have to touch a mouse.