44
55# Trackher
66
7- Trackher is an open-source Python application for reviewing parts of your own
8- digital footprint and cleaning selected local traces on your own devices.
9- It ships with both a GUI and a CLI, and it is designed around cautious,
10- evidence-based checks instead of aggressive or side-effectful probing.
11-
12- > Trackher should only be used on accounts, email addresses, usernames, and
13- > devices that belong to you, or for which you have explicit permission. See
7+ Trackher is an open-source Python Digital Footprint & Privacy Toolkit for
8+ reviewing parts of your own digital footprint and cleaning selected local
9+ traces on your own devices. It ships with both a CLI and a GUI, and it is
10+ designed around cautious, evidence-based checks instead of aggressive or
11+ side-effectful probing.
12+
13+ > Trackher should only be used on accounts, usernames, and devices that belong
14+ > to you, or for which you have explicit permission. See
1415> [ ETHICS.md] ( ETHICS.md ) for the usage policy.
1516
1617## Why Trackher
1718
18- - Evidence-based email and username OSINT
19+ - CLI + GUI
20+ - Username OSINT across public profile patterns
21+ - Email account intelligence with verified, possible, unknown, and manual separation
22+ - Breach exposure checks through Have I Been Pwned
23+ - Search engine dorks for manual investigation
1924- Local cleanup tools for shell history, browser traces, and system caches
2025- Best-effort secure deletion for files and directories
2126- HTML and JSON reporting
27+ - Risk scoring, scan history, remediation actions, identity correlation, and platform health
2228- Dry-run support before any destructive action
2329- Windows, macOS, and Linux support
2430- Scheduled cleanup support for Windows Task Scheduler, macOS ` launchd ` , and Linux ` cron `
@@ -34,18 +40,80 @@ Trackher is intentionally conservative.
3440- Critical system paths, user root paths, and protected exclusions are blocked
3541 from bulk deletion.
3642- HTML reports escape dynamic values and reject unsafe links.
43+ - Local scan history and platform health state stay on the local machine.
3744
3845## Features
3946
4047### OSINT
4148
4249- Username scan across 197 platforms
43- - Email catalog with 110 services
44- - Up to 2 side-effect-free automatic email checks (` Gravatar ` avatar existence
45- via its documented ` d=404 ` behavior, and ` Have I Been Pwned ` breach lookup
46- via the official API v3 when ` HIBP_API_KEY ` is set)
50+ - Email OSINT with a catalog of 110 services
51+ - Only a small side-effect-free subset is automatically checkable today
52+ - Automatic email checks currently include Gravatar, GitLab, and GitHub
4753- Search engine dork generation for manual investigation
48- - Optional Have I Been Pwned API v3 support through ` HIBP_API_KEY `
54+
55+ Email results are separated as:
56+
57+ - ` FOUND ` : verified passive evidence
58+ - ` NOT_FOUND ` : reliably checked and absent
59+ - ` POSSIBLE ` : heuristic evidence only
60+ - ` UNKNOWN ` : inconclusive or error
61+ - ` MANUAL ` : no safe automatic check is available
62+
63+ ` Have I Been Pwned ` is kept separate under ` Breaches ` and uses ` HIBP_API_KEY `
64+ when configured.
65+
66+ ### Scan Profiles
67+
68+ Use ` --profile ` to choose how broad a scan should be.
69+
70+ - ` quick ` : verified and high-confidence checks only
71+ - ` standard ` : current default behavior
72+ - ` deep ` : currently matches ` standard ` ; reserved for broader coverage
73+ - ` username-only ` : run username OSINT only
74+ - ` email-only ` : run email OSINT only
75+
76+ ### Scan History + Diff
77+
78+ Trackher stores normalized local snapshots and compares each scan against the
79+ previous matching scan.
80+
81+ - Use ` --no-history ` to disable storage and diffing for a run
82+ - Use ` --clear-history ` to remove local history data
83+ - If two scans use different profiles, Trackher warns that diff coverage differs
84+
85+ ### Identity Correlation
86+
87+ Trackher can group public findings that may belong to the same digital identity.
88+ This is probabilistic, not certain, and it is based only on public signals such
89+ as the same username, display name, avatar hash, linked website/domain, or
90+ matching public profile metadata.
91+
92+ ### Risk Score
93+
94+ Trackher includes an explainable Digital Footprint Risk Score from ` 0 ` to ` 100 ` .
95+
96+ - Levels: ` LOW ` , ` MEDIUM ` , ` HIGH ` , ` CRITICAL `
97+ - The score is based only on scan evidence
98+ - Verified findings contribute more than heuristic or unreliable findings
99+ - ` MANUAL ` , ` UNKNOWN ` , and ` ERROR ` do not increase the score
100+ - Breaches contribute to risk
101+ - Category caps prevent one finding type from dominating
102+ - The score is not a scientific measurement or a security guarantee
103+
104+ ### Platform / Detector Health
105+
106+ Trackher can check platform and detector health separately from normal scans.
107+
108+ - ` --health-check ` runs offline schema and catalog validation
109+ - ` --health-check-live ` adds optional safe live probes where supported
110+ - Health data is cached locally and does not affect normal scan behavior
111+
112+ ### Remediation / Privacy Actions
113+
114+ When Trackher finds an exposure, it can show official user-facing links for
115+ privacy settings, account security, data export, deletion help, or profile
116+ pages. It never automates those actions.
49117
50118### Cleanup
51119
@@ -59,6 +127,8 @@ Trackher is intentionally conservative.
59127- Best-effort overwrite and delete for files
60128- Recursive directory shredding
61129- Symlink and critical-path protections
130+ - Secure deletion is still best-effort on SSD, copy-on-write, journaled, or
131+ network-backed file systems
62132
63133## Requirements
64134
@@ -78,7 +148,9 @@ Main runtime dependencies: `rich`, `httpx`, `customtkinter`, `Pillow`
78148
79149## Installation
80150
81- ### Windows PowerShell
151+ ### Developer source run
152+
153+ Windows PowerShell:
82154
83155``` powershell
84156py -3 -m venv .venv
@@ -88,7 +160,7 @@ python -m pip install -r requirements.txt
88160python main.py
89161```
90162
91- ### macOS / Linux
163+ macOS / Linux:
92164
93165``` bash
94166python3 -m venv .venv
@@ -101,37 +173,93 @@ python main.py
101173Running ` python main.py ` with no arguments launches the GUI if GUI
102174dependencies are available. Passing arguments runs the CLI mode.
103175
176+ ### Installed CLI
177+
178+ ``` bash
179+ python -m pip install .
180+ trackher --version
181+ trackher --username example_user
182+ ```
183+
184+ ### Windows packaged build
185+
186+ The packaging workflow produces a standalone Windows bundle that launches the
187+ GUI on double-click and also supports CLI arguments:
188+
189+ ``` powershell
190+ .\Trackher.exe
191+ .\Trackher.exe --username example_user
192+ ```
193+
104194## Quick Start
105195
106- ### Email and username checks
196+ ### Email checks
107197
108198``` bash
109- python main.py --email user @example.com
199+ python main.py --email analyst @example.com
110200```
111201
112202``` text
113- [INFO] Scanning: user@example.com
114- [+] Found on 1/110 services: Gravatar
115- [?] 1 result could not be verified: Have I Been Pwned
203+ Email Account Discovery
204+
205+ Verified Accounts
206+ ✓ Gravatar
207+
208+ Possible Accounts
209+ ~ GitHub - Public profile email matched exactly (exampleuser)
210+
211+ Breaches
212+ ! Have I Been Pwned: NOT CONFIGURED
213+
214+ Manual Investigation
215+ Most remaining services require manual review.
216+ Use --show-manual to display them.
116217```
117218
118219``` bash
119- python main.py --username example_user
220+ python main.py --email analyst@example.com --show-manual --search-dork
221+ ```
222+
223+ ``` text
224+ Email Account Discovery
225+
226+ Verified Accounts
227+ ✓ Gravatar
228+
229+ Possible Accounts
230+ ~ GitHub - Public profile email matched exactly (exampleuser)
231+
232+ Manual Investigation
233+ > Figma
234+ > Notion
235+ > Trello
236+ ...
237+
238+ Breaches
239+ ! Have I Been Pwned: NOT CONFIGURED
240+ ```
241+
242+ ### Username checks
243+
244+ ``` bash
245+ python main.py --username example_user --search-dork
120246```
121247
122248``` text
123- [INFO] Scanning : example_user
249+ [INFO] Taraniyor : example_user
124250[+] Found on 3/197 platforms: Reddit, GitLab, Medium
125251[?] 4 platform checks could not be verified
252+ [INFO] Google, Bing, DuckDuckGo, and Yandex dorks generated
126253```
127254
128255``` bash
129- python main.py --email user@example.com --search-dork
256+ python main.py --username example_user
130257```
131258
132259``` text
133- [INFO] Generated search links for: user@example.com
134- [+] Google, Bing, DuckDuckGo, and Yandex dorks ready
260+ [INFO] Taraniyor: example_user
261+ [+] Found on 2/197 platforms: Reddit, Medium
262+ [?] 3 platform checks could not be verified
135263```
136264
137265### Cleanup preview and execution
@@ -167,39 +295,47 @@ python main.py --schedule weekly --yes
167295Trackher can generate reports in HTML or JSON:
168296
169297``` bash
170- python main.py --email user@example.com --report html
298+ python main.py --email analyst@example.com --report html
299+ python main.py --email analyst@example.com --report json
300+ python main.py --username example_user --report html
171301python main.py --username example_user --report json
172302```
173303
174304Generated report filenames follow this pattern:
175305
176- - ` footprint_report_html .html`
177- - ` footprint_report_json .json`
306+ - ` trackher_report_html .html`
307+ - ` trackher_report_json .json`
178308
179309These files are already ignored by ` .gitignore ` .
180310
181- ## HIBP API Support
311+ Reported vulnerabilities are handled through the disclosure process described in
312+ [ SECURITY.md] ( SECURITY.md ) .
313+
314+ ## HIBP API Key
182315
183- Have I Been Pwned requests use the official API v3 and require an API key.
316+ Have I Been Pwned support is optional. Without ` HIBP_API_KEY ` , Trackher keeps
317+ running and reports ` NOT CONFIGURED ` for that provider.
184318
185- ### PowerShell
319+ PowerShell:
186320
187321``` powershell
188- $env:HIBP_API_KEY="your-api- key"
322+ $env:HIBP_API_KEY = "< key> "
189323```
190324
191- ### Bash
325+ macOS / Linux:
192326
193327``` bash
194- export HIBP_API_KEY=" your-api- key"
328+ export HIBP_API_KEY=" < key> "
195329```
196330
197- If ` HIBP_API_KEY ` is not set, Trackher will not send the HIBP request.
198- Do not commit API keys, screenshots containing keys, or generated reports with
199- sensitive data.
331+ ## Common Flags
200332
201- Reported vulnerabilities are handled through the disclosure process described in
202- [ SECURITY.md] ( SECURITY.md ) .
333+ - ` --show-manual ` : reveal manual email services in the console output
334+ - ` --no-history ` : skip local scan history storage and diffing
335+ - ` --clear-history ` : remove local scan history
336+ - ` --health-check ` : run offline catalog and schema health checks
337+ - ` --health-check-live ` : add safe live health probes where supported
338+ - ` --profile quick|standard|deep|username-only|email-only ` : choose scan breadth
203339
204340## Platform Support
205341
@@ -226,7 +362,8 @@ The project includes automated tests for:
226362- Safe deletion and exclusion handling
227363- HTML report escaping
228364- Non-interactive destructive action protection
229- - Username and email detection rules
365+ - Username detection rules
366+ - Email status grouping and HIBP configuration handling
230367- GUI queue and terminal memory behavior
231368
232369## Repository Guide
@@ -243,7 +380,9 @@ The project includes automated tests for:
243380 copy-on-write, journaled, compressed, or network-backed file systems.
244381- OSINT results can change as services update their behavior, anti-bot rules,
245382 or public endpoints.
246- - A positive result should not be treated as sole proof of identity or account ownership.
383+ - Identity correlation is probabilistic and should not be treated as proof of
384+ identity or account ownership.
385+ - Risk scores are explainable heuristics, not scientific or security guarantees.
247386
248387## License
249388
0 commit comments