Terminal network scanner and diagnostic tool written in Rust, with a TUI for scanning hosts, WiFi networks and packets.
- 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
Install via Homebrew (macOS / Linux)
brew install netwatch - 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
A terminal tool that replays Git commits as animated typing sessions with syntax highlighting and file tree transitions.
A terminal code review tool with vim keybindings that exports comments to GitHub, GitLab, Gitea, Bitbucket, Azure DevOps, Gerrit, or the clipboard.
A terminal weather app written in Rust that shows real-time conditions as ASCII animations like rain, snow and thunderstorms.
A terminal UI for managing Bluetooth devices on Linux, built on BlueZ.
A terminal and browser viewer that draws Claude Code and Codex sessions as a live flow graph of agents and their tool calls.