{"adoption": {"forks": 366, "observed_at": "2026-08-28T04:09:41.022906+00:00", "stars": 6252}, "canonical_url": "https://ross.abutalabs.com/products/bjorn", "card": {"archived": false, "artifact_type": "application", "description": "Bjorn is a powerful network scanning and offensive security tool for the Raspberry Pi with a 2.13-inch e-Paper HAT. It discovers network targets, identifies open ports, exposed services, and potential vulnerabilities. Bjorn can perform brute force attacks, file stealing, host zombification, and supports custom attack scripts.", "domain": ["security", "penetration-testing", "networking", "iot", "hardware"], "enriched": true, "function": ["penetration-testing", "vulnerability-scanning", "security", "networking", "monitoring"], "health_score": 92, "homepage": "https://infinition.github.io/Bjorn/", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["infinition/Bjorn"], "name": "infinition/Bjorn", "platform": ["python", "embedded", "iot", "self-hosted"], "pushed_at": "2026-07-20T13:09:12+00:00", "repo": "infinition/Bjorn", "stars": 6252, "tags": ["raspberry-pi", "e-paper-display", "nmap", "brute-force", "network-scanning", "offensive-security", "tamagotchi", "pentesting", "hardware-hacking", "linux"], "topics": ["automated-pentesting", "bruteforce", "cybersecurity", "e-paper", "hacking", "hardware-hacking", "network-scanning", "network-security", "nmap", "offensive-security", "pentesting", "python", "raspberry-pi", "security-tools", "tamagotchi", "vulnerability-assessment"], "urls": [], "use_cases": ["scan my home network for open ports and live hosts", "run an automated pentesting device on a raspberry pi", "brute force ssh and ftp credentials on my lan", "assess vulnerabilities of services on my network", "build a portable hacking gadget with an e-paper display", "monitor network security continuously from a small device", "steal files from vulnerable services during a pentest"], "what_it_is": "Bjorn is an autonomous network scanning and offensive security tool that runs on a Raspberry Pi with a 2.13-inch e-Paper HAT. It discovers hosts and open ports, performs vulnerability assessment with Nmap, executes brute-force attacks and file exfiltration, and displays its status via the e-Paper screen and a web interface.", "when_to_avoid": ["you need a professional, enterprise-grade vulnerability scanner with reporting and compliance features", "you cannot or do not want to use dedicated Raspberry Pi hardware with an e-Paper HAT", "you need a passive defensive monitoring tool rather than active offensive testing"], "when_to_choose": ["you want a self-contained, autonomous pentesting appliance on a Raspberry Pi", "you want a fun Tamagotchi-style device with a physical e-Paper display for security monitoring", "you need modular, scriptable network attacks (scanning, brute force, exfiltration) in one tool"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bjorn", "repo": "infinition/Bjorn", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:46:36.486875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a247956238457b249439635ddf6b316f9ae8fc2029a5c8c3c02166942ee9f167", "fetched_at": "2026-08-28T04:09:41.022906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/infinition/Bjorn"}, {"content_hash": "631216158fe5fbdc95099a56642d3303a9e18b0fc01be0d6598e064a3c341aff", "fetched_at": "2026-08-29T08:43:17.919581+00:00", "kind": "homepage", "missing": false, "url": "https://infinition.github.io/Bjorn/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:46:36.486875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a247956238457b249439635ddf6b316f9ae8fc2029a5c8c3c02166942ee9f167", "fetched_at": "2026-08-28T04:09:41.022906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/infinition/Bjorn"}, {"content_hash": "631216158fe5fbdc95099a56642d3303a9e18b0fc01be0d6598e064a3c341aff", "fetched_at": "2026-08-29T08:43:17.919581+00:00", "kind": "homepage", "missing": false, "url": "https://infinition.github.io/Bjorn/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:46:36.486875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a247956238457b249439635ddf6b316f9ae8fc2029a5c8c3c02166942ee9f167", "fetched_at": "2026-08-28T04:09:41.022906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/infinition/Bjorn"}, {"content_hash": "631216158fe5fbdc95099a56642d3303a9e18b0fc01be0d6598e064a3c341aff", "fetched_at": "2026-08-29T08:43:17.919581+00:00", "kind": "homepage", "missing": false, "url": "https://infinition.github.io/Bjorn/"}], "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:09:41.022906+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:46:36.486875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a247956238457b249439635ddf6b316f9ae8fc2029a5c8c3c02166942ee9f167", "fetched_at": "2026-08-28T04:09:41.022906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/infinition/Bjorn"}, {"content_hash": "631216158fe5fbdc95099a56642d3303a9e18b0fc01be0d6598e064a3c341aff", "fetched_at": "2026-08-29T08:43:17.919581+00:00", "kind": "homepage", "missing": false, "url": "https://infinition.github.io/Bjorn/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:46:36.486875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a247956238457b249439635ddf6b316f9ae8fc2029a5c8c3c02166942ee9f167", "fetched_at": "2026-08-28T04:09:41.022906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/infinition/Bjorn"}, {"content_hash": "631216158fe5fbdc95099a56642d3303a9e18b0fc01be0d6598e064a3c341aff", "fetched_at": "2026-08-29T08:43:17.919581+00:00", "kind": "homepage", "missing": false, "url": "https://infinition.github.io/Bjorn/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:46:36.486875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a247956238457b249439635ddf6b316f9ae8fc2029a5c8c3c02166942ee9f167", "fetched_at": "2026-08-28T04:09:41.022906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/infinition/Bjorn"}, {"content_hash": "631216158fe5fbdc95099a56642d3303a9e18b0fc01be0d6598e064a3c341aff", "fetched_at": "2026-08-29T08:43:17.919581+00:00", "kind": "homepage", "missing": false, "url": "https://infinition.github.io/Bjorn/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:41.022906+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:46:36.486875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a247956238457b249439635ddf6b316f9ae8fc2029a5c8c3c02166942ee9f167", "fetched_at": "2026-08-28T04:09:41.022906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/infinition/Bjorn"}, {"content_hash": "631216158fe5fbdc95099a56642d3303a9e18b0fc01be0d6598e064a3c341aff", "fetched_at": "2026-08-29T08:43:17.919581+00:00", "kind": "homepage", "missing": false, "url": "https://infinition.github.io/Bjorn/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:46:36.486875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a247956238457b249439635ddf6b316f9ae8fc2029a5c8c3c02166942ee9f167", "fetched_at": "2026-08-28T04:09:41.022906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/infinition/Bjorn"}, {"content_hash": "631216158fe5fbdc95099a56642d3303a9e18b0fc01be0d6598e064a3c341aff", "fetched_at": "2026-08-29T08:43:17.919581+00:00", "kind": "homepage", "missing": false, "url": "https://infinition.github.io/Bjorn/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:46:36.486875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a247956238457b249439635ddf6b316f9ae8fc2029a5c8c3c02166942ee9f167", "fetched_at": "2026-08-28T04:09:41.022906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/infinition/Bjorn"}, {"content_hash": "631216158fe5fbdc95099a56642d3303a9e18b0fc01be0d6598e064a3c341aff", "fetched_at": "2026-08-29T08:43:17.919581+00:00", "kind": "homepage", "missing": false, "url": "https://infinition.github.io/Bjorn/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:46:36.486875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a247956238457b249439635ddf6b316f9ae8fc2029a5c8c3c02166942ee9f167", "fetched_at": "2026-08-28T04:09:41.022906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/infinition/Bjorn"}, {"content_hash": "631216158fe5fbdc95099a56642d3303a9e18b0fc01be0d6598e064a3c341aff", "fetched_at": "2026-08-29T08:43:17.919581+00:00", "kind": "homepage", "missing": false, "url": "https://infinition.github.io/Bjorn/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 58, "rhythm": 27}, "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": 822, "days_push": 44, "days_rel": 274, "gap_med": null, "n_releases_24m": 1}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}