
*A network scanner written in Rust. CLI, terminal UI, desktop app, and MCP server. One library behind all four.*
[](https://github.com/fstubner/netscli/actions/workflows/ci.yml)
[](https://crates.io/crates/netscli)
[](https://github.com/fstubner/netscli/releases)
[](https://github.com/fstubner/netscli/releases)
[](https://opensource.org/licenses/MIT)
**[Documentation](https://netscli.com/docs/)** · **[Install](https://netscli.com/docs/install/)** · **[Changelog](https://netscli.com/changelog/)**
## Why this exists
The terminal UI came first. I wanted to understand how the newer TUIs work,
the ones coding agents like Claude Code have put real effort into.
Autocomplete, command history, in-place progress, and a UI that does not take
over the terminal, so scrollback and copying text keep working. Building one
seemed like the way to learn it, and a network scanner gave it something to
do.
The MCP server came next. I thought it would be interesting to let an agent
work with a network that way. Ask which device just joined, or whether port 22
is open on some host, instead of shelling out to another tool and parsing
output that was written for a person to read.
Then the CLI, for programmatic use. A script or a cron job wants one command
and JSON back, not an interactive session.
The desktop app came last. Some people would rather have a GUI than a
terminal, and honestly I sometimes prefer it myself over running the commands
locally.
Three of them are the same binary. `netscli