networking-plugin/skills/network-monitoring/SKILL.md
Real-time network traffic and per-process bandwidth monitoring. Use when finding which app consumes bandwidth, inspecting active connections, or capturing traffic samples.
npx skillsauth add laurigates/claude-plugins network-monitoringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Scenario | Use this skill | Alternative | |----------|---------------|-------------| | Find which process is consuming bandwidth | Yes (bandwhich) | | | Monitor per-connection bandwidth in real time | Yes (bandwhich) | | | Visually inspect traffic with protocol filtering | Yes (Sniffnet) | | | Capture a script-friendly sample of bandwidth data | Yes (bandwhich -r) | | | Identify unexpected outbound connections | Yes (bandwhich) | | | Scan for open ports on a remote host | | network-discovery (RustScan, nmap) | | Trace the route or diagnose packet loss | | network-diagnostics (trippy) | | Look up DNS records for a domain | | dns-tools (dog, dig) | | Discover devices on the local L2 segment | | layer2-discovery (ARP/LLDP) | | Load test an HTTP endpoint | | http-load-testing (oha) |
Expert knowledge for real-time network traffic monitoring using modern Rust-based tools: bandwhich for CLI-based per-process bandwidth analysis and Sniffnet for visual traffic inspection.
| Tool | Type | Best For | |------|------|----------| | bandwhich | CLI | Per-process bandwidth, quick diagnostics, scripting | | Sniffnet | GUI | Visual analysis, long-term monitoring, filtering |
iftop)Both tools require elevated privileges to capture network traffic:
# Run with sudo
sudo bandwhich
# Or grant capabilities (Linux, avoids sudo)
sudo setcap cap_net_raw,cap_net_admin+ep $(which bandwhich)
# Start monitoring (requires sudo or capabilities)
sudo bandwhich
# Monitor specific interface
sudo bandwhich -i en0
sudo bandwhich -i eth0
# Raw mode (no TUI, machine-readable)
sudo bandwhich -r
# Disable DNS resolution (faster startup)
sudo bandwhich -n
# Default TUI with three panels:
# - Processes (bandwidth by application)
# - Connections (bandwidth by socket)
# - Remote addresses (bandwidth by host)
# Raw output for scripting
sudo bandwhich -r
# Output: <interface>:<process>:<bytes_down>:<bytes_up>
# Combined options
sudo bandwhich -i en0 -n -r
| Key | Action |
|-----|--------|
| Tab | Switch between panels |
| Up/Down | Navigate rows |
| q | Quit |
# macOS
brew install sniffnet
# Cargo
cargo install sniffnet
# Or download from GitHub releases
# https://github.com/GyulyVGC/sniffnet/releases
# GUI application (requires sudo or admin)
sudo sniffnet
# On macOS, may need to grant network access in System Preferences
# Quick check: which process is using bandwidth?
sudo bandwhich -n
# Watch specific interface during download
sudo bandwhich -i en0
# Capture 10 seconds of raw data
sudo timeout 10 bandwhich -r > /tmp/bandwidth.log
# Parse raw output
cat /tmp/bandwidth.log | cut -d: -f2 | sort | uniq -c | sort -rn
# Monitor WiFi
sudo bandwhich -i en0
# Monitor Ethernet (separate terminal)
sudo bandwhich -i en1
# Raw mode shows all connections
sudo bandwhich -r -n | grep -v "127.0.0.1" | head -20
| Context | Command |
|---------|---------|
| Quick bandwidth check | sudo bandwhich -n (no DNS delay) |
| Machine-readable output | sudo bandwhich -r |
| Specific interface | sudo bandwhich -i <iface> -n |
| Capture sample | sudo timeout 5 bandwhich -r > /tmp/bw.log |
| Parse top processes | sudo bandwhich -r \| cut -d: -f2 \| sort \| uniq -c |
| Flag | Long | Description |
|------|------|-------------|
| -i | --interface | Monitor specific network interface |
| -r | --raw | Machine-readable output (no TUI) |
| -n | --no-resolve | Skip DNS resolution (faster) |
| -h | --help | Show help |
| -V | --version | Show version |
<interface>:<process_name>:<bytes_downloaded>:<bytes_uploaded>
Example:
en0:firefox:1048576:65536
en0:curl:4096:1024
# macOS
brew install bandwhich
# Cargo
cargo install bandwhich
# Linux (grant capabilities to avoid sudo)
sudo setcap cap_net_raw,cap_net_admin+ep $(which bandwhich)
# macOS
brew install sniffnet
# Cargo
cargo install sniffnet
# GitHub releases (pre-built binaries)
# https://github.com/GyulyVGC/sniffnet/releases
# Use sudo
sudo bandwhich
# Or set capabilities (Linux)
sudo setcap cap_net_raw,cap_net_admin+ep $(which bandwhich)
# Verify capabilities
getcap $(which bandwhich)
# List available interfaces
ip link show # Linux
networksetup -listallhardwareports # macOS
ifconfig -l # BSD/macOS
# Then specify
sudo bandwhich -i <interface_name>
# Disable DNS lookup
sudo bandwhich -n
testing
Verify accumulated bug claims at upstream HEAD and dedup against trackers before filing issues. Use when filing upstream reports from backlogs, audit docs, or git-history findings.
documentation
Gate outward-bound text (upstream issues, docs, PR bodies) through isolated haiku fresh-reader critique before publishing. Use when an artifact must survive a reader with zero project context.
tools
Suggest improvements to SKILL.md content, descriptions, or tool config from eval results. Use when raising pass rates, fixing triggering, or iterating on a skill after evaluation.
tools
deadbranch CLI for stale-branch cleanup — dry-run preview, TUI or non-interactive delete, protects main/develop/WIP. Use when asked to clean up branches, prune branches, or remove stale branches.