{"adoption": {"forks": 54, "observed_at": "2026-08-28T04:05:39.935628+00:00", "stars": 1815}, "canonical_url": "https://ross.abutalabs.com/products/netscanner", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Terminal Network scanner & diagnostic tool with modern TUI", "domain": ["networking", "security", "developer-tools"], "enriched": true, "function": ["networking", "monitoring", "security", "terminal-ui", "developer-tools"], "health_score": 95, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Chleba/netscanner"], "name": "Chleba/netscanner", "platform": ["windows", "cli"], "pushed_at": "2026-07-06T16:38:09+00:00", "repo": "Chleba/netscanner", "stars": 1815, "tags": ["network-scanner", "tui", "packet-capture", "wifi-scanning", "port-scanning", "arp", "rust", "command-line", "linux", "macos"], "topics": ["arp", "network-analysis", "ouilookup", "packet-analyser", "ping", "rust-lang", "wifi", "wifi-network", "packets", "networks", "scanning"], "urls": [], "use_cases": ["scan wifi networks and view signal strength charts from the terminal", "ping an entire CIDR range and see hostnames, MAC addresses, and OUI vendors", "capture and filter TCP, UDP, ICMP, and ARP packets in a TUI", "find open TCP ports on hosts in my local network", "export scanned IPs, ports, and packets to CSV", "count network traffic and view DNS records", "switch between network interfaces for scanning and packet dumping"], "what_it_is": "netscanner is a terminal-based network scanner and diagnostic tool with a modern TUI, written in Rust. It supports WiFi network scanning, CIDR pinging with hostname/OUI/MAC lookup, TCP/UDP/ICMP/ARP packet dumping, open TCP port scanning, and CSV export of results.", "when_to_avoid": ["you need IPv6 scanning and dumping, which is not yet implemented", "you cannot or prefer not to run tools with root privileges", "you need scriptable, non-interactive output rather than a TUI", "you need a full-featured packet analyzer like Wireshark"], "when_to_choose": ["you want an interactive terminal UI for network scanning and diagnostics instead of separate CLI tools", "you need combined WiFi scanning, CIDR pinging, port scanning, and packet capture in one tool", "you're on Linux, macOS, or Windows and comfortable running with root privileges"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/netscanner", "repo": "Chleba/netscanner", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.191839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a44a5b5b2bf40739da58df7513010183e436816d360cef6f965ee7a4b188e7ed", "fetched_at": "2026-08-28T04:05:39.935628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Chleba/netscanner"}, {"content_hash": "a35b2e8d9b8c63aa52d1edad8cb2c0ef7dc2c1a7015a5bc4689bfee36965dbfa", "fetched_at": "2026-08-29T10:59:26.093902+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/netscanner"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.191839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a44a5b5b2bf40739da58df7513010183e436816d360cef6f965ee7a4b188e7ed", "fetched_at": "2026-08-28T04:05:39.935628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Chleba/netscanner"}, {"content_hash": "a35b2e8d9b8c63aa52d1edad8cb2c0ef7dc2c1a7015a5bc4689bfee36965dbfa", "fetched_at": "2026-08-29T10:59:26.093902+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/netscanner"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.191839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a44a5b5b2bf40739da58df7513010183e436816d360cef6f965ee7a4b188e7ed", "fetched_at": "2026-08-28T04:05:39.935628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Chleba/netscanner"}, {"content_hash": "a35b2e8d9b8c63aa52d1edad8cb2c0ef7dc2c1a7015a5bc4689bfee36965dbfa", "fetched_at": "2026-08-29T10:59:26.093902+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/netscanner"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.191839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a44a5b5b2bf40739da58df7513010183e436816d360cef6f965ee7a4b188e7ed", "fetched_at": "2026-08-28T04:05:39.935628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Chleba/netscanner"}, {"content_hash": "a35b2e8d9b8c63aa52d1edad8cb2c0ef7dc2c1a7015a5bc4689bfee36965dbfa", "fetched_at": "2026-08-29T10:59:26.093902+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/netscanner"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.191839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a44a5b5b2bf40739da58df7513010183e436816d360cef6f965ee7a4b188e7ed", "fetched_at": "2026-08-28T04:05:39.935628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Chleba/netscanner"}, {"content_hash": "a35b2e8d9b8c63aa52d1edad8cb2c0ef7dc2c1a7015a5bc4689bfee36965dbfa", "fetched_at": "2026-08-29T10:59:26.093902+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/netscanner"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.191839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a44a5b5b2bf40739da58df7513010183e436816d360cef6f965ee7a4b188e7ed", "fetched_at": "2026-08-28T04:05:39.935628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Chleba/netscanner"}, {"content_hash": "a35b2e8d9b8c63aa52d1edad8cb2c0ef7dc2c1a7015a5bc4689bfee36965dbfa", "fetched_at": "2026-08-29T10:59:26.093902+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/netscanner"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.935628+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.191839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a44a5b5b2bf40739da58df7513010183e436816d360cef6f965ee7a4b188e7ed", "fetched_at": "2026-08-28T04:05:39.935628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Chleba/netscanner"}, {"content_hash": "a35b2e8d9b8c63aa52d1edad8cb2c0ef7dc2c1a7015a5bc4689bfee36965dbfa", "fetched_at": "2026-08-29T10:59:26.093902+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/netscanner"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.191839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a44a5b5b2bf40739da58df7513010183e436816d360cef6f965ee7a4b188e7ed", "fetched_at": "2026-08-28T04:05:39.935628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Chleba/netscanner"}, {"content_hash": "a35b2e8d9b8c63aa52d1edad8cb2c0ef7dc2c1a7015a5bc4689bfee36965dbfa", "fetched_at": "2026-08-29T10:59:26.093902+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/netscanner"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.191839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a44a5b5b2bf40739da58df7513010183e436816d360cef6f965ee7a4b188e7ed", "fetched_at": "2026-08-28T04:05:39.935628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Chleba/netscanner"}, {"content_hash": "a35b2e8d9b8c63aa52d1edad8cb2c0ef7dc2c1a7015a5bc4689bfee36965dbfa", "fetched_at": "2026-08-29T10:59:26.093902+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/netscanner"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.191839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a44a5b5b2bf40739da58df7513010183e436816d360cef6f965ee7a4b188e7ed", "fetched_at": "2026-08-28T04:05:39.935628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Chleba/netscanner"}, {"content_hash": "a35b2e8d9b8c63aa52d1edad8cb2c0ef7dc2c1a7015a5bc4689bfee36965dbfa", "fetched_at": "2026-08-29T10:59:26.093902+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/netscanner"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 71, "rhythm": 80}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 997, "days_push": 58, "days_rel": 58, "gap_med": 69.5, "n_releases_24m": 7}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}