Skip to main content
Sherlock
$ cat ./sherlock.md

Sherlock

Sherlock is a powerful command-line intelligence tool that hunts for usernames across hundreds of social networks and platforms simultaneously. It efficiently searches over 300+ websites including major social media platforms, forums, and online services to determine username availability and discover associated accounts. The tool features fast concurrent processing, customizable output formats (JSON, CSV), proxy support, and detailed reporting capabilities. Sherlock is invaluable for OSINT investigations, cybersecurity research, digital forensics, and social media reconnaissance. Security professionals, investigators, and researchers use it to map digital footprints, verify online identities, and conduct comprehensive username enumeration across the internet's vast social landscape with minimal manual effort.

93,778 stars 11,090 forks Python MIT License
sherlock-project 518 Jan 8, 2026
Login with GitHub to like and favorite this CLI tool
$ git release --latest

Latest Releases

All releases

Release created because its been a long time since the previous one and several minor changes have been made. Thank you for everyone's support! :heart:

What's Changed Most users should see a significant reduction in false positives (on an ongoing basis) after updating to this release. Nothing is ever perfect (regional differences, etc), but noise should be reduced by a notable margin.
  • 📦 Community package now available on [_Debian_][ext-debian] @Nilsonfsilva
  • 📦 Community package now available on [_Ubuntu_][ext-ubuntu] @Nilsonfsilva
  • ✨ Automatic filtering of most false-positive prone sites by way of [automatic testing](https://github.com/sherlock-project/sherlock/blob/master/tests/testvalidatetargets.py) on [upstream](https://github.com/sherlock-project/sherlock/blob/exclusions/falsepositiveexclusions.txt) @ppfeister
  • ✨ \-\-json flag overloaded to allow use of pull request numbers as manifest URIs (#2356) @bytexenon
  • ✨ \-\-no-txt flag added to disable automatic txt file output _(functionality may change later)_ (#2263) @ntexe
  • ✨ Basic PEP 561 compliance with support for mypy static type checking (#2277) @ppfeister
  • ‼️ Deprecated support for now-EOL Python 3.8 and 3.9 (now ^3.10) @ppfeister
Additional manifest contributors this cycle: @Netail @MR-VL @L0mbart @paperbenni @gtkacz @Suramyavns @nktkhndlwl @Nuung @alokranjan609 @yuzicodes @rskbansal @NOMADE55 @ReganBell @sk337 @Pasanlaksitha @SOGeKING-NUL @ibnaleem @brantonb @joeyagreco @jasontenpenny @S1lvus @MaxwellOldshein @Davis-3450 @akamayu-ouo @craiglondon @pylapp @tulsishetty07 @kotarofu @telemaxxx @rsb-23 Additional codebase contributors this cycle: @Txbias (docs) @PeterDaveHello (dockerfile) @anujatappeta (fixed dead tests) [_[full changelog]_][changelog] [ext-debian]: https://packages.debian.org/trixie/sherlock [ext-ubuntu]: https://packages.ubuntu.com/source/oracular/sherlock [changelog]: https://github.com/sherlock-project/sherlock/compare/v0.15.0...v0.16.0 <details> <summary>Click to expand package version grid</summary> _ Note that community-supported packages are by definition not officially supported. They are provided for convenience and portability. See the documentation for info as to which packages currently have official support. Community based package, or those found on Linux distribution repositories, may take longer to update - to avoid breaking changes, using official packages on the latest version is recommended. [![Packaging status](https://repology.org/badge/vertical-allrepos/sherlock-social-osint.svg)](https://repology.org/project/sherlock-social-osint/versions) </details>

What's Changed
  • 📦 Official package now available on [_PyPI_][ext-pypi] (#2127) @ppfeister
  • 📦 Official package now available on [_DockerHub_][ext-dockerhub] (#2216) @ppfeister
  • 📦 Official package now available on [_Fedora_][ext-fedora] @ppfeister
  • 📦 Community package now available on [_Homebrew_][ext-homebrew] @p-linnane
  • ✨ New Sherlock wiki at [_sherlockproject.xyz_][ext-wiki] @sdushantha
  • ✨ --dump-response flag added for easier debugging (#2214) @ppfeister
  • 🪲 Fixed uncaught exception when tor browser not found (#2033) @joaomfbh
  • 🪲 ‼️ Importable module renamed from sherlock to sherlockproject [[details]_][ext-deb1072733] @ppfeister
  • 🛠️ Adopted Poetry and restructured as a true package @mjsir911 @ppfeister @matheusfelipeog @sdushantha
  • 🛠️ Unit testing rewritten to better support contributors and packagers @ppfeister
- Switched from unittest to pytest and tox - Expanded regression testing to include builds on Windows and MacOS - Added offline-only test environments for packagers (see below)
  • 🛠️ Manifest now uses schema for better regression testing and in-IDE UX (#2212) @ppfeister
  • 🛠️ Added detection mechanism for users running via legacy/unsupported methods (#2213) @ppfeister
  • 🛠️ ‼️ Dependency [_torrequest_][ext-torrequest] made optional (#2215) @ppfeister @matheusfelipeog
- --tor and --unique-tor are now DEPRECATED (see detail below)
  • 🛠️ ‼️ Deprecated support for Python 3.6 and 3.7 (now ^3.8)
  • 🛠️ Several minor UX improvements over the course of development
  • 🏷️ Adopted properly tagged releases help out our downstream packagers
  • ✍️ General improvements to and simplification of in-repo documentation
Manifest contributors this cycle: @RahalBhupathi @abhirai7 @pandyah5 @roxerj @Wicloz @slavran [_[full changelog]_][release-diff] _ #### ‼️ Tor deprecation detail --tor and --unique-tor are now deprecated, and both are up for possible removal in a future release (#2200). Users who need time to adapt to this change can install the now-optional dependency [_torrequest_][ext-torrequest]. If Sherlock has been installed via pip, pip install 'sherlock-project[tor]' will include the necessary extras Since torrequest is simply not available as an rpm, those options have already been patched out of the Fedora release. _ #### 📦 Packaging info Many packages are required to be built entirely offline, as with the official Fedora release and the upcoming community-supported Debian release. Sherlock's unit tests generally require an internet connection, but with the adoption of tox and pytest, we've added offline-only test modes. tox -e offline is the preferred offline-only test method, with pytest -m "not online" also being supported out of the box. Reference @ppfeister's [_spec file_][ext-rpm-spec] for an example of fully-offline unit testing with tox. [release-diff]: https://github.com/sherlock-project/sherlock/compare/v0.14.4...v0.15.0 [ext-pypi]: https://pypi.org/project/sherlock-project/ [ext-dockerhub]: https://hub.docker.com/r/sherlock/sherlock [ext-fedora]: https://src.fedoraproject.org/rpms/sherlock-project/ [ext-homebrew]: https://formulae.brew.sh/formula/sherlock [ext-wiki]: https://sherlockproject.xyz [ext-wiki-install]: https://sherlockproject.xyz/installation [ext-rpm-spec]: https://src.fedoraproject.org/rpms/sherlock-project/blob/rawhide/f/sherlock-project.spec [ext-torrequest]: https://pypi.org/project/torrequest/ [ext-deb1072733]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072733

Installation

docker run -it --rm sherlock/sherlock
pipx install sherlock-project
$ tail ./comments.log

Comments (0)

Login with GitHub to post a comment
No comments yet. Be the first to comment!