netprobe
Multi-protocol network health monitor with a real-time terminal UI.
Probes targets across 6 protocols simultaneously and displays results in an interactive TUI. Also runs as an HTTP API server or a native macOS menu bar app.
Features
- 6 protocol probes -- DNS resolution, TCP:443, TLS handshake (with version reporting), HTTP, HTTPS (with status codes), ICMP ping
- Interactive TUI -- color-coded results:
✓ ok, ✗ blocked, ● timeout, ? error
- Statistics -- check count, uptime %, RTT min/max/avg
- Geolocation -- city, country, IP via ipinfo.io
- HTTP API server mode --
--serve on localhost:19090
- Native macOS menu bar app -- with widget (see
NetprobeApp/)
- YAML config file --
~/.netprobe.yaml
Default targets: google.com, youtube.com, github.com, telegram.org, x.com, whatsapp.com, signal.org, wikipedia.org, reddit.com, chatgpt.com, claude.ai, gemini.google.com, huggingface.co, perplexity.ai
Install
go install github.com/a-tarasoff/netprobe@latest
Usage
netprobe # run with defaults
netprobe google.com github.com # custom targets
netprobe --interval 10s # custom interval
netprobe --timeout 3s # custom timeout
netprobe --serve # HTTP API mode
netprobe --serve --port 8080 # custom port
netprobe --config /path/to/config # custom config
Keyboard shortcuts in TUI: r = refresh, q / esc / ctrl+c = quit.
ICMP probes require root/sudo on most systems.
Config
~/.netprobe.yaml:
targets:
- google.com
- github.com
interval: 5s
timeout: 5s
API
When running with --serve (default port 19090):
| Endpoint |
Method |
Description |
/api/status |
GET |
Full probe results and stats as JSON |
/api/refresh |
POST |
Trigger immediate re-probe |
/api/health |
GET |
Simple health check |
Build from source
go build
macOS app
A native macOS menu bar app with widget lives in the NetprobeApp/ directory. The Xcode project is generated with xcodegen from project.yml.
License
MIT