mrkeyoor.com_
Tue 01 Sept 14:09 UTC
Automationevaluationupdated 29 Aug 2026

user-scanner review

User Scanner is a Python OSINT tool that checks an email address or username across hundreds of sites, then exports the findings or passes them to an MCP client. Its useful trick is cross-scanning: it can extract another handle, profile link, or exposed address from one result and follow that lead into a second scan.

+984 / 3dstars / 7d
Verdict

Our User Scanner run installed 53 packages and passed 375 tests, but the suite stopped at collection because the optional mcp module was absent. Use it for investigator-led sweeps where errors, collisions, and profile pivots will be reviewed by a person. Do not feed its candidate matches straight into enforcement or identity decisions, and install the MCP extra before judging that interface.

We ran it

Lab card: what happened when we ran user-scannerScreenshot of user-scanner (github.com/kaifcodec/user-scanner)
Install✓ · 47s53 packages · 81 MB
Build✓ · 11s
Tests✗ · 11s375 passed · 0 failed · 3 skipped · 1 errors of 376 (pytest)
Known vulns0(pip-audit)
Repo573 files~38,326 lines of source · 1.5 MB · 4 CI workflows · tests dir

Answers from our run

Does user-scanner build from source?

Dependencies installed in 47 seconds (53 packages), and the build succeeded in 11 seconds. We cloned commit 14184c2 into a clean Debian container with 3 CPUs and no project-specific setup.

Do user-scanner's tests pass?

Yes: 375 of 376 passed when we ran the project's own test command (pytest), with 1 collection error. Some failures need services or credentials a bare container does not have.

Does user-scanner have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use user-scanner?

Anyone who treats every hit as proof of identity: the cross-scan guide says a username sweep can find unrelated people who share the same handle.

What are the alternatives to user-scanner?

Sherlock, Maigret, Blackbird. Our User Scanner run installed 53 packages and passed 375 tests, but the suite stopped at collection because the optional mcp module was absent.

Setup4/547-second install; MCP tests need the optional extra
Docs5/5Flags, pivots, confidence, proxies, and MCP have dedicated guides
Community4/53,488 stars with fresh releases, reports, and merged work
Maturity3/5Large test suite, but live-site modules can break overnight

Discussed on

  1. hnUser-scanner a CLI tool written on Python checks availability of a username19 points

Who it’s for

Investigators who need repeatable username and email checks with JSON, CSV, or PDF output.
Security teams that want to restrict a scan by site or category and distinguish a negative result from a module error.
Developers who want a Python library or MCP server instead of scraping each site themselves.
Analysts who understand that a matching handle is a lead, then verify identity with other evidence.

Who it’s NOT for

Anyone who treats every hit as proof of identity: the cross-scan guide says a username sweep can find unrelated people who share the same handle.
Teams that need every module to stay dependable without maintenance: issues 611, 612, and 613 document three email checks that returned errors after upstream sites changed.
Operators who cannot risk triggering account emails: the cross-scan guide says 23 email modules can send a reset or verification message, and they require explicit loud-mode permission.
Users expecting MCP support from the base development install: our test collection stopped because the mcp module was missing, while the package file puts it in an optional extra.

Setup reality

Our sandbox install succeeded in 47 seconds, adding 53 packages and using 81 MB. The build passed in 11 seconds. Tests exited with code 1 after 11 seconds: 375 passed, 3 skipped, and 1 collection error prevented the 376-test suite from completing. Pip-audit found 0 known vulnerabilities.

Basic username and email scans need no account credential in the README. PDF export and the MCP server use optional package extras, while proxy rotation needs a proxy list. The MCP client also needs a command entry that launches user-scanner-mcp.

The package requires Python 3.10 or newer and documents Windows, Linux, Termux, macOS through Nix, and a Python library route. Live sites change their forms and responses, so individual modules can fail even when the package installs and builds cleanly.

Cross-scanning turns one identifier into a trail of leads

User Scanner checks usernames and email addresses against a catalog that the README describes as more than 455 scan vectors. A normal run can target every module, one category, or a named site. Results may include avatars, biographies, follower counts, identifiers, and other public profile fields. Output goes to the terminal or to JSON, CSV, and PDF. The same engine is callable from Python, so it can sit inside an investigation script rather than forcing every job through the command line.

Cross-scanning is the part that separates it from a plain username checker. A result can expose a second handle, a profile link, or an email address, and the tool can scan that new identifier in another pass. Depth and sweep budgets keep the branching under control. The guide also assigns confidence labels such as confirmed, likely, candidate, and conflicting. Those labels help sort leads, but they do not turn a common handle into identity proof.

A 455-vector catalog trades reach for per-site fragility

