⚑ 100% Python Standard Library β€’ Zero Dependencies

Fast, Bounded OSINT
for Domains & Usernames.

Hunt down social accounts across 56+ networks concurrently, route scans through OpSec proxies, export reports to CSV or JSON, and audit public domain infrastructure in seconds.

πŸ‘€
Sherlock-Style Engine
Concurrently probes 56+ verified platforms in under 3 seconds with built-in sockpuppet and false-positive filtering.
πŸ•΅οΈ
OpSec Proxy Routing
Route all scans through anonymous HTTP/HTTPS proxies or Tor with native standard-library ProxyHandlers.
πŸ“Š
CSV & JSON Exports
Generate RFC 4180 compliant CSV exports or machine-readable JSON reports alongside colored terminal trees.
βœ‰οΈ
Anti-Spoofing & MX
Evaluates SPF mechanisms, DMARC enforcement policies, and automatically identifies email providers.
πŸ›‘οΈ
Zero Pip Dependencies
Runs entirely on Python 3.11+ built-in modules. No bloat, no supply chain vulnerabilities.
πŸ€–
Local AI (Ollama)
Automated executive threat synthesis and cross-platform profile correlation using local private LLMs.

Installation

Choose the installation method that fits your workflow. Because osint-toolkit has zero external dependencies, it works out-of-the-box on macOS, Linux, and Windows.

Method Command Description
Direct Run ./osint <target> Instant execution inside the cloned repo without installing anything.
Python Module python3 -m osint_toolkit <target> Standard Python invocation directly from source.
Global CLI pip install . Installs system-wide osint and osint-toolkit binaries.
Docker docker run -it --rm osint-toolkit <target> Isolated container execution.
Terminal
# 1. Clone the repository
git clone https://github.com/DrowLink/osint-toolkit.git
cd osint-toolkit

# 2. Run directly
./osint torvalds

Quickstart

osint-toolkit automatically detects whether your target is a username or a domain, and renders a clean, hacker-style UTF-8 terminal interface by default.

1. Search a Username (Sherlock Mode)

Simply pass any handle or username. It checks 56+ verified platforms simultaneously:

Bash
./osint torvalds
Username Reconnaissance Demo across 56+ Platforms

2. Analyze a Domain Infrastructure

Pass any domain to audit DNS records, mail spoofing protection, WHOIS dates, and TLS certificates:

Bash
./osint github.com
Domain Reconnaissance Demo

Username Hunting Engine

Built as an ultra-fast, zero-dependency alternative to Sherlock. It checks platforms concurrently using a thread pool of 20 workers, typically finishing in 2–3 seconds.

πŸ’‘
Smart False-Positive Prevention:
Unlike naive status-code checkers that report non-existent accounts on sites returning HTTP 200 soft-404s, our engine validates response bodies. For example, on Wikipedia, it verifies not only account existence but inspects sockpuppet, block, and user page notices to prevent false positives.

Platform Directory (56 Verified Sites)

Filter platforms currently queried by the engine across 5 major categories:

