{"adoption": {"forks": 121, "observed_at": "2026-08-28T04:05:57.636233+00:00", "stars": 1945}, "canonical_url": "https://ross.abutalabs.com/products/angryoxide", "card": {"archived": false, "artifact_type": "cli-tool", "description": "802.11 Attack Tool", "domain": ["penetration-testing", "security", "networking"], "enriched": true, "function": ["penetration-testing", "security", "networking", "terminal-ui", "developer-tools"], "health_score": 96, "homepage": null, "language": "Rust", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["Ragnt/AngryOxide"], "name": "Ragnt/AngryOxide", "platform": ["cli", "rust"], "pushed_at": "2026-08-26T01:35:58+00:00", "repo": "Ragnt/AngryOxide", "stars": 1945, "tags": ["wifi", "802-11", "wireless-security", "wpa-cracking", "eapol", "pmkid", "hashcat", "aircrack-ng-alternative", "gpsd", "netlink", "command-line", "linux"], "topics": ["802-11", "penetration-testing", "pentesting", "security-tools", "wireless-security", "aircrack", "aircrack-ng", "netsec", "netsec-tools"], "urls": [], "use_cases": ["capture WPA handshakes for hashcat cracking", "elicit PMKID attacks against access points", "survey nearby WiFi networks from the terminal", "run targeted deauthentication attacks against specific APs or clients", "audit wireless networks I have permission to test", "run WiFi attacks over SSH with a terminal UI", "geofence wireless attack tooling to a physical area"], "what_it_is": "AngryOxide is an 802.11 WiFi attack tool written in Rust that provides a single-interface survey capability with automated attacks to capture EAPOL handshakes and PMKIDs as hashcat-crackable hashlines. It features a terminal UI, headless mode, target/whitelist scoping, channel hopping, and GPSD-based geofencing.", "when_to_avoid": ["you need a passive WiFi monitoring or packet analysis tool only", "you are on Windows or macOS without compatible monitor-mode hardware", "you lack permission to test the target networks", "you need a stable, mature tool rather than one under heavy development"], "when_to_choose": ["you want a modern Rust alternative to hcxdumptool/aircrack-ng for WPA capture", "you need automated handshake and PMKID capture with validation in one tool", "you want terminal-based WiFi attack tooling usable over SSH", "you need target/whitelist scoping and channel hopping in a single interface"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/angryoxide", "repo": "Ragnt/AngryOxide", "role": "main", "score": 70}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:07:21.777910+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "158f0658945be20a19f37b6c5d1b480e7e7ad6eda4ed1f5c6249895fda6a3288", "fetched_at": "2026-08-28T04:05:57.636233+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ragnt/AngryOxide"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:07:21.777910+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "158f0658945be20a19f37b6c5d1b480e7e7ad6eda4ed1f5c6249895fda6a3288", "fetched_at": "2026-08-28T04:05:57.636233+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ragnt/AngryOxide"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:07:21.777910+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "158f0658945be20a19f37b6c5d1b480e7e7ad6eda4ed1f5c6249895fda6a3288", "fetched_at": "2026-08-28T04:05:57.636233+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ragnt/AngryOxide"}], "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:57.636233+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:07:21.777910+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "158f0658945be20a19f37b6c5d1b480e7e7ad6eda4ed1f5c6249895fda6a3288", "fetched_at": "2026-08-28T04:05:57.636233+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ragnt/AngryOxide"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:07:21.777910+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "158f0658945be20a19f37b6c5d1b480e7e7ad6eda4ed1f5c6249895fda6a3288", "fetched_at": "2026-08-28T04:05:57.636233+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ragnt/AngryOxide"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:07:21.777910+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "158f0658945be20a19f37b6c5d1b480e7e7ad6eda4ed1f5c6249895fda6a3288", "fetched_at": "2026-08-28T04:05:57.636233+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ragnt/AngryOxide"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.636233+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:07:21.777910+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "158f0658945be20a19f37b6c5d1b480e7e7ad6eda4ed1f5c6249895fda6a3288", "fetched_at": "2026-08-28T04:05:57.636233+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ragnt/AngryOxide"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:07:21.777910+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "158f0658945be20a19f37b6c5d1b480e7e7ad6eda4ed1f5c6249895fda6a3288", "fetched_at": "2026-08-28T04:05:57.636233+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ragnt/AngryOxide"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:07:21.777910+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "158f0658945be20a19f37b6c5d1b480e7e7ad6eda4ed1f5c6249895fda6a3288", "fetched_at": "2026-08-28T04:05:57.636233+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ragnt/AngryOxide"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:07:21.777910+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "158f0658945be20a19f37b6c5d1b480e7e7ad6eda4ed1f5c6249895fda6a3288", "fetched_at": "2026-08-28T04:05:57.636233+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Ragnt/AngryOxide"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 74, "rhythm": 30}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1046, "days_push": 8, "days_rel": 256, "gap_med": 279, "n_releases_24m": 2}, "score": 70, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}