{"adoption": {"forks": 391, "observed_at": "2026-08-28T04:09:58.179954+00:00", "stars": 7313}, "canonical_url": "https://ross.abutalabs.com/products/pywhat", "card": {"archived": false, "artifact_type": "cli-tool", "description": "🐸   Identify anything. pyWhat easily lets you identify emails, IP addresses, and more. Feed it a .pcap file or some text and it'll tell you what it is! 🧙‍♀️", "domain": ["security", "penetration-testing", "osint", "developer-tools"], "enriched": true, "function": ["security", "parser", "search-engine", "developer-tools"], "health_score": 20, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["bee-san/pyWhat"], "name": "bee-san/pyWhat", "platform": ["python", "cli", "cross-platform", "windows"], "pushed_at": "2023-10-31T22:01:01+00:00", "repo": "bee-san/pyWhat", "stars": 7313, "tags": ["osint", "ctf", "malware-analysis", "pcap-analysis", "identifier", "regex-matching", "bug-bounty", "command-line", "macos", "linux"], "topics": ["cyber", "security", "hacking", "cybersecurity", "malware", "re", "python", "pcap", "malware-analysis", "malware-research", "tryhackme", "hacktoberfest"], "urls": [], "use_cases": ["identify what a mysterious string or hex blob is", "extract emails, URLs, and credit card numbers from a pcap file", "find leaked API keys and credentials in GitHub repositories", "analyze malware samples for hardcoded domains", "scan text for bug bounty findings like webhooks and keys", "identify hashes, cryptocurrency addresses, and identifiers in CTF challenges"], "what_it_is": "pyWhat is a Python CLI tool that identifies what arbitrary text, files, or pcap network captures contain - emails, IP addresses, API keys, cryptocurrency addresses, and more. It recursively scans input using a large library of regex signatures and reports what each match is.", "when_to_avoid": ["you need deep static or dynamic malware analysis rather than pattern identification", "you need a GUI-based forensic suite", "you need guaranteed-accurate detection rather than regex-based heuristics"], "when_to_choose": ["you need to quickly identify unknown strings, files, or network captures", "you want to extract sensitive data like keys and PII from text or pcaps", "you're doing CTF, OSINT, or malware triage work from the command line"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pywhat", "repo": "bee-san/pyWhat", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:38:40.444235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83ce12ea9af2b29408cf9af169e11ac645aabb12bd74402d44a292ec9cd2352d", "fetched_at": "2026-08-28T04:09:58.179954+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bee-san/pyWhat"}, {"content_hash": "0deb491cb91570f88dfd38a63fb0e8f5da74a74515de12d2d564e1e791098545", "fetched_at": "2026-08-29T08:34:01.840710+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pywhat/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:38:40.444235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83ce12ea9af2b29408cf9af169e11ac645aabb12bd74402d44a292ec9cd2352d", "fetched_at": "2026-08-28T04:09:58.179954+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bee-san/pyWhat"}, {"content_hash": "0deb491cb91570f88dfd38a63fb0e8f5da74a74515de12d2d564e1e791098545", "fetched_at": "2026-08-29T08:34:01.840710+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pywhat/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:38:40.444235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83ce12ea9af2b29408cf9af169e11ac645aabb12bd74402d44a292ec9cd2352d", "fetched_at": "2026-08-28T04:09:58.179954+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bee-san/pyWhat"}, {"content_hash": "0deb491cb91570f88dfd38a63fb0e8f5da74a74515de12d2d564e1e791098545", "fetched_at": "2026-08-29T08:34:01.840710+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pywhat/json"}], "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:58.179954+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:38:40.444235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83ce12ea9af2b29408cf9af169e11ac645aabb12bd74402d44a292ec9cd2352d", "fetched_at": "2026-08-28T04:09:58.179954+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bee-san/pyWhat"}, {"content_hash": "0deb491cb91570f88dfd38a63fb0e8f5da74a74515de12d2d564e1e791098545", "fetched_at": "2026-08-29T08:34:01.840710+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pywhat/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:38:40.444235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83ce12ea9af2b29408cf9af169e11ac645aabb12bd74402d44a292ec9cd2352d", "fetched_at": "2026-08-28T04:09:58.179954+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bee-san/pyWhat"}, {"content_hash": "0deb491cb91570f88dfd38a63fb0e8f5da74a74515de12d2d564e1e791098545", "fetched_at": "2026-08-29T08:34:01.840710+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pywhat/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:38:40.444235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83ce12ea9af2b29408cf9af169e11ac645aabb12bd74402d44a292ec9cd2352d", "fetched_at": "2026-08-28T04:09:58.179954+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bee-san/pyWhat"}, {"content_hash": "0deb491cb91570f88dfd38a63fb0e8f5da74a74515de12d2d564e1e791098545", "fetched_at": "2026-08-29T08:34:01.840710+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pywhat/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.179954+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:38:40.444235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83ce12ea9af2b29408cf9af169e11ac645aabb12bd74402d44a292ec9cd2352d", "fetched_at": "2026-08-28T04:09:58.179954+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bee-san/pyWhat"}, {"content_hash": "0deb491cb91570f88dfd38a63fb0e8f5da74a74515de12d2d564e1e791098545", "fetched_at": "2026-08-29T08:34:01.840710+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pywhat/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:38:40.444235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83ce12ea9af2b29408cf9af169e11ac645aabb12bd74402d44a292ec9cd2352d", "fetched_at": "2026-08-28T04:09:58.179954+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bee-san/pyWhat"}, {"content_hash": "0deb491cb91570f88dfd38a63fb0e8f5da74a74515de12d2d564e1e791098545", "fetched_at": "2026-08-29T08:34:01.840710+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pywhat/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:38:40.444235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83ce12ea9af2b29408cf9af169e11ac645aabb12bd74402d44a292ec9cd2352d", "fetched_at": "2026-08-28T04:09:58.179954+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bee-san/pyWhat"}, {"content_hash": "0deb491cb91570f88dfd38a63fb0e8f5da74a74515de12d2d564e1e791098545", "fetched_at": "2026-08-29T08:34:01.840710+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pywhat/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:38:40.444235+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83ce12ea9af2b29408cf9af169e11ac645aabb12bd74402d44a292ec9cd2352d", "fetched_at": "2026-08-28T04:09:58.179954+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bee-san/pyWhat"}, {"content_hash": "0deb491cb91570f88dfd38a63fb0e8f5da74a74515de12d2d564e1e791098545", "fetched_at": "2026-08-29T08:34:01.840710+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pywhat/json"}], "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": 1993, "days_push": 1037, "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}}