Skip to main content

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. --diff compares 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|markdown for 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

argis-0.1.0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

argis-0.1.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

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

Hashes for argis-0.1.0.tar.gz
Algorithm Hash digest
SHA256 53ade0d28d0113a36fee8f2d73e1aa744222b1feadaa24698be880a0f5fcef33
MD5 17df606e19616d9f6ca298d341334a27
BLAKE2b-256 b839d705660f3f34b8f9116ebdeab9a6ce1477e50f7d2171129080dd58ce15cc

See more details on using hashes here.

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

Hashes for argis-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 664e531663ef93f7f27ea5aa1599c5cac0d0a432d7530108a7e744ff17a4ce39
MD5 716cb68a1401fff772d4b7f1640e1339
BLAKE2b-256 5621f0b8635eb1a0b1e03d22b94a08ce9d9f106bf6aade42b528b95dede1b6c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page