{"adoption": {"forks": 497, "observed_at": "2026-08-28T04:06:33.580981+00:00", "stars": 2278}, "canonical_url": "https://ross.abutalabs.com/products/fruitywifi", "card": {"archived": false, "artifact_type": "application", "description": "FruityWiFi is a wireless network auditing tool. The application can be installed in any Debian based system (Jessie) adding the extra packages. Tested in Debian, Kali Linux, Kali Linux ARM (Raspberry Pi), Raspbian (Raspberry Pi), Pwnpi (Raspberry Pi), Bugtraq, NetHunter.", "domain": ["security", "penetration-testing", "networking", "self-hosted"], "enriched": true, "function": ["security", "networking", "http-server", "plugin-system", "cli"], "health_score": 20, "homepage": "http://www.fruitywifi.com", "language": "PHP", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["xtr4nge/FruityWifi"], "name": "xtr4nge/FruityWifi", "platform": ["self-hosted", "python", "php"], "pushed_at": "2021-12-18T12:42:22+00:00", "repo": "xtr4nge/FruityWifi", "stars": 2278, "tags": ["wireless-auditing", "wifi-security", "raspberry-pi", "kali-linux", "penetration-testing", "access-point", "modular", "linux", "web-server"], "topics": [], "urls": [], "use_cases": ["audit wireless networks for vulnerabilities", "set up a rogue access point for penetration testing", "run wifi attacks from a Raspberry Pi", "perform DNS spoofing and SSL stripping attacks", "deploy a captive portal during a pentest", "manage wireless attack modules from a web interface"], "what_it_is": "FruityWiFi is an open-source wireless network auditing tool with a web-based control panel for deploying advanced WiFi attacks. It is modular, runs on Debian-based systems including Raspberry Pi and Kali Linux, and supports modules like DNSspoof, Kismet, nmap, SSLstrip, and captive portals.", "when_to_avoid": ["you need actively maintained tooling with Python 3 support for all modules", "you want a non-Debian platform like Windows or macOS", "you need a general-purpose network monitor rather than an attack framework"], "when_to_choose": ["you need a web-based tool to orchestrate wireless attacks on Debian or Kali", "you want a portable WiFi auditing rig on a Raspberry Pi", "you prefer a modular pentest platform with installable attack modules"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fruitywifi", "repo": "xtr4nge/FruityWifi", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:41:25.638372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd7bed38afcc8d75ad2e895824d0cb7f602076b946627a6ff3efdece4e31934d", "fetched_at": "2026-08-28T04:06:33.580981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xtr4nge/FruityWifi"}, {"content_hash": "30c530860aed4e5d7c8ed66d58f4516a0d6a80a7241c4db32d3ef7cd85a05a31", "fetched_at": "2026-08-29T10:21:48.529406+00:00", "kind": "homepage", "missing": false, "url": "http://www.fruitywifi.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:41:25.638372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd7bed38afcc8d75ad2e895824d0cb7f602076b946627a6ff3efdece4e31934d", "fetched_at": "2026-08-28T04:06:33.580981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xtr4nge/FruityWifi"}, {"content_hash": "30c530860aed4e5d7c8ed66d58f4516a0d6a80a7241c4db32d3ef7cd85a05a31", "fetched_at": "2026-08-29T10:21:48.529406+00:00", "kind": "homepage", "missing": false, "url": "http://www.fruitywifi.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:41:25.638372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd7bed38afcc8d75ad2e895824d0cb7f602076b946627a6ff3efdece4e31934d", "fetched_at": "2026-08-28T04:06:33.580981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xtr4nge/FruityWifi"}, {"content_hash": "30c530860aed4e5d7c8ed66d58f4516a0d6a80a7241c4db32d3ef7cd85a05a31", "fetched_at": "2026-08-29T10:21:48.529406+00:00", "kind": "homepage", "missing": false, "url": "http://www.fruitywifi.com"}], "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:06:33.580981+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:41:25.638372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd7bed38afcc8d75ad2e895824d0cb7f602076b946627a6ff3efdece4e31934d", "fetched_at": "2026-08-28T04:06:33.580981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xtr4nge/FruityWifi"}, {"content_hash": "30c530860aed4e5d7c8ed66d58f4516a0d6a80a7241c4db32d3ef7cd85a05a31", "fetched_at": "2026-08-29T10:21:48.529406+00:00", "kind": "homepage", "missing": false, "url": "http://www.fruitywifi.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:41:25.638372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd7bed38afcc8d75ad2e895824d0cb7f602076b946627a6ff3efdece4e31934d", "fetched_at": "2026-08-28T04:06:33.580981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xtr4nge/FruityWifi"}, {"content_hash": "30c530860aed4e5d7c8ed66d58f4516a0d6a80a7241c4db32d3ef7cd85a05a31", "fetched_at": "2026-08-29T10:21:48.529406+00:00", "kind": "homepage", "missing": false, "url": "http://www.fruitywifi.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:41:25.638372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd7bed38afcc8d75ad2e895824d0cb7f602076b946627a6ff3efdece4e31934d", "fetched_at": "2026-08-28T04:06:33.580981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xtr4nge/FruityWifi"}, {"content_hash": "30c530860aed4e5d7c8ed66d58f4516a0d6a80a7241c4db32d3ef7cd85a05a31", "fetched_at": "2026-08-29T10:21:48.529406+00:00", "kind": "homepage", "missing": false, "url": "http://www.fruitywifi.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.580981+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:41:25.638372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd7bed38afcc8d75ad2e895824d0cb7f602076b946627a6ff3efdece4e31934d", "fetched_at": "2026-08-28T04:06:33.580981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xtr4nge/FruityWifi"}, {"content_hash": "30c530860aed4e5d7c8ed66d58f4516a0d6a80a7241c4db32d3ef7cd85a05a31", "fetched_at": "2026-08-29T10:21:48.529406+00:00", "kind": "homepage", "missing": false, "url": "http://www.fruitywifi.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:41:25.638372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd7bed38afcc8d75ad2e895824d0cb7f602076b946627a6ff3efdece4e31934d", "fetched_at": "2026-08-28T04:06:33.580981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xtr4nge/FruityWifi"}, {"content_hash": "30c530860aed4e5d7c8ed66d58f4516a0d6a80a7241c4db32d3ef7cd85a05a31", "fetched_at": "2026-08-29T10:21:48.529406+00:00", "kind": "homepage", "missing": false, "url": "http://www.fruitywifi.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:41:25.638372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd7bed38afcc8d75ad2e895824d0cb7f602076b946627a6ff3efdece4e31934d", "fetched_at": "2026-08-28T04:06:33.580981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xtr4nge/FruityWifi"}, {"content_hash": "30c530860aed4e5d7c8ed66d58f4516a0d6a80a7241c4db32d3ef7cd85a05a31", "fetched_at": "2026-08-29T10:21:48.529406+00:00", "kind": "homepage", "missing": false, "url": "http://www.fruitywifi.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:41:25.638372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd7bed38afcc8d75ad2e895824d0cb7f602076b946627a6ff3efdece4e31934d", "fetched_at": "2026-08-28T04:06:33.580981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xtr4nge/FruityWifi"}, {"content_hash": "30c530860aed4e5d7c8ed66d58f4516a0d6a80a7241c4db32d3ef7cd85a05a31", "fetched_at": "2026-08-29T10:21:48.529406+00:00", "kind": "homepage", "missing": false, "url": "http://www.fruitywifi.com"}], "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": 4707, "days_push": 1719, "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}}