mrkeyoor.com_
Sun 27 Sept 16:37 UTC
Automationevaluationupdated 26 Aug 2026

holehe review

Holehe is a command-line OSINT tool that checks whether an email address appears to be registered on many websites. It infers the answer from signup, login, and password-recovery responses, sometimes returning masked recovery details without intentionally sending a message to the address.

+54stars / 7d
Verdict

Our Holehe install took 36 seconds, used 42 MB, built in 9 seconds, and had no test target, so its clean setup says little about whether 120-plus live provider probes remain correct. Use it only for authorized, low-volume reconnaissance where every hit is corroborated manually. The September 2024 last code push and an open fix for Imgur false positives make unattended decisions a bad use of this repository.

We ran it

Lab card: what happened when we ran holeheScreenshot of holehe (github.com/megadose/holehe)
Install✓ · 36s48 packages · 42 MB
Build✓ · 9s
Testsn/ano test script
Known vulns0(pip-audit)
Repo162 files~8,196 lines of source · 0.4 MB · 1 CI workflows · Dockerfile

Answers from our run

Does holehe build from source?

Dependencies installed in 36 seconds (48 packages), and the build succeeded in 9 seconds. We cloned commit 14da70f into a clean Debian container with 3 CPUs and no project-specific setup.

Does holehe have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does holehe have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use holehe?

Anyone trying to identify, stalk, embarrass, or take over another person's accounts: the tool exposes sensitive association signals and the README limits it to educational use.

What are the alternatives to holehe?

Maigret, Sherlock, socialscan. Our Holehe install took 36 seconds, used 42 MB, built in 9 seconds, and had no test target, so its clean setup says little about whether 120-plus live provider probes remain correct.

Setup4/536-second install and 9-second build; Docker issue remains open
Docs3/5CLI and module format are clear; operational cautions are thin
Community3/514,259 stars and current PRs, but code has not moved since 2024
Maturity2/5No tests or release; provider behavior has drifted since last push

Who it’s for

Authorized investigators checking their own address or a case with a documented lawful basis.
Security teams validating exposure during an approved account-enumeration assessment.
Python users who can inspect and repair individual provider modules as websites change.
Analysts who will corroborate every result instead of treating a registration signal as identity proof.

Who it’s NOT for

Anyone trying to identify, stalk, embarrass, or take over another person's accounts: the tool exposes sensitive association signals and the README limits it to educational use.
Automated screening or accusation workflows: a positive result only suggests an address is registered and may be wrong when a provider changes or returns a captcha.
Users expecting stable coverage across 120-plus outside sites: the last code push was September 10, 2024, while current pull request #311 repairs an Imgur response that could mark every email registered.
Operators who need a maintained Docker quick start: issue #232 reports the documented image failing during its update check.
High-volume users planning to evade provider limits: the README's advice to change IP after rate limiting creates service-policy and abuse risk.

Setup reality

Our sandbox installed 48 Python packages in 36 seconds and used 42 MB. The build succeeded in 9 seconds, and pip-audit found 0 known vulnerabilities. There was no test script or target, so tests were skipped rather than treated as passing.

Basic CLI use needs an email address and outbound access to every queried provider; no central API credential is documented. Individual modules call public signup, login, or recovery flows, so captchas, rate limits, response changes, regional differences, and provider terms affect results. Use only addresses and investigations you are authorized to check.

The 0.4 MB checkout contained 162 files and about 8,196 source lines, with one CI workflow, a Dockerfile, and no tests directory in our scan. Provider modules are brittle by nature, while the master branch has not moved since 2024 despite 2026 issue and pull request activity.

Holehe turns account-recovery behavior into an OSINT signal

Holehe accepts an email address and queries signup, login, or password-recovery paths on outside services. A module interprets each response as registered, absent, or rate limited, and may return a masked recovery email or phone number. The README lists more than 120 providers. That breadth is useful during an authorized investigation because one command can find leads that would otherwise require many manual forms.

A result proves less than the interface suggests. A positive signal says a provider responded as if that address has an account. It does not prove who controls the address, whether the account is active, or whether the response parser understood a new captcha or error page. Shared addresses, recycled mailboxes, aliases, and provider changes all complicate attribution. Every hit needs a second source before it enters a report.

