{"adoption": {"forks": 162, "observed_at": "2026-08-28T04:04:06.113934+00:00", "stars": 1240}, "canonical_url": "https://ross.abutalabs.com/products/sniffair", "card": {"archived": false, "artifact_type": "framework", "description": "A framework for wireless pentesting.", "domain": ["security", "penetration-testing", "networking"], "enriched": true, "function": ["security", "penetration-testing", "parser", "database"], "health_score": 20, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Tylous/SniffAir"], "name": "Tylous/SniffAir", "platform": ["python", "cli"], "pushed_at": "2020-10-14T04:00:27+00:00", "repo": "Tylous/SniffAir", "stars": 1240, "tags": ["wireless", "wifi", "pcap", "wireless-attacks", "kismet", "linux"], "topics": [], "urls": [], "use_cases": ["parse large pcap files from wireless captures", "analyze wifi traffic for security flaws", "run sophisticated wireless attacks", "query wireless capture data for pentest reports", "manage multiple wireless pcap datasets", "perform wireless penetration tests"], "what_it_is": "SniffAir is an open-source wireless security framework for parsing passively collected wireless traffic and launching wireless attacks. It stores pcap data in a SQL backend, supports custom queries for analysis, and includes attack modules for wireless penetration testing.", "when_to_avoid": ["you need actively maintained software (last release 2020, Python 2.7)", "you need Windows or macOS support", "you only need simple wifi scanning rather than pentest analysis", "you require Python 3 compatibility out of the box"], "when_to_choose": ["you need to analyze large or multiple wireless pcap files", "you want prebuilt and custom SQL queries over wireless capture data", "you need a framework combining wireless analysis with attack modules", "you work on Kali Linux doing wireless pentests"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sniffair", "repo": "Tylous/SniffAir", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:09:51.550771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5e6d800ce83fca7b4a9b83039a7119f1aca416892530bf6440cb819f8a347a3", "fetched_at": "2026-08-28T04:04:06.113934+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tylous/SniffAir"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:09:51.550771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5e6d800ce83fca7b4a9b83039a7119f1aca416892530bf6440cb819f8a347a3", "fetched_at": "2026-08-28T04:04:06.113934+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tylous/SniffAir"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:09:51.550771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5e6d800ce83fca7b4a9b83039a7119f1aca416892530bf6440cb819f8a347a3", "fetched_at": "2026-08-28T04:04:06.113934+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tylous/SniffAir"}], "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:04:06.113934+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:09:51.550771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5e6d800ce83fca7b4a9b83039a7119f1aca416892530bf6440cb819f8a347a3", "fetched_at": "2026-08-28T04:04:06.113934+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tylous/SniffAir"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:09:51.550771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5e6d800ce83fca7b4a9b83039a7119f1aca416892530bf6440cb819f8a347a3", "fetched_at": "2026-08-28T04:04:06.113934+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tylous/SniffAir"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:09:51.550771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5e6d800ce83fca7b4a9b83039a7119f1aca416892530bf6440cb819f8a347a3", "fetched_at": "2026-08-28T04:04:06.113934+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tylous/SniffAir"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.113934+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:09:51.550771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5e6d800ce83fca7b4a9b83039a7119f1aca416892530bf6440cb819f8a347a3", "fetched_at": "2026-08-28T04:04:06.113934+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tylous/SniffAir"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:09:51.550771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5e6d800ce83fca7b4a9b83039a7119f1aca416892530bf6440cb819f8a347a3", "fetched_at": "2026-08-28T04:04:06.113934+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tylous/SniffAir"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:09:51.550771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5e6d800ce83fca7b4a9b83039a7119f1aca416892530bf6440cb819f8a347a3", "fetched_at": "2026-08-28T04:04:06.113934+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tylous/SniffAir"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:09:51.550771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5e6d800ce83fca7b4a9b83039a7119f1aca416892530bf6440cb819f8a347a3", "fetched_at": "2026-08-28T04:04:06.113934+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tylous/SniffAir"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 3481, "days_push": 2149, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}