Platform Category URL Pattern Detection Method
GitHubCoding & Techgithub.com/{username}Status Code
GitLabCoding & Techgitlab.com/{username}Status Code
CodebergCoding & Techcodeberg.org/{username}Status Code
BitbucketCoding & Techbitbucket.org/{username}Status Code
Docker HubCoding & Techhub.docker.com/u/{username}API Status Code
PyPICoding & Techpypi.org/user/{username}Status Code
npmCoding & Technpmjs.com/~{username}Status Code
Crates.ioCoding & Techcrates.io/users/{username}API Status Code
Dev.toCoding & Techdev.to/{username}Status Code
HashnodeCoding & Techhashnode.com/@{username}Status Code
KeybaseCoding & Techkeybase.io/{username}Status Code
HackerNewsCoding & Technews.ycombinator.com/user?id={username}Content Absent
KaggleCoding & Techkaggle.com/{username}Status Code
LeetCodeCoding & Techleetcode.com/{username}Status Code
TryHackMeCoding & Techtryhackme.com/p/{username}Status Code
ReplitCoding & Techreplit.com/@{username}Status Code
PastebinCoding & Techpastebin.com/u/{username}Status Code
TelegramSocial & Messagingt.me/{username}Content Present
RedditSocial & Messagingreddit.com/user/{username}API Status Code
MastodonSocial & Messagingmastodon.social/@{username}Status Code
BlueskySocial & Messagingbsky.app/profile/{username}.bsky.socialStatus Code
DisqusSocial & Messagingdisqus.com/by/{username}Status Code
LinktreeSocial & Messaginglinktr.ee/{username}Status Code
GravatarSocial & Messaginggravatar.com/{username}API Status Code
PinterestSocial & Messagingpinterest.com/{username}Status Code
BuyMeACoffeeSocial & Messagingbuymeacoffee.com/{username}Status Code
Ko-fiSocial & Messagingko-fi.com/{username}Status Code
ProductHuntSocial & Messagingproducthunt.com/@{username}Status Code
About.meSocial & Messagingabout.me/{username}Status Code
QuoraSocial & Messagingquora.com/profile/{username}Status Code
SteamGaming & Entertainmentsteamcommunity.com/id/{username}Content Absent
Chess.comGaming & Entertainmentchess.com/member/{username}API Status Code
LichessGaming & Entertainmentlichess.org/@/{username}API Status Code
itch.ioGaming & Entertainment{username}.itch.ioStatus Code
RobloxGaming & Entertainmentroblox.com/user.aspx?username={username}Status Code
Speedrun.comGaming & Entertainmentspeedrun.com/users/{username}Status Code
osu!Gaming & Entertainmentosu.ppy.sh/users/{username}Status Code
LetterboxdGaming & Entertainmentletterboxd.com/{username}Status Code
ChessgamesGaming & Entertainmentchessgames.com/perl/chessplayer?pid={username}Content Absent
SoundCloudDesign & Audiosoundcloud.com/{username}Status Code
SpotifyDesign & Audioopen.spotify.com/user/{username}Status Code
BandcampDesign & Audio{username}.bandcamp.comStatus Code
BehanceDesign & Audiobehance.net/{username}Status Code
DribbbleDesign & Audiodribbble.com/{username}Status Code
FlickrDesign & Audioflickr.com/people/{username}Status Code
500pxDesign & Audio500px.com/p/{username}Status Code
DeviantArtDesign & Audiodeviantart.com/{username}Status Code
UnsplashDesign & Audiounsplash.com/@{username}Status Code
MixcloudDesign & Audiomixcloud.com/{username}Status Code
SubstackPublishing & Knowledge{username}.substack.comStatus Code
MediumPublishing & Knowledgemedium.com/@{username}Status Code
WikipediaPublishing & Knowledgeen.wikipedia.org/wiki/User:{username}Content Analysis & Sockpuppet Check
InstructablesPublishing & Knowledgeinstructables.com/member/{username}Status Code
GoodreadsPublishing & Knowledgegoodreads.com/{username}Status Code
DuolingoPublishing & Knowledgeduolingo.com/profile/{username}Status Code
PatreonPublishing & Knowledgepatreon.com/{username}Status Code

OpSec Proxy & Anonymity Support

Investigators and red teams requiring stealth and rate-limit avoidance can route all outbound reconnaissance through an HTTP or HTTPS proxy (including Tor bridges and corporate proxies).

πŸ•΅οΈ
100% Dependency-Free OpSec:
Powered natively by Python's urllib.request.ProxyHandler. Configured proxies are applied across concurrent username workers, threat intelligence lookups (Shodan InternetDB, IP2Location), and external APIs.
Terminal
# Route username hunting through a local proxy
./osint torvalds --proxy http://127.0.0.1:8080

# Use Tor SOCKS / HTTP wrapper
./osint torvalds -p http://127.0.0.1:9050

# Proxy specialized intelligence lookups
./osint ip2location 8.8.8.8 --proxy http://proxy.corp:3128
./search_shodan 1.1.1.1 -p http://127.0.0.1:8080

Domain Reconnaissance

Gathers structured intelligence about a target domain across multiple layers of network and transport infrastructure:

Email Security & Anti-Spoofing

  • MX Identification: Automatically categorizes mail servers (Google Workspace, Microsoft 365, ProtonMail, Mimecast, etc.).
  • SPF Evaluation: Inspects SPF mechanism records (v=spf1) and assesses policy strength (-all HardFail vs ~all SoftFail vs insecure +all).
  • DMARC Enforcement: Validates DMARC records (v=DMARC1), reporting whether email spoofing is enforced (p=reject / p=quarantine) or inactive (p=none).

Additional Infrastructure Checks

  • RDAP / WHOIS: Registrar name, creation date, expiration date, and EPP status flags via official ICANN RDAP endpoints.
  • IP Geolocation & ASN: Public IP routing ASN, autonomous system owner, country, and city coordinates.
  • TLS Certificate: Issuer, common names, SANs, cipher suite, negotiated protocol (TLSv1.3), expiration date, and SHA-256 fingerprint.
  • Security Headers: Audits defensive headers including Strict-Transport-Security, Content-Security-Policy, X-Frame-Options, and cookie security flags (Secure, HttpOnly, SameSite).
  • Subdomain Discovery: Queries Certificate Transparency logs (crt.sh) for publicly registered hostnames.

Threat & Intel Services

Specialized intelligence commands and pure Python methods for deep infrastructure profiling and malware reputation analysis:

1. Shodan Host Intelligence (search_shodan)

Query open ports, CPEs, hostnames, and known CVEs. By default, it queries Shodan InternetDB with zero authentication (no API key required), and supports full API keys via SHODAN_API_KEY or --api-key.

Terminal
# Query by IP (zero-auth InternetDB)
./osint shodan 8.8.8.8

# Query by domain (automatically resolves to public IP)
./search_shodan github.com

# Save to JSON
./osint shodan 8.8.8.8 -o shodan.json

2. IP2Location Geolocation & Proxies (search_ip2location)

Lookup accurate country, city, coordinates, timezone, ASN, autonomous system name, and residential vs. proxy/VPN detection. Operates on the public tier without an API key, or with IP2LOCATION_API_KEY.

Terminal
# Check geolocation and proxy status
./osint ip2location 8.8.8.8
./search_ip2location 1.1.1.1

3. VirusTotal Threat Analysis (search_virustotal)

Queries VirusTotal v3 API for malware engine verdicts (harmless, malicious, suspicious) and reputation scoring across domains and IP addresses. Requires VIRUSTOTAL_API_KEY.

Terminal
# Check domain or IP reputation
./osint virustotal google.com
./search_virustotal 8.8.8.8 --api-key <KEY>

4. Censys Host Recon (search_censys)

Inspects host services, protocols, ports, and autonomous systems via Censys Search API v2. Requires CENSYS_API_ID and CENSYS_API_SECRET.

Terminal
# Check Censys indexed services
./osint censys 8.8.8.8
./search_censys 8.8.8.8 --api-id <ID> --api-secret <SECRET>

Local AI Integration (Ollama)

Harness the power of local Large Language Models (LLMs) via Ollama for automated threat synthesis, cross-platform correlation, and identity profiling β€” with zero cloud API keys and complete privacy.

