NetPulse is a zero-dependency, high-density real-time network diagnostic telemetry HUD designed exclusively for Linux. Written entirely in Go using the Charmbracelet Bubble Tea framework, it aggregates critical network path diagnostics, interface I/O streams, and ISP metadata into a cohesive, keyboard-driven Cyberpunk/Sci-Fi tactical command dashboard.
Instead of running separate windows for ping, mtr, dig, and nload, NetPulse runs them concurrently via non-blocking asynchronous Goroutines ensuring zero interface lag even during severe packet drops or connection failure loops.
- Active monitoring of the local default gateway (automatically parsed via system routing paths).
- Live Braille-based latency sparklines mapping local link reliability.
- Unprivileged packet fallback handling when running without root capabilities.
- Real-time resolution benchmark testing across multiple custom and public DNS clusters (System, Cloudflare, Google, Quad9, OpenDNS).
- Interactive Matrix Extension: Use the context-aware input engine to append custom upstream resolvers on the fly.
- Parses low-level Linux networking layers to track real-time interface throughput throughput delta lines (
RX / TXspeeds). - Automated BGP Autonomous System Number (ASN) mapping, WAN validation, and ISP provider identification.
- High-density tabular metrics tracking critical backbones.
- Calculates Current RTT, Minimum, Maximum, Average, Packet Loss, and Jitter concurrently.
- Supports Interactive Full-Screen MTR mode tracing individual network hops.
- A scrolling operational ring buffer console. It actively hooks and prints diagnostic system notifications, alert thresholds, and user inputs dynamically.
| Key Binding | Action | Contextual Description |
|---|---|---|
Tab |
Cycle Modules | Shifts focus between panels, modifying the active LipGloss highlight border. |
A |
Add Host | Context-aware target injection. Appends DNS servers or WAN targets depending on focused panel. |
X |
Delete Host | Safely removes user-defined dynamic monitoring targets. |
R |
Rename Host | Modifies the visible name tag string of custom telemetry nodes. |
Enter / T |
MTR Mode | Triggers an interactive full-screen intermediate routing traceroute chart. |
+ / - |
Scale Tick Rate | Scales the polling speed between high-precision 250ms loops and slow 5s checks. |
Esc |
Pause Viewport | Freezes the active UI rendering context loop to lock anomalies onto the screen. |
Q / Ctrl+C |
Abort Execution | Safely tears down the async monitoring routines and returns control to the shell. |
If you have the Go runtime configured on your system, you can fetch, compile, and install NetPulse with one command:
go install github.com/ibfavas/netpulse/cmd/netpulse@latestYou can also clone the repository and compile using the included Makefile. This installs the binary directly to /usr/local/bin granting it proper raw socket capabilities natively:
git clone https://github.com/ibfavas/netpulse.git
cd netpulse
sudo make installOnce installed, simply run it:
netpulse # Standard launch
sudo netpulse # Elevated launch (for raw ICMP/MTR capabilities)
netpulse --daemon # Headless background mode logging to ~/.local/share/netpulse/metrics.log
netpulse -demo # Showcase mode for scrubbing PII data when taking screenshots