Build Your Own OSINT Platform: 10 GitHub Projects You Can Chain
One username can lead to every account you forgot you made. Type yours in below. Then build the app that checks 462 sites for you. All the prompts are here.
$ sherlock ariacodez
[*] 462 sites checked in 24 seconds
[+] 49 possible matches
[!] 118 could not be checked
This is the app the prompts build
I typed one username. It swept 462 sites in 24 seconds and handed me every possible account with a link.

Type a username 
It sweeps every site 
Every possible account, with links
Build yours in three moves
Open Replit
Start a conversation in Free Mode.
Open ReplitType this first
This is the exact message from the video.
First messageBuild me my own version of Sherlock. I type in one username and it checks every site for an account with that name.Then paste prompt 1
Now Replit’s agent builds the real thing. Real searches, live results, nothing faked.
Prompt 1Build a fully working username-search web app called TRACE. Use the official sherlock-project/sherlock Python project on the backend. Inspect its current documentation and output format before integrating it. Do not create simulated scans, demo results or a recording mode. Use a near-black hacker-terminal interface with phosphor-green accents, readable monospace text, fine borders and subtle animation. Make the layout excellent on mobile and desktop. The main input has ariacodez as placeholder text and a working Search button. Implement a Python backend and a React/TypeScript frontend, adapting to the existing project when appropriate. Execute Sherlock safely with argument arrays, never shell interpolation. Reject unsupported input and option-like usernames. Add bounded concurrency, per-user quotas, timeouts, cancellation and job cleanup. Pin the tested engine version. Stream real search events through SSE or WebSockets. If the engine cannot provide a reliable total, use an indeterminate progress indicator. Never invent progress or convert blocked requests into not-found results. Distinguish possible match, not found, unable to check, canceled and failed. Show platform, username, source URL and status. Add working filters, copy links, spreadsheet-safe CSV export and New search. Briefly explain that matching usernames do not prove account ownership. Animate actual incoming results without delaying them. All target checks must run server-side. Do not forward the visitor's IP in outbound headers. Avoid automatically loading remote profile media in the browser. Keep logs minimal and isolate each user's jobs and exports. If storing searches, provide deletion and a retention policy. Configure a deployment that supports the backend worker and streaming. Verify a real search, event streaming, cancellation, errors, export and mobile layout. Keep network test fixtures separate from production results. Report environmental blockers honestly and never fill gaps with fake results.
Now chain more tools on
A username is where it starts. Each prompt below bolts another GitHub project onto the same app.
Add profile details and a connection graph
- A matchone profile from your search
- socid-extractor or Maigretpulls the public details
- Cytoscape.jsdraws the linked accounts
- A mapevery profile, with its source
Use this after the username search works.
Extend the existing real username-search app with optional public-profile enrichment. Read the current soxoj/maigret and soxoj/socid-extractor documentation first. Choose a supported integration: direct socid-extractor parsing for known supported profile pages, or a bounded Maigret search with enrichment. Explain which path you chose. Don't assume Maigret is a generic URL-only enrichment API.
Add an Enrich selected profiles action. Show only fields actually extracted, such as display name, bio, avatar URL, account creation date, public statistics, account ID and explicitly published links. Keep unavailable fields empty. Store a source URL and retrieval time for every observation. Separate reported profile text from your own inferences.
Add a Cytoscape.js graph. Use distinct relationship types for same username and explicitly linked profile. Clicking a node shows its evidence. Do not merge accounts into a confirmed person just because names or avatars match. Do not generate personality, sensitive-trait or location inferences.
Keep recursive expansion off until the user requests it. Then cap depth, requests and runtime. Deduplicate requests and cache briefly. Use only approved public HTTP(S) destinations; block private, loopback, link-local and metadata addresses, including after DNS resolution and each redirect. Never fetch arbitrary file URLs. Apply these checks to remote avatars too.
Stream real enrichment events into the existing terminal UI. Keep the graph readable on mobile. Verify source attribution, blocked pages, missing fields, job ownership and cancellation. Preserve all working search features.Map a website you own
- Your domainthe one you own
- Subfinderfinds its subdomains
- dnsxchecks which ones resolve
- httpxsees what's live
- An inventoryeverything you have online
Only for a domain you own or have permission to check.
Build a public web-asset inventory for authorized domains using projectdiscovery/subfinder, projectdiscovery/dnsx and projectdiscovery/httpx. Inspect current upstream documentation and use supported structured outputs. Do not confuse ProjectDiscovery httpx with Python HTTPX.
Require an explicit domain allowlist and ownership verification or an administrator-approved scope before active checks. Collect passive subdomain candidates, resolve them, then perform low-rate HTTP checks only on in-scope public destinations. Block private, loopback, link-local and cloud metadata destinations. Validate DNS answers and redirects. Stop rather than follow an out-of-scope redirect.
Show hostname, discovery source, DNS answers, observed status, page title, technology hints and last-checked timestamp when available. Preserve unknown and blocked states. Do not label a host vulnerable based on its title or technology fingerprint. No exploitation, brute force, port scans or login attempts.
Use a dark terminal dashboard with animated real events, searchable inventory, per-host details, CSV export and cancellation. Store provider keys only in server secrets. Report which passive sources are configured and which are unavailable. Add a queue, request budgets and per-domain concurrency limits. Verify the workflow using a domain I control; ask for that domain if none is provided.Check what your photos give away
- Your filea photo or a document
- ExifToolreads the hidden data
- What it revealsdevice, time, GPS if it's there
A separate tab for your own files, before you post them.
Add a Check my file module using the official ExifTool project. Accept explicitly uploaded user-owned photos and supported documents. Run a pinned ExifTool version in an isolated backend worker with strict file-size, type, execution-time and output limits. Do not execute uploaded content or accept remote URL fetching.
Display only metadata returned by the tool. Group fields into device information, timestamps, document authorship and location tags when present. Explain that missing GPS does not mean a processing failure and that metadata can be edited.
Never publish uploads. Isolate user access, delete temporary files after processing, and provide Clear results. No fabricated example metadata in the actual result screen. Match the existing terminal styling and verify malformed files, unsupported formats, oversized uploads and deletion.Prompt 1 is the build from the video. Prompts 2 to 4 are the next modules. Test each one on your own data before you trust it.
The 10 GitHub projects
Over 200,000 stars between them. Tap one to see what it does and where it trips up.
Find accounts
SherlockFinds accounts with that username93.9k
- You give it
- A username.
- You get
- Possible accounts on supported sites, each with a profile link.
- The catch
- A matching username doesn't prove it's the same person. Sites can block checks or return misleading pages.
MaigretSearches deeper and pulls profile details38.8k
- You give it
- A username.
- You get
- Bios, avatars, join dates, account IDs and links to other profiles, where a site shows them.
- The catch
- It overlaps with Sherlock. Pick one as your main engine and don't run two full scans.
WhatsMyNameAdds sites your first engine misses2.9k
- You give it
- Nothing to run. It's a dataset of profile URL patterns and detection rules.
- You get
- Extra coverage for your checker.
- The catch
- It isn't a hosted API, so your backend needs an adapter. Check its CC BY-SA license before you redistribute it.
Pull profile details
socid-extractorTurns a profile page into clean fields1.1k
- You give it
- A supported profile page or API response.
- You get
- Display name, bio, avatar, join date, follower counts and external links, where the page has them.
- The catch
- It's the extractor inside Maigret, so use one path or the other. It doesn't support every site Sherlock checks.
Map a website you own
SubfinderFinds a domain's public subdomains14.5k
- You give it
- A domain you own or have permission to check.
- You get
- Subdomain candidates from passive sources.
- The catch
- Many sources need API keys. A name it finds may no longer be live.
dnsxChecks which hostnames resolve2.8k
- You give it
- Your in-scope hostname list.
- You get
- DNS answers like A, AAAA or CNAME records.
- The catch
- Wildcard DNS can make dead names look alive. A resolved IP may be shared hosting or a CDN.
httpxShows what's serving on each host10.4k
- You give it
- Web hosts or URLs you're allowed to check.
- You get
- Status codes, page titles and technology hints.
- The catch
- It contacts the target, so keep requests low and in scope. This is ProjectDiscovery httpx, not the Python HTTPX library.
SpiderFootRuns a bigger investigation from one starting point23.3k
- You give it
- A starting point like your domain, plus the modules you pick.
- You get
- Findings and relationships from public sources.
- The catch
- It's a full framework already, so start with a short module list. Some modules need API keys.
Check a file
ExifToolReads the hidden data inside a file5.1k
- You give it
- A photo or document you own.
- You get
- Whatever metadata is in the file: timestamps, device info, author fields, GPS tags.
- The catch
- Many platforms strip metadata, so GPS is often missing. Timestamps can be edited.
Draw the map
Cytoscape.jsDraws your findings as a map11.2k
- You give it
- Nodes and links from your app's data.
- You get
- A graph people can pan, zoom and tap.
- The catch
- It only knows what you tell it. Same username and links-to are different relationships, so label them.
Run it on yourself first
Most people use one username everywhere. So one search finds accounts you forgot you made. Clean yours up before somebody else looks.
0 of 5 done
Ground rules
- Use it on your own accounts, files and domains, or with permission.
- A matching username doesn’t prove who owns the account.
- Respect each site’s rules and rate limits.
Repos and star counts checked October 12, 2026. The run numbers and screenshots are from my own search on Sherlock 0.16.2.
Get the next one first
New prompts every week.
Free. The new drops and the tools behind them, before they hit the feed.
No spam · New issues Sunday · Unsubscribe anytime
Hire me for your business
Ready to invest in a custom build?
Implementation and custom builds start at $5,000 USD. Bring a specific business problem and an approved budget. Learning on your own? Keep exploring the free guides or join the community above.
Related guides
Guide
GitHub URL Tricks: 14 Secrets Hiding in Your Address Bar
Type one word into any GitHub URL and the repo turns into a Google AI wiki, a star chart, a diagram or a time machine. Here are all 14.
Security
Make ChatGPT Erase You From the Internet, Then Keep You Erased
Three prompts. It finds every site holding your data, opts you out of all of them, clicks the confirmation emails itself, then re-runs the whole thing every 45 days.
Prompt
Search Every Lawsuit a Name Has Ever Appeared In (Replit Build)
Every lawsuit filed against someone is public, it's just scattered. Here's the exact prompt I gave Replit Agent to search all of it by name, plus the links.
Frequently asked questions
No. They check the sites they support. Sites can block requests, change their pages or return false positives. Treat every match as a possible account and check it yourself.
The 10 projects are open source under their own licenses. Hosting can cost money, and some data sources need paid API keys. Basic Sherlock and Maigret searches don't need a paid search API.
No. It reads what supported public pages already show. It doesn't unlock private messages or passwords. Fields vary by site, and a location on a profile is not live tracking.
Checks that run on your app's backend use the server's connection, not yours. Opening a profile link or loading its images uses your own browser. Ask the agent to confirm how your build does it.
No. Paste the prompts into Replit and its agent builds it. You still need to test real searches and read the errors before you share the app.
