Repolode
matthart1983

matthart1983/netwatch

A terminal network diagnostics tool in Rust that shows live traffic, connections, packets and diagnoses with one command.

Open-source alternative to:Wiresharknethogs

Stars
3,498
Forks
157
Open issues
2
Last commit
yesterday

What is it?

NetWatch is a terminal UI for watching a machine's network activity in real time. Running `netwatch` without privileges lists interfaces, connections and configuration; running it with `sudo` enables packet capture with L7 protocol decoding and process attribution where the platform supports it.

The interface is organized into tabs covering the dashboard, sockets with owning process and TCP state, interface rates and errors, live packet decoding with display filters and PCAP export, protocol statistics, a topology view with traceroute, and bandwidth per process. A Diagnose tab tracks learned baselines, reports an issue with its likely cause and fix, and closes it once the fix holds. Lite and dense layouts fit small terminals or large dashboards.

The same collectors can run headless via `netwatch daemon`, which exposes Prometheus metrics on a local port, and `netwatch diagnose run` returns exit codes and JSON for scripts. Packages are available through Homebrew, cargo, apt, dnf, Nix, conda, Scoop and Docker.

Key features

  • 01Live throughput, connections and interface stats in a terminal UI.
  • 02Packet capture with L7 decoding, display filters and PCAP export.
  • 03Process attribution for sockets and bandwidth where the platform allows.
  • 04Diagnose tab that flags issues against learned baselines and suggests fixes.
  • 05Headless daemon with Prometheus metrics and scriptable JSON diagnosis output.

Use cases

  • Checking which process is using bandwidth or holding unusual connections on a laptop or server.
  • Watching network health over SSH on a small Raspberry Pi or inside a tmux pane.
  • Feeding network metrics into Prometheus from a headless host.
  • Running scheduled network diagnosis in scripts or CI-style health checks.

Quick start

  1. 1

    Install via Homebrew (macOS / Linux)

    brew install netwatch
  2. 2

    Run the terminal UI with elevated access for live capture

    sudo netwatch

Things to know

  • Packet capture and some diagnostics need sudo or granted capabilities on Linux.
  • Windows requires Npcap to be installed separately.
  • FreeBSD build is best-effort and needs FreeBSD 13 or newer for the prebuilt binary.

Topics

FAQ

What is netwatch?
A terminal network diagnostics tool in Rust that shows live traffic, connections, packets and diagnoses with one command. NetWatch is a terminal UI for watching a machine's network activity in real time. Running `netwatch` without privileges lists interfaces, connections and configuration; running it with `sudo` enables packet capture with L7 protocol decoding and process attribution where the platform supports it.
Is netwatch free to use? What license does it have?
netwatch is open source under the MIT license. Check the license terms before using it in commercial products.
Is netwatch still maintained?
Actively maintained. The last commit to netwatch was on Oct 19, 2026.
What can I use netwatch for?
Checking which process is using bandwidth or holding unusual connections on a laptop or server. Watching network health over SSH on a small Raspberry Pi or inside a tmux pane. Feeding network metrics into Prometheus from a headless host. Running scheduled network diagnosis in scripts or CI-style health checks.
How do I install netwatch?
Install via Homebrew (macOS / Linux): brew install netwatch Run the terminal UI with elevated access for live capture: sudo netwatch
Where can I get netwatch?
The source code and installation instructions are on GitHub: https://github.com/matthart1983/netwatch

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects