OSINTverse

Free · Open source · MIT

Guess the email, not the password.

Stop typing first.last, then flast, then giving up. EmailGuesser turns a name, username, birth year, date of birth, location and domain into a ranked list of the addresses a person most likely uses. Run it offline in Python, or right here in your browser. It does the guessing so you only have to check the few that matter.

Install

pip install emailguesser
  • MIT licensed · free forever
  • Offline · zero dependencies
  • Python 3.9+ · CLI and library

Example output

Try it

Try it now. No install, nothing uploaded.

This runs the real emailguesser Python package in your browser through Pyodide. The first run downloads the runtime once. After that, generating addresses stays on your device — the names you type are never sent anywhere. The one optional step that reaches the network is the Gravatar check, and only when you click it.

Try an example
Who you're looking forA first and last name, or a username.
Extra signalsOptional — each one sharpens the ranking.

Ready when you are.

Your ranked candidates will appear here.

Generation runs entirely in your browser.

EmailGuesser only generates guesses; it does not check that an address exists or who it belongs to. For OSINT research, authorised security testing and lawful outreach only.

Why EmailGuesser

People pick email addresses from a small set of habits.

EmailGuesser encodes those habits as a scored pattern table, applies them to the details you supply, and ranks the most probable addresses first.

  • Ranked, not a dump

    Every candidate gets a score from 0 to 1, so you check the top handful instead of 200 combinations. That matters when your verification step is rate-limited.

  • Private by design

    No accounts, no API keys, no network calls. The name you type never leaves your machine.

  • Real naming habits

    Modelled on how people actually pick addresses: first.last at work, a name plus a year on free-mail. It starts from every login pattern in NAMINT by The SEINT, and a test checks they're all still covered.

  • Names handled properly

    Middle names, initials, hyphenated and multi-word names, apostrophes, accents and surname particles (van der Berg) all resolve to the forms people really use.

  • Nickname, DOB and username aware

    Robert also tries bob, rob and bobby; birth years and dates become suffixes; usernames add separator variants.

  • Learns a company format

    Know one colleague's address? Pass it and that company's pattern is ranked to the top, so the right format is checked first.

Install

Run it offline in under a minute.

Pure Python, zero dependencies. The command-line tool and the library make no network calls at all.

pip (recommended)

Installs the emailguesser command and the Python library.

pip (recommended)

pip install emailguesser
emailguesser --first John --last Doe --domain acme.com --limit 5 --pretty

pipx (isolated CLI)

Keeps the emailguesser command on your PATH in its own environment.

pipx (isolated CLI)

pipx install emailguesser
emailguesser --first John --last Doe --year 1990 --format txt

With transliteration

Adds Cyrillic, Greek, Arabic and CJK transliteration for non-Latin names.

With transliteration

pip install "emailguesser[translit]"

For AI agents (MCP)

Runs a Model Context Protocol server so an agent can call EmailGuesser as a tool. Needs Python 3.10+.

For AI agents (MCP)

pip install "emailguesser[mcp]"
emailguesser-mcp

From source

For development on EmailGuesser itself.

From source

git clone https://github.com/OSINTVerseHQ/EmailGuesser.git
cd EmailGuesser
pip install -e ".[dev]"

What you can give it

You need at least a first and last name, or a username. Everything else sharpens the ranking.

  • First namewith last name, or a username
  • Middle nameenables middle-initial patterns
  • Last namehyphenated and multi-word names work
  • Usernamerepeatable; separator variants
  • Alias / nicknameextra first-name forms
  • Known emaillearns that domain's format
  • Year4 digits, 1900 to 2100
  • Date of birthISO or dmy / mdy / ymd
  • Locationcity, country; adds regional providers
  • Domainor popular free-mail providers

Usage

From the terminal, a script, or a batch file.

The CLI and the Python library share one input model and emit JSON, JSONL, CSV or a plain list of addresses.

Command line

Command line

