I’ve been building PRISM - a self-hosted OSINT toolkit you run yourself instead of pasting investigation targets into someone else’s web service.
Give it a domain, IP, email, phone, or username and it runs 22+ modules in parallel into one dashboard: WHOIS, DNS, crt.sh subdomains, GeoIP, threat intel (Shodan/VirusTotal/AbuseIPDB/Censys), breach data, username search across 3000+ sites (Blackbird + Maigret), dark-web mirror checks, and more. Results come with an entity graph, a GeoIP map, an OPSEC exposure score (0–100), and HTML/PDF/CSV/Markdown exports.
Your targets never leave your PC, and 14 of the 22 modules work with zero API keys (missing keys degrade gracefully instead of erroring).
Stack: FastAPI + Next.js 14, runs with one docker compose up. MIT licensed.
Demo: https://getprism.su/ Github: https://github.com/NovaCode37/Prism-platform
Built it solo - feedback welcome, especially on which modules you’d want added.


Tried it. ANY given username generates a list of the same sites (e.g. instagram, reddit, imgur, etc) and simply slaps the given username to the base url and gives that as a “result” even if the user doesn’t exist on that platform. Even the “AI Analysis” is simply a report of nonexistent platforms and users. You can achieve better results by simply using a bash script.
What would be better ways of doing it?
use curl and try to “ping” the user page to see if it exists (200) or not (400)
Same experience. 🫤
Yeah. Very disappointing.