Skip to main content

🕵️‍♂️ WhatsApp Beacon (OSINT Tracker)

PyPI License Python Platform

WhatsApp Beacon tracks when specific WhatsApp contacts go online and stores every completed session in SQLite. It can export to Excel, generate a polished analytics dashboard, and run fully headless once the session is authenticated.

Disclaimer: This tool is for educational and research purposes only. Do not use it for stalking or any illegal activities.


✨ Features

  • PyPI install: pip install whatsapp-osint gets you the package fast.
  • One-command installer: clone, create a local .venv, install the package, and verify the browser setup.
  • Best-effort Linux bootstrap: if Git, Python, or Chrome/Chromium are missing, the installer will try to install them with sudo.
  • Automated browser driver resolution: Selenium Manager handles matching drivers, with manual override flags if you need them.
  • Headless tracking: authenticate once, then run quietly in the background.
  • SQLite session history: every finished online session is stored locally.
  • Excel export: turn the database into History_wp.xlsx.
  • Advanced analytics dashboard: generate a static HTML report with filters, heatmaps, leaderboards, and recent-session views.

🚀 Installation

Install from PyPI

python3 -m pip install whatsapp-osint

The package installs 2 equivalent entry points:

  • whatsapp-osint
  • whatsapp-beacon

One-click installer from GitHub

curl -fsSL https://raw.githubusercontent.com/jasperan/whatsapp-osint/master/install.sh | bash

What it does:

  • clones or updates the repo into ./whatsapp-osint
  • creates ./whatsapp-osint/.venv
  • installs the package and the whatsapp-beacon command
  • on Linux, uses sudo when needed to install missing system packages and Chrome/Chromium
  • verifies that a browser binary is available before it finishes

If you want a custom location:

PROJECT_DIR=/opt/whatsapp-osint curl -fsSL https://raw.githubusercontent.com/jasperan/whatsapp-osint/master/install.sh | bash
Manual / development install

Use this only if you explicitly want to manage setup yourself.

git clone https://github.com/jasperan/whatsapp-osint.git
cd whatsapp-osint
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
python -m pip install -e ".[dev]"

▶️ Run it

If you installed from PyPI:

whatsapp-osint -u "John Doe"

whatsapp-osint and whatsapp-beacon run the same CLI. The rest of the examples keep using whatsapp-beacon.

If you used the GitHub installer:

cd whatsapp-osint
source .venv/bin/activate
whatsapp-beacon -u "John Doe"

If you do not want to activate the venv first:

./whatsapp-osint/.venv/bin/whatsapp-beacon -u "John Doe"

First run

The first run must authenticate with WhatsApp Web.

  • Non-headless is the easiest path. Scan the QR code once, then the saved browser profile will be reused.
  • Headless also works. If the session is not authenticated yet, the tool will save a QR screenshot to qrcode.png.

Example:

whatsapp-beacon -u "Maria" --headless

📊 Advanced analytics

Generate a static HTML dashboard from the collected SQLite history:

whatsapp-beacon --analytics

By default, the report is written to:

analytics/index.html

Custom output path:

whatsapp-beacon --analytics --analytics-output reports/contact-dashboard.html

Once generated, open it in your browser:

xdg-open analytics/index.html
# or on macOS
open analytics/index.html

The dashboard includes:

  • top-level KPIs
  • per-contact leaderboard
  • daily online-time bars
  • weekday/hour heatmap
  • duration distribution
  • recent sessions and longest sessions tables
  • live filtering by contact inside the page

🖼️ Screenshots

First-run WhatsApp Web authentication flow

First-run WhatsApp Web authentication

Advanced analytics dashboard overview

Captured from a demo dataset generated through the built-in analytics exporter.

Analytics dashboard overview

Advanced analytics dashboard filtered to a single contact

Same dashboard, narrowed to one contact to show the live filter state.

Analytics dashboard filtered view


⚙️ Command line arguments

Argument Description Default
-u, --username Exact WhatsApp contact name to track. Required for tracking
-l, --language WhatsApp Web language code (en, es, fr, etc.). en
-e, --excel Export the database to Excel before doing anything else. False
--headless Run without a visible browser window. False
--chrome-driver-path Explicit path to chromedriver. Auto-detect
--chrome-binary-path Explicit path to Chrome or Chromium. Auto-detect
--analytics Generate the analytics dashboard and exit. False
--analytics-output Output path for the analytics HTML report. analytics/index.html
--config Path to a custom config file. config.yaml

⚙️ Configuration

You can keep defaults in config.yaml:

username: "Target Name"
language: "en"
headless: false
excel: false
browser: "chrome"
log_level: "INFO"
data_dir: "data"
chrome_binary_path: null

📦 Output

  • Logs: logs/whatsapp_beacon.log
  • Database: data/victims_logs.db
  • Excel export: History_wp.xlsx
  • Analytics report: analytics/index.html by default
  • Saved WhatsApp profile: data/chrome_profile

🔧 Troubleshooting

cannot find Chrome binary

The installer now tries to fix this automatically on Linux. If your distro keeps the browser in a weird place, launch with an explicit path:

whatsapp-beacon -u "John Doe" --chrome-binary-path /full/path/to/browser

Useful checks:

which google-chrome google-chrome-stable chromium chromium-browser
whatsapp-beacon --help

Username is required

Tracking mode needs a contact name:

whatsapp-beacon -u "John Doe"

Analytics mode does not:

whatsapp-beacon --analytics

🤝 Contributing

Contributions are welcome. Fork it, build what you need, and send a PR.


📜 License

Distributed under the MIT License. See LICENSE for more information.

🙌 Credits

Original concept developed in 2019. Revamped in 2025 for better performance and usability.


GitHub  LinkedIn

Metadata

Release files for whatsapp-osint 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for whatsapp-osint 2.0.1
File Size Uploaded Provenance Actions
whatsapp_osint-2.0.1.tar.gz 26.7 kB Without provenance Details for whatsapp_osint-2.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for whatsapp-osint 2.0.1
File Interpreter ABI Platform Actions
whatsapp_osint-2.0.1-py3-none-any.whl Python 3 none any Details for whatsapp_osint-2.0.1-py3-none-any.whl

Total release size: 51.0 kB

Release files / whatsapp_osint-2.0.1.tar.gz

Download URL whatsapp_osint-2.0.1.tar.gz
Size 26.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f3cd3ab2337331fa9a73f78497de063ba0d25048937ee59672be1ef923cacbd8
BLAKE2b-256 checksum
How to use checksums
1a1797b150b20cd043b823da03f058ddd731c782051593940d7e7df45a04dead
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.2

Release files / whatsapp_osint-2.0.1-py3-none-any.whl

Download URL whatsapp_osint-2.0.1-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1aff7e518cf0fb23acc1c4fe09dd9817147f1d2670e122c3289318a4cfeb46e8
BLAKE2b-256 checksum
How to use checksums
ab1a94a8cf585e8c411ed59fd6fe880a9263797ccf62713b207f4d2e2b3fd10e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.2

Security for whatsapp-osint 2.0.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page