Maigret vs Sherlock: Which Username Scanner to Run

Maigret forked Sherlock and went a different direction. A practical comparison of coverage, detection accuracy, recursion, reporting and maintenance, with commands you can copy.

Patrick Saif7 min read

ShareXLinkedInHacker News
Cover card for the maigret vs sherlock post
Cover card for the maigret vs sherlock post

Maigret vs Sherlock is the comparison most people make when they outgrow their first username scanner. Maigret started as a Sherlock fork in 2020 and kept the core model, one request per site with a detection rule, then diverged on coverage, reporting and data extraction. The two now behave differently enough that the choice affects your results, not just your terminal output.

This post compares them on the five things that matter in practice: site coverage, false positives, recursion, reports, and upkeep. It ends with where a hosted scanner with a proxy fleet sits next to both, because the honest answer for a lot of workflows is a script for the first pass and something maintained for the case that counts.

Coverage: thousands of sites versus hundreds

Sherlock ships a site list in the hundreds, curated toward platforms where detection is reliable. Maigret ships a much larger database, several thousand entries, including a long tail of forums, regional networks and small services, and tags each one with categories and countries so you can filter a run.

bash
# Sherlock: everything in the list
sherlock northwind --print-found

# Maigret: top 500 sites by popularity, HTML report
maigret northwind --top-sites 500 --html

# Maigret: only sites tagged with a country
maigret northwind --tags us --pdf

More sites mean more hits and more noise. A full Maigret run over its whole database takes considerably longer than a Sherlock run, and a meaningful share of tail hits need manual confirmation. The --top-sites flag exists because the maintainers know that, and using it is the difference between a useful scan and a wall of maybes.

False positives and detection

Both tools decide "found" from a per-site rule: status code, message text, or redirect. Both drift when sites change. Maigret adds a check against known-bad usernames per site, which reduces the classic failure where a platform returns 200 for every path, but it cannot remove it. In my experience the false-positive rate is similar on the major platforms and higher on Maigret's tail, simply because there are more entries nobody has tested this month.

The practical fix in both tools is the same: read the response, not the summary. Open three or four of the tail hits by hand, note which sites produced them, and disable those entries for the rest of the case. Ten minutes of that at the start of a run saves an hour of chasing empty pages at the end.

Neither tool can tell you that an Instagram handle is banned rather than missing, because both read the logged-out HTML, which is a 200 login wall for live, banned and nonexistent accounts alike. That is a structural limit of static detection rules, and it is the same for every script built on this model.

Recursion and extracted data

This is the biggest functional gap. Sherlock reports URLs and stops. Maigret parses some profile pages for fields (names, ids, bios, links), and when it finds another username or id in those fields it can queue a follow-up search. That recursive step is real and useful; it is also shallow and unbudgeted, so a common handle can fan out into a long, noisy run.

CapabilitySherlockMaigretOSINTsearch
Sites per username scanHundredsThousandsOver 750, health-monitored
Profile fields on a hitURL onlySome fields, site-dependentNormalized profile: id, name, bio, location, counts, dates
Former usernamesNoNoWhere the platform records renames, e.g. Instagram
Last active, banned statusNoNoWhere exposed; Instagram tri-state live, banned, never existed
RecursionNoSimple, unbudgetedFour depth levels with sweep caps, paid
EgressYour IPYour IP, optional proxy flagProxy fleet, retry through a different exit
ExportTXT, CSV, XLSXTXT, CSV, JSON, HTML, PDFJSON, CSV

OSINTsearch's deep search is the same idea as Maigret's recursion with a cost table attached: depth 1 caps at 8 total sweeps, depth 4 at 110, and each newly discovered handle is validated before it is allowed to spend a sweep. Discord invite links, short links, video ids and repository paths are refused outright, because a random token is not a username and each false seed costs a full 750-platform scan.

Reports and upkeep

Maigret's HTML and PDF reports are its most visible advantage over Sherlock. They group hits, show extracted fields, and are presentable to a client without editing. Sherlock's CSV is fine for a spreadsheet and nothing more.

Upkeep is where both scripts cost you time. Site lists need pulling, broken entries need patching or disabling, and a scan run six months after your last update will be wrong in ways you cannot see. A hosted fleet moves that labor to the vendor: modules are probed against a baseline on a schedule, marked broken or rate-limited when they change, and repaired or retired. The engine behind OSINTsearch retired 26 modules in a single sweep this month because their targets went behind walls that cannot be read publicly, and added 90 that pass a positive and negative proof test. You do not see that churn; you see a list that keeps working.

Maigret vs Sherlock: which one to run

Run Sherlock when you want a fast, low-noise check on major platforms and you are comfortable patching the list. Run Maigret when coverage and a presentable report matter more than run time, and use --top-sites to keep the noise down. Run both from a box whose IP you do not mind burning.

Use a hosted scanner when the fields matter: rename history, last active, banned status, linked handles, and a recursion that will not spend your afternoon on a common name. You can try the live scan without an account and compare the hit list against your own Maigret run on the same handle. Plans and quotas are on the pricing page. The broader set of options is in the Sherlock alternative post.

FAQ

Is Maigret a fork of Sherlock?

Yes. Maigret began as a Sherlock fork and kept the request-per-site model, then expanded the site database, added report formats and profile-field extraction, and introduced a simple recursive search.

Which has fewer false positives, Maigret or Sherlock?

On major platforms they are similar. On Maigret's long tail the rate is higher because there are more entries and fewer people testing each one. Restricting a run to top sites helps.

Can either tool find Instagram former usernames?

No. Former usernames come from Instagram's about-this-account panel, which neither script reads. OSINTsearch returns them where the panel lists any, and flags when the list was truncated.

Do I need a proxy to run Maigret or Sherlock?

Not to start. After a few scans the large platforms will rate-limit your IP, and those hits will silently turn into errors or false negatives. A rotating proxy or a hosted fleet fixes that.

Two scripts, one habit

The useful habit is the same regardless of tool: treat every hit as a claim to be corroborated, and read the misses as carefully as the finds. Maigret vs Sherlock is a coverage and reporting decision. The decision that changes outcomes is what you do with the second hop, and that is where the tooling has moved.

ShareXLinkedInHacker News
All articles

Try it

Run a live search on any username.

Free preview, no account needed. Sign up to view available profile details.

For other identifiers, try reverse email lookup or phone number lookup.