# Everything you know about one person
emailguesser --first John --middle Michael --last Doe --username jdoe \
  --year 1990 --dob 1990-05-14 --location "Mumbai, India" \
  --domain acme.com --domain gmail.com --pretty

# Learn a company's format from one known address
emailguesser --first Jane --last Smith \
  --known-email "Bob Jones <bjones@acme.com>" --format txt

# Run a whole file of people at once
emailguesser --batch people.csv --format csv -o candidates.csv

Python library

Python library

from emailguesser import generate

result = generate(
    first_name="John",
    last_name="Doe",
    year="1990",
    domains=["acme.com", "gmail.com"],
    limit=20,
)

for item in result["emails"]:
    print(item["score"], item["email"])

Responsible use

EmailGuesser only generates guesses. It doesn't check that an address exists or who it belongs to. Use it for OSINT research, authorised security testing, lawful outreach and personal use, and never for harassment, stalking or spam. You're responsible for following the privacy, anti-spam and data-protection laws that apply to you, such as GDPR and CAN-SPAM.

Generate here, verify there

EmailGuesser gives you the shortlist. It never tells you which address is real. When you need that answer, run the top candidates through a breach lookup, account discovery or email check you're authorised to use. SearchIn does all three from one search box, priced per lookup.

See SearchIn

EmailGuesser's login patterns build on NAMINT by The SEINT (MIT licence). If you want search links for a name rather than email candidates, use NAMINT directly at seintpl.github.io/NAMINT.

FAQ

EmailGuesser, answered

Is EmailGuesser free?

Yes. EmailGuesser is free and open source under the MIT license. It needs no OSINTverse account and is never billed to a wallet. The source is on GitHub and the package is on PyPI.

Does it check whether an email address exists?

No. EmailGuesser is offline and generation-only. It ranks the addresses a person is most likely to use, but it never contacts a mail server, so it cannot confirm that an address exists or who owns it. Verify candidates with a separate tool you are authorised to run.

Does my data leave my device?

Generating addresses does not. The command-line tool and the Python library make no network calls at all. The in-browser version downloads the Python runtime once from a CDN, then runs the same package on your device — the names you type are never sent to a server. The one exception is the optional Gravatar lookup in the results: when you run it, a SHA-256 hash of each address is sent to gravatar.com to check for an account. Nothing contacts Gravatar until you ask it to.

What can I give it, and what comes back?

Give it any of a first and last name, middle name, username, alias, birth year, date of birth, location, domain, and a known address. You need at least a first and last name, or a username. It returns ranked candidates, each with an email, a pattern id, a category and a score, as JSON, JSONL, CSV or a plain list.

How does it relate to NAMINT?

EmailGuesser started from NAMINT's login patterns, so it owes that project a lot. NAMINT, by The SEINT, is a free browser tool that turns a name into login search patterns with ready-made search links, and it's the better choice when you want to search the web for a name. EmailGuesser is a Python command-line tool and library focused only on email addresses. It covers every NAMINT login pattern and adds ranking, nicknames, usernames, date of birth, location, known-format inference, de-duplication and JSON, CSV and TXT output.

Can an AI agent use it?

Yes. EmailGuesser ships a Model Context Protocol server. Install it with pip install "emailguesser[mcp]", run emailguesser-mcp, and point your agent's MCP client at the command. The agent gets a guess_emails tool and the output's JSON Schema as a resource. The same rule holds as everywhere else: it returns ranked guesses, not confirmed addresses.

Can I run it on many people at once?

Yes. Pass a JSON, JSONL or CSV file of people with --batch and it generates candidates for each in one call. A CSV just needs headers that match the input fields, for example first, last, domain.

Guess the email, then verify it with the right source.

EmailGuesser is free and open source on GitHub and PyPI. When a guess needs confirming, SearchIn runs breach, people and account sources from one search box, priced per lookup.

Quick install

Install

pip install emailguesser

MIT licensed · contributions welcome