Skip to the content.

catnet — A fast, scriptable network scanner for the command line. Built in Go. Zero engine dependencies. Made for pipelines.

Release CI License: MIT

What catnet does

🔍 Discover 🔒 Enumerate 📤 Export
ICMP ping sweep TCP port scanning JSON · CSV · XML
ARP resolution Reverse DNS lookup Pipeline-ready stdout

Install in 30 seconds

macOS / Linux (Homebrew):

brew install catnet-io/tap/catnet

Windows (Scoop):

scoop bucket add catnet https://github.com/catnet-io/scoop-bucket
scoop install catnet

Linux / macOS (Binary Download):

curl -sSL https://github.com/catnet-io/catnet/releases/latest/download/catnet_Linux_x86_64.tar.gz | tar xz
sudo mv catnet /usr/local/bin/
catnet version

Using Go:

go install github.com/catnet-io/catnet/cmd/catnet@latest

Quick CLI & Flag Reference

catnet scan [targets] [flags]

Flag Shorthand Default Description
--ports -p 22,80,443,139,445,3389 Comma-separated TCP ports to probe
--threads -t 64 Concurrency thread count
--ping-timeout 1000 ICMP ping timeout (in ms)
--port-timeout 500 TCP connect timeout (in ms)
--timeout (none) Scan deadline (e.g. 30s)
--no-ports false ICMP ping sweep only
--format human Output format: human or json
--output -o (none) Write scan output file with 0600 permissions (JSON format)
--quiet -q false Suppress progress output to stderr
--no-color false Disable ANSI color codes

catnet export [input.json] [flags]

Flag Shorthand Default Description
--format -f (required) Target export format: json, csv, or xml
--output -o (none) Write exported results to file with 0600 permissions

Exit Codes Contract

Exit Code Classification Meaning
0 Success Scan completed successfully.
1 Input Error Invalid targets, unsupported format, or flag error.
2 Runtime Error Scan failure or network socket error.
130 Interrupted Scan cancelled via Ctrl+C / SIGINT or timeout.

Designed for pipelines

catnet outputs human-readable progress indicators to stderr while streaming structured results (or silent quiet outputs) to stdout.

Basic JSON scan with jq integration

catnet scan 192.168.1.0/24 --format json | jq '.devices[] | select(.isAlive) | {ip, hostname, openPorts}'

Quiet mode (ideal for scripting/CI)

catnet scan 192.168.1.0/24 --format json --quiet

Custom port scanning

# Scan specific ports
catnet scan 192.168.1.0/24 --ports 22,80,443,8080

# Skip port scanning entirely (ping sweep only)
catnet scan 192.168.1.0/24 --no-ports

Save and re-export

catnet scan 192.168.1.0/24 --format json -o result.json
catnet export result.json --format csv -o result.csv

Part of the CatNet Ecosystem

CatNet is a complete network scanning suite designed for terminal users, automation scripts, and graphical desktops.

  Repository Role Description
⚙️ catnet-io/engine Shared scanning engine High-performance, asynchronous scanning library in Go.
💻 catnet-io/catnet Scriptable CLI This CLI client, optimized for terminal pipelining.
🖥️ catnet-io/app Desktop GUI Cross-platform desktop application (Wails + React) with local SQLite history and scan comparison diffing.
📟 catnet-io/tui Terminal UI Keyboard-centric interactive Terminal UI built with Bubble Tea.