Vibeleaderboard
Index / tool
Visit sherlockproject.xyz
Category
Cybersecurity
Rank
Pricing
Open Source
Type
TOOL
Use case
Security & Identity
Interfaces
CLI
Latest release
v0.16.2
Date

About

A command-line tool that searches for usernames across 400+ social networks and platforms to help investigators and security researchers track down social media accounts. Useful for OSINT investigations, cybersecurity research, and digital forensics.

What it does

Sherlock sends concurrent web requests to configured profile endpoints, then classifies each username as claimed, available, invalid, blocked, or unknown. Site-specific rules can inspect status codes, redirects, or response content. Results can be printed or exported for later analysis.

Why it's ranked here

Sherlock combines broad coverage with useful operational controls: multiple usernames, site filters, proxies, timeouts, exclusions, and several export formats. Its explicit blocked and unknown states are more honest than a binary answer. Accuracy still depends on changing third-party websites and their resistance to automation.

What's good

The tool separates successful matches from unavailable, invalid, blocked, and failed checks. It runs requests concurrently with up to twenty workers, supports targeted debugging, and records response timing in verbose output. Users can restrict sites, include selected adult sites, try username punctuation variants, and export text, CSV, or spreadsheet results.

Tradeoffs

The default workflow fetches a live site manifest and a separate false-positive exclusion list, so network availability and upstream data affect behavior. Sites can redirect, require login, render content in JavaScript, block bots, or return indistinguishable pages. The project documents targets removed because its detection model could not classify them reliably. Some community packages are unsupported or reported broken.

How to use it well

Use Sherlock for a fast first pass when you already have one or more candidate usernames. Narrow important runs to relevant sites, retain exclusions, inspect blocked or unknown results, and manually verify consequential matches. It does not establish that similarly named accounts belong to one person, replace identity correlation, or collect broader investigative evidence.

Technical notes+

pyproject.toml defines a Poetry package named sherlock-project, requires Python 3.9 or newer, and maps the sherlock console script to sherlock_project.sherlock:main. sherlock_project/sherlock.py uses requests-futures through SherlockFuturesSession, caps workers at 20, interpolates usernames into configured URLs and supports status-code, response-URL, and response-content detection paths. sherlock_project/sites.py loads the default manifest from https://data.sherlockproject.xyz, optionally applies a remote false-positive exclusion list, and models NSFW filtering. sherlock_project/result.py defines CLAIMED, AVAILABLE, UNKNOWN, ILLEGAL, and WAF states, while sherlock_project/notify.py handles terminal reporting and optional browser opening. tests/test_ux.py covers NSFW filtering, wildcard expansion, and missing CLI arguments; tests/conftest.py supplies local and remote manifest fixtures.

Observed

License
MIT
Primary language
Python
Interface
Command-line interface installed as the sherlock command
Packaging
Poetry package with a poetry-core build backend; install options include pipx, pip, uv, and Docker
Platform support
Package metadata declares operating-system independence; community packages are listed for Debian, Ubuntu, Homebrew, Kali, and BlackArch
Tests
The provided repository tree includes pytest coverage under tests/test_ux.py and shared fixtures under tests/conftest.py

Read from pyproject.toml, docs/README.md, docs/removed-sites.md, docs/CODE_OF_CONDUCT.md, docs/pyproject/README.md, devel/site-list.py, sherlock_project/sites.py, sherlock_project/notify.py, sherlock_project/result.py, sherlock_project/__init__.py, sherlock_project/__main__.py, sherlock_project/sherlock.py, devel/summarize_site_validation.py, tests/test_ux.py, tests/conftest.py.

What it can do

  • Search for usernames across 400+ social networks

    Username string → List of matching social media accounts and profiles

  • Generate investigation reports in multiple formats

    Username search results → Formatted reports (JSON, CSV, TXT)

  • Perform anonymous username searches through Tor

    Username and Tor configuration → Anonymized search results across social platforms

  • Conduct bulk username searches

    List of multiple usernames → Batch search results for all provided usernames

  • Route searches through proxy servers

    Username and proxy configuration → Search results obtained via proxy connection

  • Filter search results by specific social networks

    Username and platform selection criteria → Targeted search results from specified platforms only

Tags

osintcybersecurityinvestigationsocial-mediareconnaissancecliforensicspentesting

Tech Stack

PythonDocker

Media

Sherlock

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.