From networking-plugin
Troubleshoots network connectivity using Rust-based tools: trippy for traceroute/mtr with TUI/ASN/geo, gping for graphical multi-host pings, ss for socket stats. Replaces legacy netstat/traceroute/ping.
npx claudepluginhub laurigates/claude-plugins --plugin networking-pluginThis skill is limited to using the following tools:
Expert knowledge for network connectivity troubleshooting using modern diagnostic tools that provide richer output than legacy alternatives.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Expert knowledge for network connectivity troubleshooting using modern diagnostic tools that provide richer output than legacy alternatives.
| Use Case | Tool | Why |
|---|---|---|
| Path analysis with latency | trippy | Combines traceroute + ping with TUI |
| Multi-host latency comparison | gping | Visual graphs, parallel pings |
| Local socket inspection | ss | Modern netstat replacement |
| Quick single-hop latency | gping | Faster feedback than trippy |
| Network path + ASN info | trippy | Built-in ASN/geo lookups |
| Modern | Legacy | Improvements |
|---|---|---|
| trippy | traceroute, mtr | TUI, jitter stats, ASN/geo, world map |
| gping | ping | Visual graphs, multi-host parallel |
| ss | netstat | Faster, more info, better filtering |
Rust-based network path analyzer combining traceroute and ping with a rich TUI.
# Basic traceroute with TUI
trip example.com
# Specify protocol mode
trip -m icmp example.com # ICMP (default, needs root/caps)
trip -m udp example.com # UDP (no root needed)
trip -m tcp example.com # TCP
# TCP to specific port
trip -m tcp -p 443 example.com
trip -m tcp -p 80 example.com
# Specify source interface
trip -i en0 example.com
trip -i eth0 example.com
# Enable ASN lookups in TUI
trip --tui-as-mode asn example.com
trip --tui-as-mode prefix example.com
# Geo-location in TUI
trip --tui-geoip-mode short example.com
trip --tui-geoip-mode long example.com
# JSON output for parsing
trip example.com --mode json -c 10
# Dot format (Graphviz)
trip example.com --mode dot -c 10
# CSV format
trip example.com --mode csv -c 10
# Flows (path changes)
trip example.com --mode flows -c 10
# Silent mode (summary only)
trip example.com --mode silent -c 10
# Pretty print (no TUI)
trip example.com --mode pretty -c 10
# Set packet count
trip example.com -c 100
# Set max TTL (hops)
trip example.com -t 30
# Set packet size
trip example.com -S 64
# First TTL to start from
trip example.com -f 5
# Parallel probes per hop
trip example.com -N 16
# Grace period after target reached
trip example.com -g 100ms
Visual latency graphs with multi-host parallel ping support.
# Basic ping with graph
gping example.com
# Multiple hosts (parallel comparison)
gping google.com cloudflare.com amazon.com
# Force IPv4/IPv6
gping -4 example.com
gping -6 example.com
# Specify interface
gping -i en0 example.com
# Simple graphics (ASCII, for terminals without unicode)
gping -s example.com
# Set buffer size (number of pings to display)
gping -b 100 example.com
# Ping a command's execution time instead of host
gping --cmd "curl -s https://api.example.com/health"
gping --cmd "dig example.com"
gping --cmd "http https://api.example.com/status"
# Compare multiple commands
gping --cmd "curl -s localhost:3000" --cmd "curl -s localhost:8080"
# Set ping interval (seconds)
gping -n 0.5 example.com
# Watch specific timeout
gping -w 2 example.com
# Clear screen before starting
gping --clear example.com
Modern replacement for netstat, faster and more informative.
# All TCP connections
ss -t
# All UDP sockets
ss -u
# Listening sockets only
ss -l
# Show process info (requires root for other users' processes)
ss -p
# Numeric output (no DNS resolution)
ss -n
# Combined: listening TCP with process info, numeric
ss -tlnp
# Combined: all TCP/UDP listening sockets with processes
ss -tulnp
# Filter by state
ss -t state established
ss -t state listening
ss -t state time-wait
ss -t state close-wait
# Filter by port
ss -t sport = :22
ss -t dport = :443
ss -t 'sport = :80 or dport = :80'
# Filter by address
ss -t src 192.168.1.0/24
ss -t dst 10.0.0.1
# Combined filters
ss -t 'sport = :443 and dst 10.0.0.0/8'
# Socket summary statistics
ss -s
# Extended info (memory, congestion)
ss -e
# Timer info (retransmits, keepalives)
ss -o
# Memory usage
ss -m
# Full detail
ss -i
# Find what's using a port
ss -tlnp | grep :8080
ss -tlnp 'sport = :8080'
# Count connections by state
ss -t state established | wc -l
# Find connections to specific host
ss -tn dst 192.168.1.100
# Monitor established connections to a service
watch -n 1 'ss -tn state established dport = :443 | wc -l'
# Step 1: Check if host responds
gping target.example.com
# Step 2: Analyze network path
trip target.example.com
# Step 3: Check local listening services
ss -tlnp
# Step 4: Verify outbound connectivity
ss -tn state established | grep target.example.com
# Compare multiple endpoints
gping primary.example.com secondary.example.com backup.example.com
# Compare DNS providers
gping 8.8.8.8 1.1.1.1 9.9.9.9
# Compare API endpoints
gping --cmd "curl -s api1.example.com" --cmd "curl -s api2.example.com"
# What's listening on common ports
ss -tlnp 'sport = :80 or sport = :443 or sport = :8080 or sport = :3000'
# Find all listening ports in a range
ss -tlnp 'sport >= :8000 and sport <= :9000'
# Compare paths to different regions
trip us-east.example.com &
trip eu-west.example.com &
trip ap-southeast.example.com
# Analyze with ASN information
trip --tui-as-mode asn cdn.example.com
| Context | Command |
|---|---|
| Quick latency check | gping -b 10 HOST 2>&1 | head -20 |
| Path analysis (JSON) | trip HOST --mode json -c 5 |
| Listening ports | ss -tlnp |
| Connection count | ss -tn state established | wc -l |
| Port in use | ss -tlnp 'sport = :PORT' |
| Multi-host compare | gping HOST1 HOST2 HOST3 -b 5 |
| TCP path check | trip -m tcp -p 443 HOST --mode pretty -c 3 |
| Flag | Long | Description |
|---|---|---|
-m | --mode | Protocol: icmp, udp, tcp |
-p | --port | Target port (tcp/udp mode) |
-i | --interface | Source interface |
-c | --count | Number of probes |
-t | --max-ttl | Maximum TTL/hops |
-f | --first-ttl | Starting TTL |
-S | --packet-size | Packet size in bytes |
--tui-as-mode | ASN display: asn, prefix | |
--tui-geoip-mode | Geo display: short, long | |
--mode | Output: tui, json, csv, dot, flows, silent, pretty |
| Flag | Long | Description |
|---|---|---|
-4 | Force IPv4 | |
-6 | Force IPv6 | |
-i | --interface | Source interface |
-s | --simple-graphics | ASCII-only output |
-b | --buffer | Number of pings to display |
-n | --interval | Ping interval (seconds) |
-w | --watch-interval | Watch timeout |
--cmd | Ping command execution time | |
--clear | Clear screen before starting |
| Flag | Description |
|---|---|
-t | TCP sockets |
-u | UDP sockets |
-l | Listening only |
-a | All sockets |
-p | Show process |
-n | Numeric (no DNS) |
-e | Extended info |
-o | Timer info |
-m | Memory usage |
-i | Internal TCP info |
-s | Summary statistics |
| State | Description |
|---|---|
established | Active connections |
listening | Listening sockets |
time-wait | Waiting for timeout |
close-wait | Waiting for local close |
syn-sent | Connection initiating |
syn-recv | Connection received |
# macOS
brew install trippy gping
# ss is part of iproute2 on Linux (usually pre-installed)
# On macOS, use netstat instead (ss not available)
# Cargo (cross-platform)
cargo install trippy
cargo install gping
# Verify installations
trip --version
gping --version
ss --version # Linux only
CAP_NET_RAW capability; UDP/TCP modes work without elevationnetstat -an on macOS for similar functionality