Skip to content

Releases: fstubner/netscli

v0.2.0

Choose a tag to compare

@fstubner fstubner released this 18 Apr 15:50

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 | jq

Works 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 of anyhow::Error. Pattern-match on InvalidInput / Dns / Network / Timeout / Unsupported / Io / Database / Pcap / Other. Marked #[non_exhaustive] so more variants can land without being breaking changes.
  • db feature on netscli-core — the SQLite Database type (and sqlx + chrono deps) is now opt-in. Default-feature consumers see ~35% fewer transitive crates.
  • mdns feature on netscli-core — gates the new discovery module; pure-Rust, no libpcap-style system dep.
  • cargo-audit CI with a documented .cargo/audit.toml ignore 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 with cosign 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 below

Brew / Scoop / Winget / AUR instructions coming in a follow-up once the submissions are accepted.

Full changelog

See CHANGELOG.md.

v0.1.1

Choose a tag to compare

@fstubner fstubner released this 17 Apr 11:48

v0.1.1 — cleanup + hygiene

Maintenance release. Same four surfaces, cleaner internals.

Added

Changed

  • sqlx 0.7 → 0.8. No source changes needed.
  • OUI vendor dataset lives inside netscli-core now (was at workspace root, not bundled in the published crate).
  • docs/ split into screenshots/ and assets/.

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 the sqlx major bump. None were reachable under our feature flags, but this cleans up the alert feed.

Install

cargo install netscli

Or grab prebuilt binaries from the assets below.

Links

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Apr 10:54

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 below

Surfaces in this release

  • CLI — netscli <cmd> for scripts, cron, and piping into jq.
  • TUI — netscli with 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 serve exposes 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.7 is in the dependency graph via netscli-core. The project uses the sqlite feature 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