{"adoption": {"forks": 223, "observed_at": "2026-08-28T04:04:52.179149+00:00", "stars": 1488}, "canonical_url": "https://ross.abutalabs.com/products/sooty", "card": {"archived": false, "artifact_type": "cli-tool", "description": "The SOC Analysts all-in-one CLI tool to automate and speed up workflow.", "domain": ["security", "developer-tools"], "enriched": true, "function": ["security", "workflow-automation", "developer-tools", "cli"], "health_score": 20, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["TheresAFewConors/Sooty"], "name": "TheresAFewConors/Sooty", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2024-09-25T14:52:20+00:00", "repo": "TheresAFewConors/Sooty", "stars": 1488, "tags": ["soc-analyst", "threat-intelligence", "phishing-analysis", "reputation-check", "url-decoder", "incident-response", "dfir", "automation", "docker"], "topics": ["python", "soc", "security", "security-automation", "analysts", "automation", "reputation-check", "urlscan", "proofpoint-decoder", "phishing", "analysis", "dns", "workflow", "soc-analysts", "hash", "cybersecurity"], "urls": [], "use_cases": ["check IP reputation against VirusTotal and AbuseIPDB", "decode Proofpoint and Office SafeLink URLs", "analyze phishing emails for URLs and headers", "perform reverse DNS and WhoIs lookups", "check if an IP is a TOR exit node", "check email breaches on HaveIBeenPwned", "sanitize URLs before sharing in emails", "get file hashes and compare against VirusTotal"], "what_it_is": "Sooty is a Python CLI tool that automates routine tasks for SOC (Security Operations Center) analysts, such as URL sanitization, DNS and WhoIs lookups, IP reputation checks, and email header analysis. It consolidates many common triage checks into one tool to speed up analyst workflows.", "when_to_avoid": ["you need a full SOAR platform with case management and orchestration", "you want a GUI-based threat intelligence tool", "you need enterprise-scale automated incident response pipelines"], "when_to_choose": ["you are a SOC analyst doing repetitive triage tasks daily", "you want one CLI tool combining reputation checks, URL decoding, and email analysis", "you need quick DNS, WhoIs, and breach lookups from the terminal"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sooty", "repo": "TheresAFewConors/Sooty", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:33:43.564523+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bddeab2579ea880c6ca32c417cf32b58b48d472567bb9413ef4becd44f6860b9", "fetched_at": "2026-08-28T04:04:52.179149+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheresAFewConors/Sooty"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:33:43.564523+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bddeab2579ea880c6ca32c417cf32b58b48d472567bb9413ef4becd44f6860b9", "fetched_at": "2026-08-28T04:04:52.179149+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheresAFewConors/Sooty"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:33:43.564523+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bddeab2579ea880c6ca32c417cf32b58b48d472567bb9413ef4becd44f6860b9", "fetched_at": "2026-08-28T04:04:52.179149+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheresAFewConors/Sooty"}], "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:52.179149+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:33:43.564523+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bddeab2579ea880c6ca32c417cf32b58b48d472567bb9413ef4becd44f6860b9", "fetched_at": "2026-08-28T04:04:52.179149+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheresAFewConors/Sooty"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:33:43.564523+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bddeab2579ea880c6ca32c417cf32b58b48d472567bb9413ef4becd44f6860b9", "fetched_at": "2026-08-28T04:04:52.179149+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheresAFewConors/Sooty"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:33:43.564523+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bddeab2579ea880c6ca32c417cf32b58b48d472567bb9413ef4becd44f6860b9", "fetched_at": "2026-08-28T04:04:52.179149+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheresAFewConors/Sooty"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.179149+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:33:43.564523+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bddeab2579ea880c6ca32c417cf32b58b48d472567bb9413ef4becd44f6860b9", "fetched_at": "2026-08-28T04:04:52.179149+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheresAFewConors/Sooty"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:33:43.564523+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bddeab2579ea880c6ca32c417cf32b58b48d472567bb9413ef4becd44f6860b9", "fetched_at": "2026-08-28T04:04:52.179149+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheresAFewConors/Sooty"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:33:43.564523+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bddeab2579ea880c6ca32c417cf32b58b48d472567bb9413ef4becd44f6860b9", "fetched_at": "2026-08-28T04:04:52.179149+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheresAFewConors/Sooty"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:33:43.564523+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bddeab2579ea880c6ca32c417cf32b58b48d472567bb9413ef4becd44f6860b9", "fetched_at": "2026-08-28T04:04:52.179149+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheresAFewConors/Sooty"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2645, "days_push": 707, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}