A Go library and CLI that fetches, spiders, and guesses social media profiles across 18+ platforms.
go install github.com/codeGROOVE-dev/sociopath/cmd/sociopath@latestsociopath https://github.com/torvalds # Fetch single profile
sociopath -r https://linktr.ee/johndoe # Follow all social links
sociopath --guess https://github.com/johndoe # Discover profiles by usernameFollows social links found in profiles up to 3 levels deep.
Probes other platforms using discovered usernames. Each guess includes a confidence score based on username match, name similarity, location, bio keywords, and cross-links.
| No Auth Required | Auth Required (browser cookies) |
|---|---|
| GitHub, Mastodon, BlueSky, Codeberg | LinkedIn, Twitter/X |
| Dev.to, StackOverflow, Linktree | Instagram, TikTok, VKontakte |
| Medium, Reddit, YouTube, Substack | |
| Bilibili, Habr, Generic websites |
-r, --recursive Follow social links recursively (max depth: 3)
--guess Discover related profiles on other platforms
--no-browser Disable automatic browser cookie extraction
--no-cache Disable HTTP caching (default: 75-day TTL)
-v, --debug Enable verbose logging
JSON to stdout. Guessed profiles include confidence scores:
{"Platform":"github","URL":"https://github.com/torvalds","Username":"torvalds","Name":"Linus Torvalds"}
{"IsGuess":true,"Confidence":0.85,"GuessMatch":["username:exact","name:github"]}import "github.com/codeGROOVE-dev/sociopath/pkg/sociopath"
profiles, _ := sociopath.FetchRecursiveWithGuess(ctx, url, sociopath.WithBrowserCookies())
for _, p := range profiles {
fmt.Printf("%s (%.0f%% confidence)\n", p.URL, p.Confidence*100)
}