httpinspect logo

httpinspect

top, but for the HTTP endpoints on your host — a live dashboard of the most active plaintext HTTP endpoints, right in the terminal.

chat Discordplatform Linuxbuilt with yeet + eBPF
Website GitHub

What is it?

What it is

A real-time terminal dashboard for monitoring plaintext HTTP traffic on a host using eBPF

Why it exists

To provide ground-truth observability of HTTP endpoints without proxies, sidecars, or app changes

Who should use it

Developers, DevOps, observability engineers, and system administrators who want real‑time insight into plaintext HTTP traffic on a Linux host without deploying proxies or sidecars.

Who should avoid it

Users on non‑Linux systems, those who need to monitor HTTPS traffic, or teams that cannot run privileged eBPF programs or accept a terminal‑based UI.

How it works

A quick walkthrough in plain English

How httpinspect works

Step 1 of 3

You interact with it

Open httpinspect, send a request, or connect it to your stack.

Features

eBPF‑based real‑time HTTP endpoint monitoring
Terminal UI (TUI) dashboard with live updates
No proxy, sidecar, or application changes required
Captures plaintext HTTP on all up interfaces, including loopback
Per‑endpoint statistics: request count, req/s, latency (p50/p95/max), status‑code mix
Interactive navigation (select, drill‑down, paging)
Query‑string collapse or keep‑query option
Sparkline graphs for request rate and latency
Automatic interface discovery and optional filtering
Built on yeet runtime for easy deployment and cross‑platform JS support

Advantages

  • Open source (Open Source)
  • Active JavaScript ecosystem
  • Self-hosted deployment options

Disadvantages

  • Requires operational ownership for self-hosted setups
  • Community support varies by project maturity

Installation

native

curl -fsSL https://yeet.cx | sh\nmake

FAQ

How do I install and run httpinspect on my Linux host?

Run the one‑liner `curl -fsSL https://yeet.cx | sh` to install the yeet daemon, then build the project with `make`. Finally start the dashboard with `yeet run .` (or `yeet run . -- --iface lo,eth0` to limit interfaces). The tool will attach to all up interfaces by default and display a live top‑style table of plaintext HTTP traffic.

What traffic does httpinspect observe and what is it missing?

httpinspect reads the first bytes of TCP payloads at the TC layer. It captures only plaintext HTTP requests and responses, so HTTPS traffic (encrypted payloads) is invisible. It also ignores non‑HTTP traffic and only parses the first 512 bytes of each request, which is enough for the request line and Host header.

How can I customize which interfaces to watch or keep query strings separate?

Use flags after the `--` separator. For example, `yeet run . -- --iface lo,eth0` watches only loopback and eth0, and `yeet run . -- --keep-query` keeps query strings distinct so `/x?id=1` and `/x?id=2` appear as separate rows.

Why does httpinspect not require a proxy or sidecar?

It attaches eBPF programs to the kernel’s TC layer, which observes packets as they flow through the network stack. This means it can capture requests without redirecting traffic or modifying application configuration, and it also sees loopback traffic between local services.

How does httpinspect calculate latency for each endpoint?

Each response is paired with the oldest unmatched request on the same TCP flow (based on the 4‑tuple). The timestamp difference between the request and its response, as seen at the TC layer, gives the on‑the‑wire latency, which includes network RTT. Latency statistics (p50, p95, max) are aggregated per endpoint.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for httpinspect

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
httpinspect | MushyBook