Repository navigation
Releases: fstubner/netscli
Release list
v0.2.0
v0.2.0
First major feature pass since v0.1.0. Adds a real mDNS capability, a properly typed public API, shell completions, man pages, and the distribution groundwork (Homebrew / Scoop / Winget / AUR) that lets people install without a Rust toolchain.
New capability: mDNS / DNS-SD discovery
netscli mdns # 3s browse over a curated service-type set
netscli mdns --timeout-ms 5000 --json | jqWorks from the CLI, the TUI (/mdns), and as an MCP tool (discover_mdns). Returns devices with their hostnames, resolved IPv4 + IPv6, ports, and full TXT record properties. Means an agent asking "is the kitchen Chromecast online?" can match by name and service type instead of guessing IPs.
Library hardening
netscli_core::Error+Result<T>— every public function returns a structured error instead ofanyhow::Error. Pattern-match onInvalidInput/Dns/Network/Timeout/Unsupported/Io/Database/Pcap/Other. Marked#[non_exhaustive]so more variants can land without being breaking changes.dbfeature onnetscli-core— the SQLiteDatabasetype (and sqlx + chrono deps) is now opt-in. Default-feature consumers see ~35% fewer transitive crates.mdnsfeature onnetscli-core— gates the new discovery module; pure-Rust, no libpcap-style system dep.cargo-auditCI with a documented.cargo/audit.tomlignore list per reachable advisory.
Distribution
- Shell completions:
netscli completions bash|zsh|fish|powershell|elvish→ stdout. - Man page:
netscli man→ roff. - Sigstore signatures: every release asset ships with a
.sig+.pem, verifiable withcosign verify-blob. No paid cert, no long-lived secrets. - Package manifests:
packaging/holds submission templates for Homebrew (tap), Scoop (bucket), Winget (microsoft/winget-pkgs via wingetcreate), and Arch AUR (netscli-bin). PRs to those registries will land after this release is up.
Install
# From crates.io (Rust toolchain required)
cargo install netscli
# Prebuilt binaries for every platform — attached belowBrew / Scoop / Winget / AUR instructions coming in a follow-up once the submissions are accepted.
Full changelog
See CHANGELOG.md.
v0.1.1
v0.1.1 — cleanup + hygiene
Maintenance release. Same four surfaces, cleaner internals.
Added
- Per-crate README.md on crates.io for netscli, netscli-core, and netscli-mcp.
- CHANGELOG, SECURITY, DEVLOG, grouped Dependabot config.
Changed
- sqlx 0.7 → 0.8. No source changes needed.
- OUI vendor dataset lives inside
netscli-corenow (was at workspace root, not bundled in the published crate). docs/split intoscreenshots/andassets/.
Fixed
- Release build workflow now actually runs when you publish a release. Previous trigger (
release: [created]) was suppressed by GitHub's anti-loop protection for bot-created drafts, so v0.1.0 needed manual workflow_dispatch to get binaries. - Windows pcap build fixed (Npcap SDK 1.13 zip has
Lib/at root, not under a wrapping folder). - ARM64 Linux runner label corrected from
ubuntu-24.04-arm64→ubuntu-24.04-arm.
Security
- Dropped CVE-flagged dep versions via transitive patches (
bytes,time,rand,rsa) and thesqlxmajor bump. None were reachable under our feature flags, but this cleans up the alert feed.
Install
cargo install netscliOr grab prebuilt binaries from the assets below.
Links
- Source: https://github.com/fstubner/netscli
- Landing: https://netscli.com
- crates.io: https://crates.io/crates/netscli
- Full changelog: CHANGELOG.md
v0.1.0
netscli v0.1.0 — initial release
A network scanner written in Rust. CLI, terminal UI, desktop app, and MCP server. One library behind all four.
Install
# From crates.io (Rust toolchain required)
cargo install netscli
# Or download a prebuilt binary for your platform from the assets belowSurfaces in this release
- CLI —
netscli <cmd>for scripts, cron, and piping intojq. - TUI —
netscliwith no args, a ratatui-based terminal UI with autocomplete, command history, in-place progress, and a status footer. - Desktop app — a Tauri 2 + React GUI for when opening a terminal is too much. Installers built per-platform under release assets.
- MCP server —
netscli serveexposes nine tools over JSON-RPC on stdio for Claude Code, Cursor, or any MCP client.
Commands
Host discovery, port scan, subnet sweep, ping, traceroute, DNS lookup (all record types), reverse DNS, ARP table with vendor resolution, interface listing, and optional packet capture.
Binary variants
Each platform has two builds: a default one with no runtime deps, and a -pcap variant that ships libpcap/Npcap integration for packet capture. The install scripts pick the right one via the NETSCLI_PCAP=1 flag.
Known limitations
sqlx 0.7is in the dependency graph vianetscli-core. The project uses thesqlitefeature only, so the PostgreSQL/MySQL binary-protocol advisory (GHSA-xmrp-424f-vfpx) is not reachable. A hygiene bump to sqlx 0.8 is planned for v0.1.1.- Desktop app requires the WebView2 runtime on Windows. Most Windows 10/11 systems already have it. See README for the manual install link if the app won't start.
Links
- Landing page: https://netscli.com
- Source: https://github.com/fstubner/netscli
- crates.io: https://crates.io/crates/netscli