Trackher is an open-source Python Digital Footprint & Privacy Toolkit for reviewing parts of your own digital footprint and cleaning selected local traces on your own devices. It ships with both a CLI and a GUI, and it is designed around cautious, evidence-based checks instead of aggressive or side-effectful probing.
Trackher should only be used on accounts, usernames, and devices that belong to you, or for which you have explicit permission. See ETHICS.md for the usage policy.
- CLI + GUI
- Username OSINT across public profile patterns
- Email account intelligence with verified, possible, unknown, and manual separation
- Breach exposure checks through Have I Been Pwned
- Search engine dorks for manual investigation
- Local cleanup tools for shell history, browser traces, and system caches
- Best-effort secure deletion for files and directories
- HTML and JSON reporting
- Risk scoring, scan history, remediation actions, identity correlation, and platform health
- Dry-run support before any destructive action
- Windows, macOS, and Linux support
- Scheduled cleanup support for Windows Task Scheduler, macOS
launchd, and Linuxcron
Trackher is intentionally conservative.
- Risky account checks that may trigger password resets, OTP messages, sign-in notices, or other side effects are skipped.
- Destructive actions require either
--dry-run, interactive confirmation, or an explicit--yesflag. - Critical system paths, user root paths, and protected exclusions are blocked from bulk deletion.
- HTML reports escape dynamic values and reject unsafe links.
- Local scan history and platform health state stay on the local machine.
- Username scan across 197 platforms
- Email OSINT with a catalog of 110 services
- Only a small side-effect-free subset is automatically checkable today
- Automatic email checks currently include Gravatar, GitLab, and GitHub
- Search engine dork generation for manual investigation
Email results are separated as:
FOUND: verified passive evidenceNOT_FOUND: reliably checked and absentPOSSIBLE: heuristic evidence onlyUNKNOWN: inconclusive or errorMANUAL: no safe automatic check is available
Have I Been Pwned is kept separate under Breaches and uses HIBP_API_KEY
when configured.
Use --profile to choose how broad a scan should be.
quick: verified and high-confidence checks onlystandard: current default behaviordeep: currently matchesstandard; reserved for broader coverageusername-only: run username OSINT onlyemail-only: run email OSINT only
Trackher stores normalized local snapshots and compares each scan against the previous matching scan.
- Use
--no-historyto disable storage and diffing for a run - Use
--clear-historyto remove local history data - If two scans use different profiles, Trackher warns that diff coverage differs
Trackher can group public findings that may belong to the same digital identity. This is probabilistic, not certain, and it is based only on public signals such as the same username, display name, avatar hash, linked website/domain, or matching public profile metadata.
Trackher includes an explainable Digital Footprint Risk Score from 0 to 100.
- Levels:
LOW,MEDIUM,HIGH,CRITICAL - The score is based only on scan evidence
- Verified findings contribute more than heuristic or unreliable findings
MANUAL,UNKNOWN, andERRORdo not increase the score- Breaches contribute to risk
- Category caps prevent one finding type from dominating
- The score is not a scientific measurement or a security guarantee
Trackher can check platform and detector health separately from normal scans.
--health-checkruns offline schema and catalog validation--health-check-liveadds optional safe live probes where supported- Health data is cached locally and does not affect normal scan behavior
When Trackher finds an exposure, it can show official user-facing links for privacy settings, account security, data export, deletion help, or profile pages. It never automates those actions.
- Shell and terminal history cleanup
- Browser cache and selected browser trace cleanup
- Cross-platform system temp and cache cleanup
- Exclusion list support through JSON config
- Best-effort overwrite and delete for files
- Recursive directory shredding
- Symlink and critical-path protections
- Secure deletion is still best-effort on SSD, copy-on-write, journaled, or network-backed file systems
- Python 3.10 or newer
- Internet connection for OSINT features
- Tk support for the GUI
If Tk is missing on Debian or Ubuntu:
sudo apt install python3-tkMain runtime dependencies: rich, httpx, customtkinter, Pillow
Windows PowerShell:
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python main.pymacOS / Linux:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python main.pyRunning python main.py with no arguments launches the GUI if GUI
dependencies are available. Passing arguments runs the CLI mode.
python -m pip install .
trackher --version
trackher --username example_userThe packaging workflow produces a standalone Windows bundle that launches the GUI on double-click and also supports CLI arguments:
.\Trackher.exe
.\Trackher.exe --username example_userpython main.py --email analyst@example.comEmail Account Discovery
Verified Accounts
✓ Gravatar
Possible Accounts
~ GitHub - Public profile email matched exactly (exampleuser)
Breaches
! Have I Been Pwned: NOT CONFIGURED
Manual Investigation
Most remaining services require manual review.
Use --show-manual to display them.
python main.py --email analyst@example.com --show-manual --search-dorkEmail Account Discovery
Verified Accounts
✓ Gravatar
Possible Accounts
~ GitHub - Public profile email matched exactly (exampleuser)
Manual Investigation
> Figma
> Notion
> Trello
...
Breaches
! Have I Been Pwned: NOT CONFIGURED
python main.py --username example_user --search-dork[INFO] Taraniyor: example_user
[+] Found on 3/197 platforms: Reddit, GitLab, Medium
[?] 4 platform checks could not be verified
[INFO] Google, Bing, DuckDuckGo, and Yandex dorks generated
python main.py --username example_user[INFO] Taraniyor: example_user
[+] Found on 2/197 platforms: Reddit, Medium
[?] 3 platform checks could not be verified
python main.py --clean-all --dry-run
python main.py --clean-all --yes
python main.py --clean-browser --clean-system --dry-runpython main.py --clean-all --dry-run --exclude exclusions.example.jsonpython main.py --shred /path/to/file --dry-run
python main.py --shred /path/to/file --yespython main.py --schedule weekly --dry-run
python main.py --schedule weekly --yesTrackher can generate reports in HTML or JSON:
python main.py --email analyst@example.com --report html
python main.py --email analyst@example.com --report json
python main.py --username example_user --report html
python main.py --username example_user --report jsonGenerated report filenames follow this pattern:
trackher_report_html.htmltrackher_report_json.json
These files are already ignored by .gitignore.
Reported vulnerabilities are handled through the disclosure process described in SECURITY.md.
Have I Been Pwned support is optional. Without HIBP_API_KEY, Trackher keeps
running and reports NOT CONFIGURED for that provider.
PowerShell:
$env:HIBP_API_KEY = "<key>"macOS / Linux:
export HIBP_API_KEY="<key>"--show-manual: reveal manual email services in the console output--no-history: skip local scan history storage and diffing--clear-history: remove local scan history--health-check: run offline catalog and schema health checks--health-check-live: add safe live health probes where supported--profile quick|standard|deep|username-only|email-only: choose scan breadth
| Feature | Windows | macOS | Linux |
|---|---|---|---|
| GUI | Yes | Yes | Yes |
| CLI | Yes | Yes | Yes |
| OSINT | Yes | Yes | Yes |
| Cleanup | Yes | Yes | Yes |
| Scheduling | Yes | Yes | Yes |
| Context menu helper | Yes | No | Limited |
python -m pip check
python -m compileall -q footprint osint utils gui.py main.py setup_context_menu.py
python -m unittest discover -s tests -vThe project includes automated tests for:
- Cross-platform cleanup path selection
- Safe deletion and exclusion handling
- HTML report escaping
- Non-interactive destructive action protection
- Username detection rules
- Email status grouping and HIBP configuration handling
- GUI queue and terminal memory behavior
- CONTRIBUTING.md: contribution workflow
- SECURITY.md: security disclosure policy
- ETHICS.md: acceptable use policy
- CHANGELOG.md: release history
- CODE_OF_CONDUCT.md: community expectations
- Secure deletion is best-effort and cannot guarantee physical overwrite on SSD, copy-on-write, journaled, compressed, or network-backed file systems.
- OSINT results can change as services update their behavior, anti-bot rules, or public endpoints.
- Identity correlation is probabilistic and should not be treated as proof of identity or account ownership.
- Risk scores are explainable heuristics, not scientific or security guarantees.
This project is released under the MIT License. See LICENSE.

