Guide

Running Maigret: Turning a Username Into a Full Profile Map

By OSINTPanel Editorial TeamPublished August 18, 2026Updated August 18, 2026

Most username-checking tools stop at a yes/no answer: does this handle exist on this site or not. Maigret (a community fork of the better-known Sherlock project) treats that as the starting line rather than the finish. Once it gets a hit, it opens the profile and reads it — pulling out bio text, avatar URLs, follower counts, join dates, and any other account handles mentioned on the page. Run one search and you don't just get a list of platforms; you get a rough sketch of a person's footprint across the web.

What it actually checks

Maigret ships with definitions for well over 3,000 sites, though a default run only queries the top 500 by popularity to keep runtime sane — the full list is available with a flag when you need the long tail. For every match it stores whatever structured data it can scrape from the page itself, and it uses platform-specific quirks (Google's internal gaia_id is one example) to reduce false positives that trip up simpler checkers.

The tradeoff for that depth is speed. Because it's parsing rendered page content instead of just checking an HTTP status code, a full run takes noticeably longer than a Sherlock pass and is more exposed to bot walls and CAPTCHAs on sites that don't want to be scraped. In practice this makes it a poor first-pass tool and a strong second-pass one: run something fast across the whole namespace first, then point Maigret at the handful of usernames worth a closer look.

Installing it

Maigret needs Python 3.10+ (3.11 is the recommended baseline). The straightforward path is PyPI:

pip3 install maigret

If you'd rather not touch your local Python environment, the maintained Docker image handles the same job in a container and can expose the web UI directly:

docker pull soxoj/maigret
docker run -p 5000:5000 -v ~/maigret-reports:/app/reports soxoj/maigret:latest <username> --web 5000

For anyone who wants to read or patch the source, cloning the repo and installing from it works the same way:

git clone https://github.com/soxoj/maigret
cd maigret
pip3 install .

There are also no-install routes worth knowing about — a prebuilt Windows executable, a Telegram bot front-end, and support in hosted notebook environments like Google Colab. None of these require a local Python setup, which matters if you're working from a locked-down machine.

Running a search

The bare-minimum invocation is just the username:

maigret <username>

From there the flags do most of the useful narrowing. Restricting the scan to a category keeps a run focused and fast — social platforms only, for example:

maigret --filter "cat=social" --username bellingcat

Add -a to check the entire site database instead of the default top-500 shortlist, and -o to control the output format. If you'd rather work in a browser than a terminal, launch the bundled web interface and get the same results with clickable, sortable results:

maigret --web 5000

A newer addition worth trying on ambiguous cases is the AI-assisted mode, which pipes results through an OpenAI-compatible API to help separate genuine matches from lookalikes:

maigret bellingcat --ai

Maigret also accepts more than one username per invocation, so batch-checking a small list of aliases doesn't require scripting a loop yourself.

Making sense of the output

Reports can be generated as HTML, PDF, plain text, JSON, or — somewhat unusually — an XMind 8 mind map, which is genuinely useful for laying out a person's cross-linked accounts visually rather than scrolling a flat list. The HTML report is the most practical default for casework: it's shareable, keeps the extracted metadata readable, and doesn't need any extra tooling to open.

One feature worth using deliberately rather than by default is recursive search, where Maigret follows account links it discovers on a profile page and searches those handles too. It's a genuinely useful way to snowball a small lead into a fuller picture, but scope grows fast — cap the recursion depth on a first run, or you can end up with an unmanageably large, noisy report before you've even confirmed the original hit is real.

Cost and difficulty

Free and open source under the MIT license across every install path — pip, Docker, or building from source, no paid tier gates any of it. Difficulty lands around 3 out of 5: getting it running is a one-line install, but reading the output well — knowing when to trust a recursive follow-up link, when to cap depth, and when a "hit" needs manual verification — takes a bit more judgment than a plain availability checker.

Where it fits, and where it doesn't

Treat every result as a lead, not a verified fact. Bot protection and CAPTCHAs mean some sites will silently return incomplete data, and shared or reused handles produce false positives that look identical to genuine matches until you check them by hand. Cross-reference anything Maigret surfaces against other signals — timing, writing style, avatar reuse, mutual connections — before treating it as confirmed. And, as with any username-enumeration tool, stay inside the platform's terms of service and applicable law; this is a research aid, not a shortcut around consent or privacy obligations.

It's also not the only tool in this space, and it isn't meant to replace the fast checkers. Sherlock, the project it forked from, is lighter and quicker when all you need is availability. Namechk and WhatsMyName cover similar ground for quick manual lookups without installing anything. Blackbird offers both a CLI and a web UI with direct links to matched profiles. For casework with a budget behind it, commercial platforms like Skopenow go further than any of these, but at a very different cost and access model. Maigret's niche is specific: it's the tool you reach for once you already have a username worth spending real time on, and you want more than a checklist — you want a starting map of everywhere that identity shows up.