The 9-second build passed without a test target

We cloned commit 14da70f into a fresh unprivileged Debian container with 3 CPUs and 8 GB of RAM. Installing 48 Python packages took 36 seconds and occupied 42 MB. The build completed in 9 seconds. Pip-audit found 0 known vulnerabilities in the installed dependencies. These are reassuring packaging results for a small command-line application.

The checkout itself was 0.4 MB, with 162 files and about 8,196 source lines. Our scan found one CI workflow and a Dockerfile, but no tests directory. The repository exposed no test script or target, so the harness skipped tests. A passing package build confirms that an artifact can be produced; it does not verify any live site's response or the parsing logic in more than 120 modules.

What happened when we ran it

Our sandbox installed Holehe in 36 seconds and built it in 9 seconds. No dependency or compiler error appeared, and the installed 48-package environment used 42 MB. We did not submit an email address to providers, trigger password recovery, measure coverage, or test whether a target received a notification. Those actions would require a controlled identity and a separately defined authorization scope.

Tests were skipped because the repository supplied no test target. The 0-vulnerability pip-audit result covers known advisories in that resolved environment, not the correctness or policy safety of network probes. For this kind of tool, mocked response tests are especially important: an HTML or JSON change can turn a rate-limit page into a false registration result while the Python package still imports and builds normally.

Provider drift can convert an error into a false hit

Open pull request #311 explains a current Imgur failure mode. According to its author, captcha, unsuccessful, malformed, or missing-availability responses can cause the module to report every email as registered. The proposed change treats those responses as rate limited and adds mocked tests. Until that fix is merged and released, Imgur results from the master branch need manual rejection or a local patch.

Issue #174 reports seeing rate-limit status on a first run even when manual browser access worked. Different endpoints, headers, IP reputation, and automation detection can all produce such a difference, but the report does not isolate one cause. The correct response is to record the probe as inconclusive. Rotating an IP until the service answers may violate provider rules and can look like deliberate evasion.

The Docker instruction has an open runtime failure

The README provides a short Docker build and run sequence. Issue #232 says that path produced an exception on Windows Docker Desktop because the update check expected a response object with a JSON method. That report was opened in September 2025 and remained active in August 2026. A container image therefore needs a smoke test that runs the actual CLI, not only a successful image build.

Direct Python installation was cleaner in our 36-second run, yet packaging is the easy part. A responsible deployment needs low concurrency, clear logs, redaction of queried addresses, and a retention policy for results. CI should use mocked provider responses rather than repeatedly probing real account forms. Live canaries should use accounts the operator owns and should stop on captcha or rate-limit responses.

September 2024 code activity is the maintenance warning

GitHub recorded the last push to the default branch on September 10, 2024. The repository had 14,259 stars and 115 combined issues and pull requests when fetched on August 26, 2026. New issues and contributions were still arriving, including the August 2026 Imgur fix, but the two-year gap in default-branch commits shows that contributor activity has not become merged maintenance. There is also no latest GitHub release.

That history matters more here than it would for a parser over a stable file format. Holehe depends on outside forms that can change without notice. Maigret and Sherlock are better fits for username searches, while socialscan offers a narrower email and username scope. Holehe remains useful as inspectable reconnaissance code, provided the operator validates selected modules, records uncertainty, and never turns its output into an accusation or automated eligibility decision.

Alternatives

ProjectWhat it isPick it when
Maigret gh↗An OSINT username checker with report generation across many sites.pick this instead when the starting identifier is a username and you need profile evidence rather than email-registration probes.
Sherlock gh↗A widely used command-line tool for finding a username across social networks.pick this instead when a simple username-presence search is sufficient and password-recovery endpoints should remain untouched.
socialscanA Python tool for checking email and username availability on a smaller set of popular services.pick this instead when narrower coverage with explicit username and email checks better fits the investigation.

What people are saying

  1. [github-trending] megadose/holehe

Sources

  1. Holehe README
  2. Holehe repository facts
  3. Imgur false-positive pull request #311
  4. Docker runtime issue #232
  5. Rate-limit issue #174

More automation reviews

runner-images · agent-fleet-manager · kargo · Rose · alchemy · laya · the whole board →