DEV Community

Cover image for User Scanner : Find Your Perfect Username Across All Platforms in Seconds ⚡
kaifcodec
kaifcodec

Posted on • Edited on

User Scanner : Find Your Perfect Username Across All Platforms in Seconds ⚡

User Scanner


A powerful Email OSINT tool that checks if a specific email is registered on various sites, combined with username scanning for branding or OSINT — 2-in-1 tool.

Perfect for fast, accurate and lightweight email OSINT

Perfect for finding a unique username across GitHub, Twitter, Reddit, Instagram, and more, all in a single command.

Features

  • ✅ Check an email across multiple sites to see if it’s registered.
  • ✅ Scan usernames across social networks, developer platforms, creator communities, and more.
  • ✅ Can be used purely as a username tool.
  • ✅ Smart auto-update system detects new releases on PyPI and prompts the user to upgrade interactively.
  • ✅ Clear Registered and Not Registered for email scanning Available / Taken / Error output for username scans
  • ✅ Robust error handling: displays the exact reason a username or email cannot be used (e.g., underscores or hyphens at the start/end).
  • ✅ Fully modular: easily add new platform modules.
  • ✅ Wildcard-based username permutations for automatic variation generation using a provided suffix.
  • ✅ Option to select results format (JSON, CSV, console).
  • ✅ Save scanning and OSINT results in the preferred format and output file (ideal for power users).
  • ✅ Command-line interface ready: works immediately after pip install.
  • ✅ Lightweight with minimal dependencies; runs on any machine.
  • Proxy support with round-robin rotation
  • Proxy validation to test and filter working proxies before scanning
  • Bulk username scanning from file support for checking multiple usernames at once
  • Bulk email scanning from file support for checking multiple emails at once

Installation

pip install user-scanner
Enter fullscreen mode Exit fullscreen mode

Important Flags

Flag Description
-u, --username USERNAME Scan a single username across platforms
-e, --email EMAIL Scan a single email across platforms
-uf, --username-file FILE Scan multiple usernames from file (one per line)
-ef, --email-file FILE Scan multiple emails from file (one per line)
-c, --category CATEGORY Scan all platforms in a specific category
-lu, --list-user List all available modules for username scanning
-le, --list-email List all available modules for email scanning
-m, --module MODULE Scan a single specific module
-p, --permute PERMUTE Generate username permutations using a pattern/suffix
-P, --proxy-file FILE Use proxies from file (one per line)
--validate-proxies Validate proxies before scanning (tests against google.com)
-s, --stop STOP Limit the number of permutations generated
-d, --delay DELAY Delay (in seconds) between requests
-f, --format {csv,json} Select output format
-o, --output OUTPUT Save results to a file

Usage

Basic username/email scan

Scan a single username across all available modules/platforms:

user-scanner -e john_doe@gmail.com
user-scanner --email john_doe@gmail.com # long version

user-scanner -u john_doe
user-scanner --username john_doe # long version
Enter fullscreen mode Exit fullscreen mode

Selective scanning

Scan only specific categories or single modules:

user-scanner -u john_doe -c dev # developer platforms only
user-scanner -u john_doe -m github # only GitHub
Enter fullscreen mode Exit fullscreen mode

Bulk username scanning

Scan multiple usernames from a file (one username per line):

  • Can also be combined with categories or modules using -c and -m flags
user-scanner -uf usernames.txt
Enter fullscreen mode Exit fullscreen mode

Bulk email scanning

Scan multiple emails from a file (one email per line):

  • Can also be combined with categories or modules using -c and -m flags
user-scanner -ef emails.txt
Enter fullscreen mode Exit fullscreen mode

Username/Email variations (suffix only)

Generate & check username variations using a permutation from the given suffix:

user-scanner -u john_ -p ab # john_a, ..., john_ab, john_ba
Enter fullscreen mode Exit fullscreen mode

Using Proxies

Route requests through proxy servers:

user-scanner -u john_doe -P proxies.txt
Enter fullscreen mode Exit fullscreen mode

Validate proxies before scanning (tests each proxy against google.com):

user-scanner -u john_doe -P proxies.txt --validate-proxies # recommended
Enter fullscreen mode Exit fullscreen mode

This will:

  1. Test all proxies from the file
  2. Filter out non-working proxies
  3. Save working proxies to validated_proxies.txt
  4. Use only validated proxies for scanning

Update

Update the tool to the latest PyPI version:

user-scanner -U
Enter fullscreen mode Exit fullscreen mode

Screenshot:

  • Note*: New modules are constantly getting added so this might have only limited, outdated output:

1000146096


user-scanner's main usage screenshot


user-scanner's wildcard username feature


Contributing

Modules are organized under user_scanner/:

user_scanner/
├── email_scan/       # Currently in development
│   ├── social/       # Social email scan modules (Instagram, Mastodon, X, etc.)
|   ├── adult/        # Adult sites 
|    ...               # New sites to be added soon
├── user_scan/
│   ├── dev/          # Developer platforms (GitHub, GitLab, npm, etc.)
│   ├── social/       # Social platforms (Twitter/X, Reddit, Instagram, Discord, etc.)
│   ├── creator/      # Creator platforms (Hashnode, Dev.to, Medium, Patreon, etc.)
│   ├── community/    # Community platforms (forums, StackOverflow, HackerNews, etc.)
│   ├── gaming/       # Gaming sites (chess.com, Lichess, Roblox, Minecraft, etc.)
│   └── donation/     # Donation platforms (BuyMeACoffee, Liberapay)
|...
Enter fullscreen mode Exit fullscreen mode

Module guidelines:
This project contains small "validator" modules that check whether a username exists on a given platform. Each validator is a single function that returns a Result object (see core/orchestrator.py).

Result semantics:

  • Result.available() → available
  • Result.taken() → taken
  • Result.error(message: Optional[str]) → error, blocked, unknown, or request failure (include short diagnostic message when helpful)

Dependencies:


License

This project is licensed under the MIT License. See LICENSE for details.


Top comments (14)

Collapse
 
kaifcodec profile image
kaifcodec

Actively looking for feedbacks and contributions for improvement of it.

Collapse
 
japroger profile image
JA Proger

Great project!

Collapse
 
kaifcodec profile image
kaifcodec

Thanks!
UserScanner is open to contributions and it's super easy to contribute, if you are familiar with networking and APIs you can add new popular site support which you prefer and think would make the project better.

Collapse
 
japroger profile image
JA Proger

Thank you for invitation! I'll think about it. I'm currently getting familiar with networking, so wouldn't bring anything nice 😉

Collapse
 
anony_mous_46662427dd46c6 profile image
Anony Mous

Looks like a nice project with unique.
The codebase is very contributor friendly.

Collapse
 
kaifcodec profile image
kaifcodec

Thanks!

Collapse
 
splotdev profile image
Splot Dev

This is really useful - but could you create a web based version? I think users would love that

Collapse
 
kaifcodec profile image
kaifcodec

Thanks! Do you mean a hosted web version (like websites), or a local one that runs via Flask/FastAPI on localhost?

Collapse
 
splotdev profile image
Splot Dev

A hosted web version would be really nice

Thread Thread
 
kaifcodec profile image
kaifcodec

Thanks! A hosted version would be great, but the project’s still small, not enough supported sites yet. A public one would also need regular maintenance since sites change and rate limits hit often. For now, I’m keeping it CLI-focused until it’s bigger and more stable. If you’re into web requests or site integrations, feel free to contribute, more hands will speed things up.

Collapse
 
nathan2412 profile image
Nathan2412

Why is it necessary to digitize these systems?

Collapse
 
kaifcodec profile image
kaifcodec

I didn't really understand what you asked, can you clarify a little bit?

Collapse
 
provenco profile image
Proven

Good App!

Collapse
 
kaifcodec profile image
kaifcodec

Thanks! Feel free to check it out by yourself and suggest any fixes or features.