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.
- 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 --
--serveon 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
go install github.com/a-tarasoff/netprobe@latest
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.
~/.netprobe.yaml:
targets:
- google.com
- github.com
interval: 5s
timeout: 5sWhen 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 |
go build
A native macOS menu bar app with widget lives in the NetprobeApp/ directory. The Xcode project is generated with xcodegen from project.yml.
MIT