đ Why NetPulse#
Debugging a network issue on Linux usually means juggling half a dozen windows: ping for the gateway, mtr for the path, dig for DNS, nload for throughput. Each one answers a different question, and none of them talk to each other.
NetPulse collapses all of that into a single terminal HUD. It is written in Go with the Charmbracelet Bubble Tea framework, runs its collectors concurrently via non-blocking goroutines, and renders everything as a cyberpunk tactical dashboard â zero interface lag even during packet drops or connection failure loops.

đ§ Interface Modules#
â°â° MODULE: GATEWAY_CORE#
Continuously monitors the local default gateway (auto-parsed from system routing paths). Live Braille-based latency sparklines map local link reliability at a glance, with unprivileged packet fallback when running without root capabilities.
â°â° SUBSYSTEM: DNS_MATRIX#
Real-time resolution benchmarking across multiple DNS clusters â system resolver, Cloudflare, Google, Quad9, OpenDNS. The context-aware input engine lets you append custom upstream resolvers on the fly and watch them race.
â°â° SENSOR: LOCAL_HARDWARE & NODE: WAN_TELEMETRY#
Parses low-level Linux networking layers for real-time interface throughput (RX/TX delta streams), plus automated BGP ASN mapping, WAN validation, and ISP provider identification.
â°â° SYSTEM: EXTERNAL_TRANSIT#
High-density tabular metrics for critical backbones: current RTT, minimum, maximum, average, packet loss, and jitter â computed concurrently. Supports an interactive full-screen MTR mode tracing individual network hops.
â°â° SUBSYSTEM: TELEMETRY_EVENT_LOG#
A scrolling operational ring buffer console that hooks diagnostic notifications, alert thresholds, and user inputs dynamically.
đšī¸ Keyboard Matrix#
| Key | Action |
|---|---|
Tab | Cycle module focus |
A | Add host (DNS server or WAN target, context-aware) |
X | Delete host |
R | Rename host |
Enter / T | Full-screen MTR mode |
+ / - | Scale tick rate (250ms â 5s) |
Esc | Freeze viewport on an anomaly |
Q / Ctrl+C | Clean shutdown |
âī¸ Design Notes#
- Concurrency first: every collector is an independent goroutine; a stalled DNS resolver never blocks gateway telemetry.
- Raw ICMP with fallback: uses raw sockets when privileged, degrades gracefully to unprivileged mode.
- Zero dependencies: ships as a single Go binary â no runtime, no agent, no config files.
đ ī¸ Installation#
Requirement: Go 1.21+
git clone https://github.com/ibfavas/netpulse.git
cd netpulse
go build -o netpulse .
./netpulse
â Takeaway#
NetPulse is the tool I reach for when a network problem is vague â “the internet feels slow” â and I need every layer of the path visible at once. One binary, one screen, every signal. âĄ