πŸ€–
100% Python Native & Resilient:
Connects directly to your local Ollama instance (http://localhost:11434) using Python's built-in standard library. If Ollama is offline, the CLI continues executing normally and prints a clean, non-fatal advisory notice.

Running with AI Synthesis

Pass the --ai (or --ollama) flag to any command to generate an AI Intelligence Briefing:

Terminal
# Username correlation briefing
./osint torvalds --ai

# Domain infrastructure posture analysis
./osint github.com --ai

# Threat scan with AI risk briefing
./osint shodan 8.8.8.8 --ai

# Custom model and endpoint
./osint torvalds --ai --ai-model mistral --ai-endpoint http://localhost:11434
Shodan Threat Intelligence & Local AI Synthesis Demo

Output & Options

By default, interactive terminal executions display the formatted ASCII/Unicode card. For pipelines, SIEM ingestion, or spreadsheets, pure JSON and standard RFC 4180 CSV formats are supported.

Terminal
# Output pure JSON to stdout
./osint torvalds -j

# Output standard CSV to stdout
./osint torvalds --csv

# Save findings directly to CSV or JSON
./osint torvalds -o findings.csv
./osint torvalds -o findings.json

# Pipe JSON into jq for instant filtering
./osint google.com -j | jq '.dns.addresses'

CLI Options Reference

Option Type Default Description
targetPositionalNoneDomain (e.g. google.com) or username (e.g. drowlink). Auto-detected.
-u, --usernameStringNoneExplicitly forces username search across social platforms.
-d, --domainStringNoneExplicitly forces domain reconnaissance mode.
-p, --proxyURLNoneRoute all network traffic through an anonymous HTTP/HTTPS or Tor proxy.
--csvFlagFalseEmits standard RFC 4180 CSV output instead of terminal card.
-j, --jsonFlagFalseEmits raw JSON instead of the visual summary card.
-o, --outputFile PathNoneSaves full report to the specified file (JSON or CSV based on extension/flag).
-t, --timeoutFloat8.0Global deadline in seconds for all operations.
-s, --summaryFlagFalseForces human-readable summary card even in piped output.
--ai, --ollamaFlagFalseGenerates executive AI intelligence briefing using local Ollama LLMs.
--ai-modelStringNoneSpecifies local Ollama model (e.g. llama3, mistral, qwen2.5).
--ai-endpointURLNoneCustom Ollama API endpoint (default: http://localhost:11434).

Safety & Resource Limits

πŸ›‘οΈ
Passive & Safe By Design:
All recon operations are passive, query public metadata exclusively, and operate within strict operating boundaries.
  • Private Target Rejection: Localhost, loopbacks (127.0.0.1), RFC 1918 private subnets, and non-unicast IPs are rejected immediately.
  • Memory Protection: All response streams are bounded to a maximum of 256 KiB to prevent denial-of-service or memory spikes.
  • Monotonic Deadlines: Every network operation runs against an absolute monotonic clock (time.monotonic()). Socket operations cannot stall process exit.

Documentation Policy (Specs)

In accordance with our project engineering standards defined in SPECS.md:

πŸ“‹
Mandatory Documentation Rule:
Every new feature, flag, data collector, platform detector, or breaking change MUST be documented in both docs/index.html and README.md prior to merging or releasing.

When contributing new features:

  1. Add corresponding unit tests in tests/ to preserve 100% test coverage.
  2. Update the relevant sections in this interactive documentation site (docs/index.html).
  3. If adding a new social platform, append it to the Platform Directory table with its category and detection method.
  4. Keep the CLI option tables and examples in README.md in sync.

Testing & Verification

Run the comprehensive test suite locally. All 83 unit tests run without requiring any external packages or active Internet connection:

Terminal
python3 -m unittest discover -s tests -v

Roadmap & Future Milestones

We are actively building the most capable, dependency-free OSINT framework. Here is what is on our horizon:

πŸ“Š Interactive HTML Dossier

Export client-ready, single-file HTML reports (--html report.html) with dark mode and filterable tables.

πŸ” Passive Subdomain Discovery

Query public Certificate Transparency logs (crt.sh) using pure standard-library HTTPS without noisy probing.

πŸš€ 100+ Verified Platforms

Expand username hunter with cybersecurity hubs (HackTheBox, TryHackMe), package registries, and federated networks.

πŸ•ΈοΈ Visual Graph Export

Render entity relationships (Domains β†’ IPs β†’ Accounts β†’ DNS) to Mermaid.js, Graphviz DOT, or Gephi formats.

Contributing & Community

Contributions from the community are warmly welcomed! Help us expand platform coverage, refine threat intelligence heuristics, or optimize network speed.

🀝
Quick Start for Contributors:
Check out our CONTRIBUTING.md guide to add new platforms in 5 minutes, report false positives, or submit pull requests.