v0.2.0 — mDNS, typed errors, distribution story
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.