Asynchronous username hunter with historical diff tracking across social platforms.
Project description
Argis 👁️
The all-seeing username scanner.
Argis hunts down a username across dozens of platforms concurrently, tells you where it's registered, and — unlike most tools in this space — tracks how that footprint changes over time.
Named after Argus, the hundred-eyed giant of Greek myth: one scan, every platform, watched at once.
Features
- Async everything. Built on
httpx+asyncio; scans 80+ sites in parallel instead of one at a time. - Diff engine.
--diffcompares the current scan against your last saved run and shows exactly what got registered or deleted. - False-positive resistant. Detection rules per site (status code, page-text match, or redirect-URL match) instead of blindly trusting a 200 OK.
- Pretty terminal UI. Live progress bar and color-coded results via
rich. - Exportable.
--export csv|json|markdownfor piping into other tools. - Proxy / Tor support. Route scans through a proxy or local Tor.
Install
# From source, editable (for development):
pip install -e .
# Or with pipx (recommended once published):
pipx install argis
Requires Python 3.10+.
Usage
# Basic scan
argis scan john_doe
# Scan and compare against the last saved run
argis scan john_doe --diff
# Don't save this run to history
argis scan john_doe --no-save
# Export results
argis scan john_doe --export markdown -o john_doe_report.md
# Route through Tor
argis scan john_doe --tor
# View past scans
argis history john_doe
# Wipe saved history
argis clear-history john_doe
How detection works
Each entry in src/argis/sites.json defines a URL template plus a rule for
recognizing a "not found" response:
error_type |
Meaning |
|---|---|
status_code |
Account doesn't exist if the response status matches error_criteria |
message |
Account doesn't exist if error_criteria text appears in the HTML |
response_url |
Account doesn't exist if the final (post-redirect) URL matches |
Add your own targets by editing sites.json — no code changes required.
History storage
Scan history is stored per-username as JSON at
~/.argis/history/<username>.json. Each file holds a bounded list of past
snapshots (newest last), which is what --diff and argis history read
from.
Project layout
argis/
├── pyproject.toml
├── src/argis/
│ ├── cli.py # typer commands
│ ├── core.py # async scanning engine
│ ├── diff.py # history storage + diff computation
│ ├── exceptions.py
│ ├── sites.json # target platforms + detection rules
│ └── utils/
│ ├── display.py # rich UI
│ ├── network.py # httpx client, UA rotation, proxy/Tor
│ └── export.py # csv/json/markdown export
└── tests/
Disclaimer
Use responsibly. Only look up usernames you have a legitimate reason to investigate, and respect the terms of service of the sites you query.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file argis-0.1.0.tar.gz.
File metadata
- Download URL: argis-0.1.0.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53ade0d28d0113a36fee8f2d73e1aa744222b1feadaa24698be880a0f5fcef33
|
|
| MD5 |
17df606e19616d9f6ca298d341334a27
|
|
| BLAKE2b-256 |
b839d705660f3f34b8f9116ebdeab9a6ce1477e50f7d2171129080dd58ce15cc
|
File details
Details for the file argis-0.1.0-py3-none-any.whl.
File metadata
- Download URL: argis-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
664e531663ef93f7f27ea5aa1599c5cac0d0a432d7530108a7e744ff17a4ce39
|
|
| MD5 |
716cb68a1401fff772d4b7f1640e1339
|
|
| BLAKE2b-256 |
5621f0b8635eb1a0b1e03d22b94a08ce9d9f106bf6aade42b528b95dede1b6c6
|