mrkeyoor.com_
Sat 26 Sept 18:48 UTC
Dataevaluationupdated 27 Aug 2026

sherlock review

Sherlock is a command-line OSINT tool that checks one or more usernames across more than 400 social networks. It helps investigators find possible public account pages, then leaves identity confirmation to the person doing the research.

+453stars / 7d
Verdict

Our Sherlock run installed 46 packages and built in 9 seconds, but only 22 of 25 pytest cases passed cleanly. It is a fast first-pass account finder for investigators who understand that WAFs, site changes, and handle reuse create bad matches. Use its exclusions and verify profiles manually; do not turn a green line in the terminal into an identity claim.

We ran it

Lab card: what happened when we ran sherlockScreenshot of sherlock (sherlockproject.xyz)
Install✓ · 103s46 packages · 148 MB
Build✓ · 9s
Tests✗ · 20s22 passed · 1 failed · 2 errors of 25 (pytest)
Known vulns0(pip-audit)
Repo55 files~2,210 lines of source · 1.3 MB · 4 CI workflows · Dockerfile · tests dir

Answers from our run

Does sherlock build from source?

Dependencies installed in 103 seconds (46 packages), and the build succeeded in 9 seconds. We cloned commit 9100f9d into a clean Debian container with 3 CPUs and no project-specific setup.

Do sherlock's tests pass?

Not all of them: 22 of 25 passed and 1 failed when we ran the project's own test command (pytest), with 2 collection errors. Some failures need services or credentials a bare container does not have.

Does sherlock have known vulnerabilities in its dependencies?

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

Who should not use sherlock?

Anyone treating a matching username as proof of identity: open false-positive reports name several major sites, and unrelated people often reuse handles.

What are the alternatives to sherlock?

Maigret, WhatsMyName, Social Analyzer. Our Sherlock run installed 46 packages and built in 9 seconds, but only 22 of 25 pytest cases passed cleanly.

Setup4/5Several install paths; our 103-second install succeeded
Docs4/5Clear CLI and package warnings, with deeper docs on the site
Community5/590,372 stars and current false-positive issue activity
Maturity3/5v0.16.0 filters noise, but live-target tests remain fragile

Discussed on

  1. hnSherlock: Hunt down social media accounts by username across 400 social networks266 points
  2. hnSherlock: Find usernames across social networks172 points
  3. hnEnola: Hunt down social media accounts by username41 points
  4. hnSherlock Project Username Finder Review, Deep Dive, and Improvements4 points
  5. hnSherlock: Hunt down social media accounts by username across social networks3 points

Who it’s for

Investigators checking a known username across many public sites.
Security teams mapping an organization's exposed account names with permission.
Journalists and researchers who will manually verify every useful match.
Python users who want text, CSV, XLSX, or JSON-oriented workflows and proxy support.

Who it’s NOT for

Anyone treating a matching username as proof of identity: open false-positive reports name several major sites, and unrelated people often reuse handles.
Investigations that require every site to answer reliably from one region: the v0.16.0 notes cite regional differences, while our live-target test received a WAF result.
Users who plan to enable --ignore-exclusions without manual review: the help text warns that doing so may return more false positives.
Ubuntu 24.04 or ParrotOS users relying on distribution packages: the README says those third-party packages appear broken.
Teams needing a green upstream suite: our run had 1 failed test and 2 collection or setup errors out of 25.

Setup reality

Our sandbox installed Sherlock in 103 seconds, adding 46 packages and using 148 MB. The build passed in 9 seconds. Tests failed after 20 seconds: pytest reported 22 passed, 1 failed, and 2 collection or setup errors out of 25. Pip-audit found 0 known vulnerabilities.

The official paths are pipx, pip or uv, Docker, and dnf. Normal username checks need no account credentials, though target sites, proxies, and regional network behavior affect results. Output can be written as text, CSV, XLSX, or JSON.

The failing live probe expected a claimed AllMyLinks profile and received a WAF status. Collection also errored in the manifest and target-validation files. The README warns that ParrotOS and Ubuntu 24.04 third-party packages appear broken and recommends Python packaging tools or Docker instead.

More than 400 sites produce leads, not identity proof

Sherlock takes a username and requests possible profile URLs across more than 400 social networks. One command can search several names, limit checks to chosen sites, route requests through a proxy, and save results in text, CSV, XLSX, or JSON-oriented output. That makes it useful for the first pass of an OSINT investigation, when the immediate question is where a handle appears on the public web.

A result means the site's configured test looked like a claimed account. It does not prove that the page belongs to the subject. Handles are reused, pages change, and sites return different content by region or bot policy. Sherlock's own release notes discuss false-positive reduction rather than elimination. A competent workflow opens the profile, compares biographical details and linked accounts, and records uncertainty. The CLI saves time finding candidates; it does not perform attribution.

Version 0.16.0 filters noisy sites unless you override it

The September 16, 2025 release added automatic filtering for sites prone to false positives. Upstream tests maintain an exclusion list, and the command normally respects it. The --ignore-exclusions option exists for researchers who want a wider net, while its help text warns that more false positives may appear. That tradeoff is honest and should remain visible in any wrapper built around Sherlock.

Open issue 3074, updated on August 26, 2026, reports recurring false positives for Tweakers, Chess, Instagram, and YouTube. Another open request explains why sites that load profile state through later Fetch or XHR calls can defeat raw HTML checks. These reports fit the nature of the tool: every target is an external dependency with its own redirects, WAF, rendering, error pages, and anti-automation rules. Site definitions need continuing maintenance.

What happened when we ran it

Our sandbox installed commit 9100f9d in 103 seconds. The run added 46 Python packages and used 148 MB on disk. Its build completed in 9 seconds. Pip-audit found 0 known vulnerabilities in the installed environment. The checkout was small, with 55 files, about 2,210 source lines, and 1.3 MB before dependencies.

Pytest ran for 20 seconds and exited 1. It reported 22 passed, 1 failed, and 2 collection or setup errors out of 25. The failed live-target case expected the known AllMyLinks username blue to return CLAIMED, while Sherlock classified the response as WAF. The log does not say why that target returned a WAF status, so regional blocking, target changes, and network policy remain possibilities rather than findings.

The two errors occurred while collecting or setting up tests/test_manifest.py and tests/test_validate_targets.py. The supplied tail contains no fuller error text for those files. We therefore cannot assign a cause. The repository has a Dockerfile, a tests directory, and 4 CI workflows, but our exact fresh environment did not produce a clean suite. For an OSINT tool built on live sites, that red result is operationally important.

Python packaging is safer than two named distro packages

The README recommends pipx install sherlock-project, with pip or uv as substitutes. Docker and dnf are also listed. Community packages exist for several Linux distributions and Homebrew, though the project says those packages are not directly maintained upstream. It specifically warns that ParrotOS and Ubuntu 24.04 packages appear broken and tells those users to choose uv, pipx, pip, or Docker.

Basic searches do not require hosted credentials. A username is enough, and the default timeout is 60 seconds per response according to the command help. Large batches can still generate many requests, slow down on unresponsive sites, or trigger defenses. Proxies are supported, but using one changes the region and reputation seen by targets. Re-run important checks from a controlled environment and record the date because results age quickly.

Output needs a verification column before it becomes evidence

Sherlock writes found accounts to a username-specific text file by default. Structured exports make it easy to feed results into case notes or another analysis tool. Add fields for verification status, observed profile name, matching details, capture time, and reviewer. Without that second layer, a polished spreadsheet can hide the fact that its rows came from automated HTTP heuristics.

The --dump-response option helps debug one target, while --site narrows a run to selected services. Those controls are better for confirming an important result than repeatedly scanning all 400-plus sites. The --browse option opens results in a browser, which supports the manual-review step. Screenshots and archived URLs may be appropriate when the investigation has a lawful purpose and the material can change.

Active pushes matter more than the older release tag

GitHub showed 90,372 stars, 334 combined issues and pull requests, and a last push on August 26, 2026. The latest tagged release was v0.16.0 from September 2025, yet recent source activity and current issue discussion show that the project is still maintained. The combined GitHub count is not a defect total; it includes pull requests and many site-support requests.

Sherlock remains the easiest username-enumeration tool to recommend to a careful investigator. Installation worked, the build passed, and 22 tests passed in our sandbox. The WAF mismatch and 2 collection errors are a warning against treating target checks as stable facts. Keep the default exclusions, inspect every consequential result, and use Maigret or WhatsMyName when broader coverage or a reusable data source better fits the investigation.

Alternatives

ProjectWhat it isPick it when
Maigret gh↗A username-enumeration tool that builds a larger dossier across many sites.pick this instead when broader site coverage and report enrichment matter more than Sherlock's simpler command line.
WhatsMyNameA community-maintained username-site dataset used by several OSINT tools.pick this instead when you need a reusable dataset for your own checking pipeline rather than a finished search CLI.
Social Analyzer gh↗A username-analysis project with API, command-line, and web interfaces.pick this instead when a browser interface or callable API is more useful than Sherlock's focused CLI.

What people are saying

  1. [github-trending] sherlock-project/sherlock

Sources

  1. Sherlock README
  2. Sherlock v0.16.0 release
  3. Sherlock usage documentation
  4. False-positive issue 3074
  5. SSR and API detection request

More data reviews

toasty · gfwlist · simdjson · go-stock · sqlitebrowser · hydradb · the whole board →