{"adoption": {"forks": 716, "observed_at": "2026-08-28T04:08:48.632205+00:00", "stars": 4415}, "canonical_url": "https://ross.abutalabs.com/products/axiom", "card": {"archived": false, "artifact_type": "cli-tool", "description": "The dynamic infrastructure framework for everybody! Distribute the workload of many different scanning tools with ease, including nmap, ffuf, masscan, nuclei, meg and many more!", "domain": ["security", "penetration-testing", "cloud-computing"], "enriched": true, "function": ["security", "deployment", "infrastructure-as-code", "cli", "developer-tools"], "health_score": 20, "homepage": null, "language": "Shell", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["pry0cc/axiom"], "name": "pry0cc/axiom", "platform": ["cli", "cloud"], "pushed_at": "2024-09-30T17:18:52+00:00", "repo": "pry0cc/axiom", "stars": 4415, "tags": ["bug-bounty", "recon", "distributed-scanning", "offensive-security", "multi-cloud", "disposable-instances", "nmap", "nuclei", "ffuf", "masscan", "devops", "automation", "linux", "macos", "docker"], "topics": ["hacking-vps", "bug-bounty", "tmux", "axiom", "masscan", "gowitness", "massdns", "ffuf", "gau", "dnsx", "shuffledns", "nuclei", "subfinder", "nmap", "httpx", "httprobe", "dnsgen", "meg"], "urls": [], "use_cases": ["distribute an nmap scan across 100 cloud instances", "spin up disposable bug bounty recon VMs", "run distributed ffuf or masscan scans against large target lists", "deploy repeatable offensive security infrastructure on DigitalOcean or AWS", "screenshot thousands of subdomains with gowitness using a fleet", "quickly provision pentester toolboxes in the cloud"], "what_it_is": "Axiom is a dynamic infrastructure framework for spinning up disposable multi-cloud instances pre-loaded with security scanning tools like nmap, ffuf, masscan, and nuclei. It lets users distribute large scans across fleets of 100+ ephemeral VMs and tear them down when done.", "when_to_avoid": ["you only need to scan a small number of targets from a single machine", "you want an actively developed tool - the project is in maintenance mode and users are directed to the Ax Framework", "you lack cloud provider accounts or want to avoid cloud spend", "your use case is defensive monitoring rather than episodic scanning"], "when_to_choose": ["you need to scan huge target lists fast by parallelizing across many cloud VMs", "you do bug bounty or pentesting and want disposable pre-configured attack boxes", "you want repeatable, immutable security infrastructure across multiple cloud providers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/axiom", "repo": "pry0cc/axiom", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:01.600171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3fdb98af496aae1105d494f3150d5f4ef6da24128a5b66d793c7be04b8e5ea20", "fetched_at": "2026-08-28T04:08:48.632205+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pry0cc/axiom"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:01.600171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3fdb98af496aae1105d494f3150d5f4ef6da24128a5b66d793c7be04b8e5ea20", "fetched_at": "2026-08-28T04:08:48.632205+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pry0cc/axiom"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:01.600171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3fdb98af496aae1105d494f3150d5f4ef6da24128a5b66d793c7be04b8e5ea20", "fetched_at": "2026-08-28T04:08:48.632205+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pry0cc/axiom"}], "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:08:48.632205+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:01.600171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3fdb98af496aae1105d494f3150d5f4ef6da24128a5b66d793c7be04b8e5ea20", "fetched_at": "2026-08-28T04:08:48.632205+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pry0cc/axiom"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:01.600171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3fdb98af496aae1105d494f3150d5f4ef6da24128a5b66d793c7be04b8e5ea20", "fetched_at": "2026-08-28T04:08:48.632205+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pry0cc/axiom"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:01.600171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3fdb98af496aae1105d494f3150d5f4ef6da24128a5b66d793c7be04b8e5ea20", "fetched_at": "2026-08-28T04:08:48.632205+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pry0cc/axiom"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.632205+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:01.600171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3fdb98af496aae1105d494f3150d5f4ef6da24128a5b66d793c7be04b8e5ea20", "fetched_at": "2026-08-28T04:08:48.632205+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pry0cc/axiom"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:01.600171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3fdb98af496aae1105d494f3150d5f4ef6da24128a5b66d793c7be04b8e5ea20", "fetched_at": "2026-08-28T04:08:48.632205+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pry0cc/axiom"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:01.600171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3fdb98af496aae1105d494f3150d5f4ef6da24128a5b66d793c7be04b8e5ea20", "fetched_at": "2026-08-28T04:08:48.632205+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pry0cc/axiom"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:01.600171+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3fdb98af496aae1105d494f3150d5f4ef6da24128a5b66d793c7be04b8e5ea20", "fetched_at": "2026-08-28T04:08:48.632205+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pry0cc/axiom"}], "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": 2299, "days_push": 702, "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}}