{"adoption": {"forks": 924, "observed_at": "2026-08-28T04:10:23.783155+00:00", "stars": 8606}, "canonical_url": "https://ross.abutalabs.com/products/tsunami-security-scanner", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Tsunami is a general purpose network security scanner with an extensible plugin system for detecting high severity vulnerabilities with high confidence.", "domain": ["security", "penetration-testing", "developer-tools"], "enriched": true, "function": ["security", "vulnerability-scanning", "plugin-system", "networking"], "health_score": 90, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["google/tsunami-security-scanner", "google/tsunami-security-scanner-plugins"], "name": "Tsunami Security Scanner", "platform": ["windows", "jvm", "cli"], "pushed_at": "2026-06-23T16:05:00+00:00", "repo": "google/tsunami-security-scanner", "stars": 8606, "tags": ["vulnerability-detection", "network-scanner", "java", "extensible-plugins", "google", "linux", "macos", "docker"], "topics": [], "urls": [], "use_cases": ["scan my network for high severity vulnerabilities", "detect vulnerable services on my infrastructure", "find exposed services with known CVEs", "run a plugin-based security scanner on my servers", "audit internal network for misconfigured services"], "what_it_is": "Tsunami is a general-purpose network security scanner from Google that detects high-severity vulnerabilities with high confidence. It relies on an extensible plugin system, with publicly available plugins hosted in a companion repository.", "when_to_avoid": ["you need a full penetration testing or exploitation framework", "you want a lightweight point-and-click desktop scanner", "you need web application DAST with crawling and fuzzing out of the box"], "when_to_choose": ["you need high-confidence detection of high-severity vulnerabilities rather than noisy broad scans", "you want an extensible scanner you can add custom detection plugins to", "you are scanning large internal or cloud networks for known vulnerable services"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/google/tsunami-security-scanner", "repo": "google/tsunami-security-scanner", "role": "main", "score": 74}, {"path": "/repos/google/tsunami-security-scanner-plugins", "repo": "google/tsunami-security-scanner-plugins", "role": "plugin", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:26:07.786542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe8c8c4765e6ce02952d28af31684965abb1d95f3606bc9e0ce4a340d03baee0", "fetched_at": "2026-08-28T04:10:23.783155+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tsunami-security-scanner"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:26:07.786542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe8c8c4765e6ce02952d28af31684965abb1d95f3606bc9e0ce4a340d03baee0", "fetched_at": "2026-08-28T04:10:23.783155+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tsunami-security-scanner"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:26:07.786542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe8c8c4765e6ce02952d28af31684965abb1d95f3606bc9e0ce4a340d03baee0", "fetched_at": "2026-08-28T04:10:23.783155+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tsunami-security-scanner"}], "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:10:23.783155+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:26:07.786542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe8c8c4765e6ce02952d28af31684965abb1d95f3606bc9e0ce4a340d03baee0", "fetched_at": "2026-08-28T04:10:23.783155+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tsunami-security-scanner"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:26:07.786542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe8c8c4765e6ce02952d28af31684965abb1d95f3606bc9e0ce4a340d03baee0", "fetched_at": "2026-08-28T04:10:23.783155+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tsunami-security-scanner"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:26:07.786542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe8c8c4765e6ce02952d28af31684965abb1d95f3606bc9e0ce4a340d03baee0", "fetched_at": "2026-08-28T04:10:23.783155+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tsunami-security-scanner"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:23.783155+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:26:07.786542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe8c8c4765e6ce02952d28af31684965abb1d95f3606bc9e0ce4a340d03baee0", "fetched_at": "2026-08-28T04:10:23.783155+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tsunami-security-scanner"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:26:07.786542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe8c8c4765e6ce02952d28af31684965abb1d95f3606bc9e0ce4a340d03baee0", "fetched_at": "2026-08-28T04:10:23.783155+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tsunami-security-scanner"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:26:07.786542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe8c8c4765e6ce02952d28af31684965abb1d95f3606bc9e0ce4a340d03baee0", "fetched_at": "2026-08-28T04:10:23.783155+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tsunami-security-scanner"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:26:07.786542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe8c8c4765e6ce02952d28af31684965abb1d95f3606bc9e0ce4a340d03baee0", "fetched_at": "2026-08-28T04:10:23.783155+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tsunami-security-scanner"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 89, "longevity": 100, "rhythm": 39}, "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": 2282, "days_push": 71, "days_rel": 195, "gap_med": null, "n_releases_24m": 1}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}