{"adoption": {"forks": 1832, "observed_at": "2026-08-28T04:11:06.626043+00:00", "stars": 14278}, "canonical_url": "https://ross.abutalabs.com/products/holehe", "card": {"archived": false, "artifact_type": "cli-tool", "description": "holehe allows you to check if the mail is used on different sites like twitter, instagram and will retrieve information on sites with the forgotten password function.", "domain": ["osint", "security", "privacy", "developer-tools"], "enriched": true, "function": ["osint", "web-scraping", "http-client", "cli"], "health_score": 20, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["megadose/holehe"], "name": "megadose/holehe", "platform": ["python", "cli", "windows"], "pushed_at": "2024-09-10T20:24:32+00:00", "repo": "megadose/holehe", "stars": 14278, "tags": ["email-enumeration", "account-discovery", "password-reset-abuse", "osint-tools", "async-python", "trio", "maltego-transform", "linux", "macos", "docker"], "topics": ["information-gathering", "osint", "osint-tools", "open-source-intelligence", "python", "email", "social-network", "instagram", "twitter", "trio", "ebay", "emails", "osint-python", "pypi", "tellonym"], "urls": [], "use_cases": ["check if an email is registered on twitter or instagram", "find accounts linked to an email address", "osint email enumeration during an investigation", "retrieve partial recovery phone numbers from an email", "integrate email-to-account lookup into a python tool", "run email reconnaissance from the command line"], "what_it_is": "Holehe is an OSINT tool that checks whether an email address is registered on 120+ sites (Twitter, Instagram, Snapchat, etc.) by abusing the forgot-password function, without alerting the target. It runs as a CLI or as an embeddable async Python library and can return partially obfuscated recovery emails and phone numbers.", "when_to_avoid": ["you need authorized security testing of your own systems rather than third-party account discovery", "you require guaranteed accuracy - rate limits and site changes can cause false results", "your use case may violate the terms of service or privacy laws of the targeted sites"], "when_to_choose": ["you need to map an email address to registered accounts across many services", "you want a scriptable Python API or CLI for email OSINT", "you need results without triggering notification emails to the target"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/holehe", "repo": "megadose/holehe", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:12:40.930742+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "56b8d70ba01b818fbbf09654dfa89916f5e9642b085e428f71cf1f7cab0b3954", "fetched_at": "2026-08-28T04:11:06.626043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/megadose/holehe"}, {"content_hash": "1e209ef57311d8ccedff5218cb6f27ab9fe0101bf7d722e61060b4cac317c1a8", "fetched_at": "2026-08-29T08:06:15.783703+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/holehe/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:12:40.930742+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "56b8d70ba01b818fbbf09654dfa89916f5e9642b085e428f71cf1f7cab0b3954", "fetched_at": "2026-08-28T04:11:06.626043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/megadose/holehe"}, {"content_hash": "1e209ef57311d8ccedff5218cb6f27ab9fe0101bf7d722e61060b4cac317c1a8", "fetched_at": "2026-08-29T08:06:15.783703+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/holehe/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:12:40.930742+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "56b8d70ba01b818fbbf09654dfa89916f5e9642b085e428f71cf1f7cab0b3954", "fetched_at": "2026-08-28T04:11:06.626043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/megadose/holehe"}, {"content_hash": "1e209ef57311d8ccedff5218cb6f27ab9fe0101bf7d722e61060b4cac317c1a8", "fetched_at": "2026-08-29T08:06:15.783703+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/holehe/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:11:06.626043+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:12:40.930742+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "56b8d70ba01b818fbbf09654dfa89916f5e9642b085e428f71cf1f7cab0b3954", "fetched_at": "2026-08-28T04:11:06.626043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/megadose/holehe"}, {"content_hash": "1e209ef57311d8ccedff5218cb6f27ab9fe0101bf7d722e61060b4cac317c1a8", "fetched_at": "2026-08-29T08:06:15.783703+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/holehe/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:12:40.930742+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "56b8d70ba01b818fbbf09654dfa89916f5e9642b085e428f71cf1f7cab0b3954", "fetched_at": "2026-08-28T04:11:06.626043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/megadose/holehe"}, {"content_hash": "1e209ef57311d8ccedff5218cb6f27ab9fe0101bf7d722e61060b4cac317c1a8", "fetched_at": "2026-08-29T08:06:15.783703+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/holehe/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:12:40.930742+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "56b8d70ba01b818fbbf09654dfa89916f5e9642b085e428f71cf1f7cab0b3954", "fetched_at": "2026-08-28T04:11:06.626043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/megadose/holehe"}, {"content_hash": "1e209ef57311d8ccedff5218cb6f27ab9fe0101bf7d722e61060b4cac317c1a8", "fetched_at": "2026-08-29T08:06:15.783703+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/holehe/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.626043+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:12:40.930742+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "56b8d70ba01b818fbbf09654dfa89916f5e9642b085e428f71cf1f7cab0b3954", "fetched_at": "2026-08-28T04:11:06.626043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/megadose/holehe"}, {"content_hash": "1e209ef57311d8ccedff5218cb6f27ab9fe0101bf7d722e61060b4cac317c1a8", "fetched_at": "2026-08-29T08:06:15.783703+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/holehe/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:12:40.930742+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "56b8d70ba01b818fbbf09654dfa89916f5e9642b085e428f71cf1f7cab0b3954", "fetched_at": "2026-08-28T04:11:06.626043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/megadose/holehe"}, {"content_hash": "1e209ef57311d8ccedff5218cb6f27ab9fe0101bf7d722e61060b4cac317c1a8", "fetched_at": "2026-08-29T08:06:15.783703+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/holehe/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:12:40.930742+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "56b8d70ba01b818fbbf09654dfa89916f5e9642b085e428f71cf1f7cab0b3954", "fetched_at": "2026-08-28T04:11:06.626043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/megadose/holehe"}, {"content_hash": "1e209ef57311d8ccedff5218cb6f27ab9fe0101bf7d722e61060b4cac317c1a8", "fetched_at": "2026-08-29T08:06:15.783703+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/holehe/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:12:40.930742+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "56b8d70ba01b818fbbf09654dfa89916f5e9642b085e428f71cf1f7cab0b3954", "fetched_at": "2026-08-28T04:11:06.626043+00:00", "kind": "readme", "missing": false, "url": "https://github.com/megadose/holehe"}, {"content_hash": "1e209ef57311d8ccedff5218cb6f27ab9fe0101bf7d722e61060b4cac317c1a8", "fetched_at": "2026-08-29T08:06:15.783703+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/holehe/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2260, "days_push": 722, "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}}