whoseeme
See what a stranger could link to you.
You give it your usernames. It checks ~840 sites, you pick out the accounts that are actually yours, and it shows what ties them together: the same profile picture, a bio that links to another account, your real name in a title, the same handle everywhere. For each account it links the page where you can delete it.
It runs entirely on your computer. Your usernames go only to the sites being checked, from your own connection. Nothing is uploaded, stored, or shared.
pip install whoseeme
whoseeme
That opens the app in your browser.
How it works
- Scan. Your usernames are checked across the site catalogue of Aliens Eye, the engine this is built on.
- You confirm. A common username matches hundreds of accounts belonging to other people, so a search result is not your exposure. You mark one or two accounts you know are yours.
- It follows the evidence. From those accounts it traces only concrete links
to others on different services:
- same picture: near-identical images with enough detail to be a real photo, not a site logo
- bio links: one profile links to another
- mentions: one profile @-mentions another handle of yours
- same name: an identical name that looks like a real person's
- Report. Findings by severity, how each account connects to the others, and deletion instructions per account. It exports to HTML or JSON.
There is no single "privacy score". One number would imply more precision than a handful of heuristics has, so you get the concrete findings instead.
Headless
whoseeme audit yourhandle --anchor https://github.com/yourhandle --html report.html
--anchor is a profile URL you know is yours. Repeat it for several.
Limits, honestly
- Detection is imperfect. The scanner favours fewer false leads over catching every account: on sites it was never trained on, about 9% of absent accounts still show up as found, and about half of real accounts are missed. The "not linked to you" list will contain other people's accounts.
- The rules are heuristics. "Looks like a real name" is a guess from its shape. Phone-number detection is a pattern match.
- This is the same capability as any username search tool. Calling it a self-audit doesn't stop someone pointing it at another person, and this README won't pretend it does. It adds nothing a determined person couldn't already do with existing tools; its purpose is to show you your own exposure first.
Security
The app is a local web server, and any page you visit can send requests to
localhost. So it listens on 127.0.0.1 only, rejects requests whose Host
isn't its own address (which blocks DNS rebinding), requires a random token minted
at startup on every API call, and sets a strict Content-Security-Policy. Text from
scanned pages is always rendered as inert text. Avatar images are only fetched
from public addresses and are never shown in the browser, so opening your report
doesn't notify anyone.
Credits
Account-deletion guidance comes from JustDeleteMe
(MIT); see src/whoseeme/data/LICENSE-JDM. Refresh it with
python scripts/update_jdm.py.
License
MIT
Metadata
Release files for whoseeme 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| whoseeme-0.1.0.tar.gz | 223.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| whoseeme-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 456.3 kB
Release files / whoseeme-0.1.0.tar.gz
| Download URL | whoseeme-0.1.0.tar.gz |
|---|---|
| Size | 223.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8f909e770f6584925e0503bad54cca49d2c9fa032b80c6c50d1dfce8a64934d4
|
|
BLAKE2b-256 checksum How to use checksums |
52396fc66423ebd9d31e132d11f5ecbf8203abc806a3cf02b2d5e0e15915ca38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / whoseeme-0.1.0-py3-none-any.whl
| Download URL | whoseeme-0.1.0-py3-none-any.whl |
|---|---|
| Size | 232.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2473c6944d575114f6085791539ffaecefb7aa1d2165b868f69e3abcb17e3781
|
|
BLAKE2b-256 checksum How to use checksums |
73c9f138b8e9c8482535f4c2250119e83676de4feb43641920579632b44c96a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency log