Open source · MIT · Rust · Windows, Linux, macOS

A network scanner you
can talk to

Discover hosts, scan ports, resolve DNS, capture packets. Use it from a terminal, a desktop app, or let your AI agent call the MCP server — or the CLI directly.

curl -fsSL https://raw.githubusercontent.com/fstubner/netscli/main/scripts/install.sh | bash
netscli desktop app dashboard

Four interfaces, one library

Every surface calls the same netscli-core. Full docs →

Desktop app

A standalone desktop application for when you'd rather not open a terminal. Scan ports, discover hosts, look up DNS records, inspect your ARP table. Available for Windows, Linux, and macOS.

Port scan results in the desktop app

Terminal UI

An interactive terminal interface. Type / to see available commands, use tab to autocomplete, arrow keys to browse history. The status bar shows your IP and live traffic rates.

TUI showing /discover results

Command line

Every scan ships as a standalone subcommand with --json and --yaml output. Pipe results into jq, call it from a shell script, or have an agent invoke it directly without the full MCP server.

$ netscli scan 1.1.1.1 -p 80,443 --json [ { "port": 80, "open": true, "service": "http" }, { "port": 443, "open": true, "service": "https" } ] $ netscli discover --json | jq '.[].ip' "192.168.1.10" "192.168.1.21" "192.168.1.57"

MCP server

Run netscli serve and point Claude Desktop or Cursor at it. Your agent gets 9 tools — host discovery, port scanning, DNS, ARP, and more — over standard JSON-RPC.

// claude_desktop_config.json { "mcpServers": { "netscli": { "command": "netscli", "args": ["serve"] } } }

Get started

Install, then run. Full README →

Linux / macOS
curl -fsSL https://raw.githubusercontent.com/fstubner/netscli/main/scripts/install.sh | bash
Add NETSCLI_PCAP=1 for packet capture.
Windows
iwr -useb https://raw.githubusercontent.com/fstubner/netscli/main/scripts/install.ps1 | iex
Cargo
cargo install netscli

Or grab binaries from the latest release.

Then try
$ netscli discover $ netscli scan 192.168.1.1 -p 22,80,443 $ netscli dns google.com $ netscli serve $ netscli --help