Each module depends on behavior controlled by another website. Three open reports filed on August 29, 2026 show the practical cost. Issue 611 says a small HTML attribute change broke Screener's exact-string check. Issue 612 reports that Render now rejects addresses before the old existence signal appears. Issue 613 says Lovescape added a guest UUID precondition that the module does not supply. In all three cases, the scanner returned an error instead of a registration verdict.

That distinction is worth preserving. A site response that cannot be classified should not be reported as an absent account. User Scanner has separate registered, not registered, error, and skipped states, which gives an analyst a chance to retry or inspect the module. It also means a large result set needs triage. One broken module among hundreds is understandable, but a workflow must retain errors instead of flattening them into clean negatives.

What happened when we ran it

Our sandbox installed commit 14184c2 in 47 seconds. The process added 53 packages and occupied 81 MB on disk. Building the Python project succeeded in 11 seconds. Pip-audit reported 0 known vulnerabilities in the installed dependency set. The checkout itself contained 573 files and about 38,326 lines of source, with 4 CI workflow files and a tests directory but no Dockerfile.

The test command failed with exit code 1 after 11 seconds. Pytest reported 375 passed and 3 skipped, then stopped on 1 collection error out of the 376-test suite. tests/test_mcp_handlers.py imported the MCP handlers, which imported mcp.types; Python then raised ModuleNotFoundError: No module named 'mcp'. That log proves the module was unavailable in the environment. It does not show why the test setup did not install it.

The package metadata provides the relevant boundary. Core dependencies cover HTTP requests, SOCKS support, terminal color, browser-like TLS requests, and rich terminal output. MCP is a separate optional dependency declared as user-scanner[mcp]. A user following the README's base pip install user-scanner command gets the scanner, while the README gives a second install command for AI-agent support. Anyone contributing to MCP code should include that extra before running the complete suite.

Cross-scan confidence still leaves identity work to you

A named link from one profile to another is stronger than sweeping the same username across every site. The cross-scan documentation reflects that difference: a named site and handle can be confirmed, metadata agreement can be likely, and an unconnected registration stays a candidate. It even ignores handle-like display names as evidence and can mark a profile conflicting when its name points to somebody else. That is careful design for a problem with no automatic final answer.

Email pivots need stricter handling. The guide says 23 email modules may send a reset or verification message. Loud checks require permission in an initial scan and are skipped during a cross-scan unless the caller explicitly allows them. Addresses found in prose are also weaker than addresses published in a site's email field. For sensitive work, restrict link classes, disable email pivots, and record why each noisy module is allowed before running it.

MCP access makes powerful scans easier to misuse

Version 1.5.1 exposes 3 MCP tools: scan a username, scan an email address, or list available modules. The server uses standard input and output, and the README supplies a small client configuration for Claude Desktop and other MCP hosts. An agent can select modules, pass proxies, request cross-scans, and follow profile clues without a person typing each command. That is convenient for casework with a fixed scope.

It also moves judgment into the prompt and client permissions. A model can repeat a scan, widen a category, or follow a candidate that belongs to another person. The project's disclaimer limits use to education, authorized research, and defensive investigations. Treat the MCP process as an investigative capability: limit who can call it, set conservative defaults, preserve raw errors, and require a human decision before expanding from the original target.

August releases are active, while issue activity exposes churn

GitHub recorded the last push on August 28, 2026, when v1.5.1 was published. The repository had 3,488 stars and 12 open issues and pull requests when fetched. The release added modules, input-encoding fixes, PDF batch isolation, tests, and MCP support. Those are signs of current development, while the three module failures reported the next day show that contributors are also testing the catalog against live services.

User Scanner is most convincing as a transparent analyst's tool. The 47-second install, 11-second build, detailed pivot guide, and mostly successful test run make it easy to examine. Its results still inherit uncertainty from handle collisions and changing signup flows. Keep error states visible, install optional features deliberately, and verify high-impact findings outside the scanner before acting on them.

Alternatives

ProjectWhat it isPick it when
Sherlock gh↗A focused username search tool covering many social networks.pick this instead when username discovery is the job and email checks or recursive pivots would add noise.
Maigret gh↗A username OSINT collector that builds reports from a large site catalog.pick this instead when broad username coverage and dossier-style reports matter more than User Scanner's email modules.
BlackbirdA command-line account search tool for usernames and email addresses.pick this instead when you want a narrower username-and-email scanner without User Scanner's cross-scan and MCP layer.

What people are saying

  1. [github-trending] kaifcodec/user-scanner

Sources

  1. User Scanner README
  2. User Scanner v1.5.1 release
  3. Cross-scan guide
  4. Screener module breakage report
  5. Render module breakage report
  6. Lovescape module breakage report

More automation reviews

Karabiner-Elements · WiiUDownloader · prefect · Telegram-Media-Downloader · rewards-farmer · PowerShell · the whole board →