More than a username checker
Maigret starts with a familiar OSINT task: enter a username and see where it appears. The difference is what happens after a possible account is found. The tool can extract details from profile pages and APIs, follow discovered usernames and identifiers recursively, and turn the result into HTML, PDF, CSV, JSON, text, XMind, Neo4j, or an interactive graph.
The public database covers more than 3,000 sites. A normal run checks the 500 highest-ranked entries, while flags can scan everything or narrow the work by country and category tags. That default is sensible. Hitting every supported service creates more delay, more blocks, and more noise than most first passes need. Maigret also updates its database from GitHub once per day and falls back to the bundled copy offline.
No API keys are required for ordinary username checks. Investigators can route requests through a normal proxy, Tor, or I2P. A parser can start from a profile URL, extract identifiers, and launch a wider search. Username permutation support covers cases such as combining a first and last name into likely handles.
Setup is easy until the web fights back
The basic path is as clean as advertised: use Python 3.10 or newer, install the PyPI package, and run maigret USERNAME. There are official Docker variants for the command line and web interface, plus a downloadable Windows executable. Developers can call the asynchronous search function from Python instead of wrapping the command, which is the better route for a durable internal workflow.
The complexity arrives at the edges. PDF reports are an optional install and need operating-system graphics libraries. Tor and I2P modes assume their gateways are already running. Sites protected by JavaScript challenges can be routed through a separate FlareSolverr instance, but the README labels that Cloudflare bypass experimental and warns that its behavior may change without compatibility guarantees.
The bundled web UI is excellent for exploring the relationship graph and downloading reports. It is not a finished multi-user service. The README explicitly says the one-click Render deployment has no login and can be used by anyone who knows its URL. Put authentication, request limits, and an acceptable-use policy in front of it before making it reachable outside a trusted network. A request for a proper authenticated REST API is still open, so service integrations should currently use the Python library or build their own boundary.
Results are leads, not identity proof
Username reuse is useful evidence, but it is not proof that two profiles belong to the same person. Common handles collide, profile pages change, and websites sometimes return the same response for existing and nonexistent users. Maigret uses claimed and unclaimed response markers, status codes, redirects, and page data to make that decision, yet the database is only as accurate as the current behavior of thousands of independent sites.
A July 2026 issue gives the right warning: the Telegram bot's automated probe marked three random usernames as claimed on one forum. Current pull requests also repair integrations when an API times out or a profile route stops exposing structured data. This is healthy maintenance, but it demonstrates why consequential findings need to be opened and checked manually. The self-check command helps maintainers find broken definitions; it does not remove uncertainty from a finished report.
The optional AI mode sends a generated Markdown report to an OpenAI-compatible chat endpoint for a short investigation summary. It introduces an API key, a third-party or local model, privacy decisions, and another source of mistaken inference. Keep the underlying links and distinguish extracted facts from model-written conclusions.
Reporting is where Maigret earns its place
The export range is a genuine advantage. HTML and PDF suit a human handoff, CSV and newline-delimited JSON fit analysis pipelines, and the graph output makes connections easier to inspect. Neo4j export writes an idempotent Cypher script, so repeated imports do not have to duplicate the same entities. Keyword highlighting can also elevate profiles that mention terms relevant to the investigation.
Maigret is especially strong when the first match reveals another identifier. Recursive searching can turn scattered public clues into a connected dossier, and the library interface lets a team attach its own review and storage process. The responsible workflow is to start narrow, preserve source URLs, verify important matches, and expand only when the evidence justifies it. Running all sites and accepting every green result produces volume, not certainty.
Active project, confusing release pointer
The repository was pushed on August 12, 2026, one day after stable version 0.6.4 was published. Its 22 open items combine issues and pull requests, and the recently updated queue includes site repairs, report improvements, new site submissions, and maintenance work. That combination points to an active project rather than a large abandoned backlog.
Release discovery has one avoidable trap. GitHub's latest-release API currently returns a development Windows build tagged main from April, even though stable releases through 0.6.4 are newer. An open issue explains that the development workflow took the Latest marker and that branch-like tags can resolve ambiguously. Choose a numbered stable release or PyPI version instead of assuming GitHub's green Latest label identifies the safest build. Windows evaluators should also know that an open report says Defender flagged the standalone executable; installing through pip or inspecting and building the source avoids relying on that binary while the report is investigated.
Maigret is an unusually capable open tool for turning username reuse into structured research. Its breadth also guarantees ongoing breakage at individual sites. Pick it when reports, recursive clues, and integration matter, then pair it with human verification and careful access controls. If all you need is a quick presence list, Sherlock is easier to explain and operate.