Username intelligence across 13+ platforms with confidence scoring, proxy support, and headless browser rendering.
██████ ████████ █████ ██ ██ ██ ██ ███████
██ ██ ██ ██ ██ ██ ██ ██ ██
█████ ██ ███████ ██ █████ ██ █████
██ ██ ██ ██ ██ ██ ██ ██ ██
██████ ██ ██ ██ ███████ ██ ██ ██ ███████
<script> blocks before analysis, eliminating false negatives caused by JS bundles on platforms like YouTube and TikTokgo-rod for sites that don't work with plain HTTP127.0.0.1:9050)git clone https://github.com/ashendilantha/stalkie
cd stalkie
go build -o stalkie .
Requires Go 1.21+. Browser mode auto-downloads Chromium on first use.
# Single username
./stalkie -u torvalds
# Bulk usernames from file
./stalkie -f usernames.txt
# Headless browser mode (for JS-heavy sites)
./stalkie -u torvalds -browser
# Route through Tor
./stalkie -u torvalds -proxy tor
# Export results
./stalkie -u torvalds -csv results.csv -json results.json
| Flag | Default | Description |
|---|---|---|
-u |
— | Single username to search |
-f |
— | Text file with one username per line |
-sites |
sites.json |
Sites database file |
-w |
20 |
Concurrent workers |
-rate |
50 |
Delay between requests (ms) |
-retries |
2 |
Max retries on network failure |
-timeout |
10 |
Request timeout (seconds) |
-proxy |
none |
Proxy type: none, http, socks5, tor |
-proxy-addr |
— | Proxy address (e.g. 127.0.0.1:9050) |
-min-score |
50 |
Minimum confidence score to report as found |
-browser |
false |
Use headless browser for JS-heavy sites |
-o |
— | Save results as .txt |
-csv |
— | Save results as .csv |
-json |
— | Save results as .json |
Each result is scored based on four signals:
| Signal | Points |
|---|---|
| HTTP 200 / no error message detected | +40 |
Page <title> contains the username |
+35 |
| Username appears ≥ 2 times in page body | +15 |
| Site-specific weight bonus | up to +10 |
Results below --min-score (default 50) are suppressed. Raise it to reduce false positives; lower it to catch weak matches.
Edit sites.json to add platforms without touching source code:
{
"name": "Example",
"url": "https://example.com/{}",
"errorType": "message",
"errorMsg": "User not found",
"titleContains": "{} - Example",
"weight": 8
}
errorType is either "status_code" (checks HTTP response code) or "message" (looks for an error string in the page body).
| Feature | Sherlock | Stalkie |
|---|---|---|
| Language | Python | Go (native binary, no runtime needed) |
| Result type | Found / Not Found | Confidence score with evidence |
| Script-tag stripping | ❌ | ✅ eliminates JS false negatives |
| Login wall detection | ❌ | ✅ |
| Headless browser mode | ❌ | ✅ via go-rod |
| Tor / SOCKS5 support | partial | ✅ native |
| Export formats | TXT | TXT, CSV, JSON |
| Sites database | Hardcoded Python | External sites.json |
Stalkie is intended for lawful OSINT investigations and educational use only. Always ensure you have appropriate authorization before investigating any individual. The author assumes no liability for misuse.
Built by Ashen Dilantha
$ claude mcp add stalkie \
-- python -m otcore.mcp_server <graph>