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.
# 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 --pdfMore 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.
| Capability | Sherlock | Maigret | OSINTsearch |
|---|---|---|---|
| Sites per username scan | Hundreds | Thousands | Over 750, health-monitored |
| Profile fields on a hit | URL only | Some fields, site-dependent | Normalized profile: id, name, bio, location, counts, dates |
| Former usernames | No | No | Where the platform records renames, e.g. Instagram |
| Last active, banned status | No | No | Where exposed; Instagram tri-state live, banned, never existed |
| Recursion | No | Simple, unbudgeted | Four depth levels with sweep caps, paid |
| Egress | Your IP | Your IP, optional proxy flag | Proxy fleet, retry through a different exit |
| Export | TXT, CSV, XLSX | TXT, CSV, JSON, HTML, PDF | JSON, 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.



