STYX is a lightweight URL scanning toolkit powered by the VirusTotal API.
It provides a premium Streamlit dashboard and an interactive CLI menu to quickly classify URLs as:
โ
SAFE โข
- โจ Key Features
- ๐ Installation
- ๐ฎ Usage
- CLI (Interactive Menu)
- Dashboard (Streamlit)
- ๐ Project Structure
- ๐ Security Notes
- ๐ License
- ๐ Full scan: submits a URL to VirusTotal and waits for the analysis result
- โก Quick report: fetches the last known VirusTotal report for a URL
- ๐งพ Local history stored in
data/history.json - ๐ Reports
- Download HTML report (Dashboard)
- Generate HTML + JSON reports (CLI)
- Export full history as JSON
- ๐ Analytics tab: verdict distribution + basic stats
- ๐ง Clean UX
- Interactive CLI menu
- Modern UI dashboard with tabs (Scan / Reports / Analytics)
git clone https://github.com/yasserbouchaal/styx-url-scanner.git
cd styx-url-scannerpython3 -m venv .venvsource .venv/bin/activatepip install -r requirements.txtDebian/Ubuntu (if venv is missing)
sudo apt update
sudo apt install -y python3-venv python3-pipcp .env.example .envEdit .env and paste your key:
VT_API_KEY=YOUR_VIRUSTOTAL_API_KEYโ
.env is ignored by Git (your key won't be pushed).
Run:
python styx_cli.pyCLI actions:
- Full scan (submit + wait)
- Quick report (last known scan)
- Show history
- Generate reports (HTML + JSON)
Reports generated by the CLI are saved in: reports/
Run locally:
streamlit run app/dashboard.pyRun on a server:
streamlit run app/dashboard.py --server.address 0.0.0.0 --server.port 8501Open in your browser:
http://SERVER_IP:8501
styx-url-scanner/
โโ styx_cli.py # Interactive CLI menu
โโ app/
โ โโ dashboard.py # Streamlit dashboard
โโ core/
โ โโ virustotal_client.py # VirusTotal API client
โ โโ url_tools.py # URL normalization + VT URL id
โ โโ history_store.py # History (data/history.json)
โ โโ report_generator.py # HTML/JSON report generator
โโ data/
โโ reports/
โโ assets/
โโ requirements.txt
- Do NOT commit your API key. Keep it only in
.env. - VirusTotal has rate limits. If you hit HTTP 429, retry later or use Quick report.
- This tool is intended for defensive analysis and authorized use only.
This project is licensed under the MIT License.
Author: Yasser BOUCHAAL
