mcp-name: io.github.OpenOSINT/openosint
AI-powered OSINT agent. Interactive REPL · CLI · MCP Server · Web UI
16 tools. Powered by Anthropic Claude or local Ollama. For authorized security research only.
See DISCLAIMER.md for legal and ethical use information.
![]()
![]()
![]()
![]()
Legal Disclaimer: OpenOSINT is intended for legal and authorized use only. Users are solely responsible for ensuring their use complies with all applicable laws and regulations. The authors accept no liability for misuse. See DISCLAIMER.md.
OpenOSINT is an AI agent for Open Source Intelligence with three interfaces: an interactive terminal REPL, a direct CLI, and an MCP server exposable to Claude Code, Claude Desktop, or any MCP-compatible client — plus a browser-based Web UI added in v2.12.0. The AI layer uses Anthropic's native tool use API (or a local Ollama model, or any OpenAI-compatible endpoint): the model issues hard stops when it needs a tool, your code executes the real binary, the actual output goes back — hallucination in tool results is structurally impossible.
- AI tool chaining — the agent decides which of 16 tools to run, chains them based on findings, and compiles a structured report
- 16 modular tools covering email, username, breach, WHOIS, IP, subdomain, dorks, paste, phone, Shodan, VirusTotal, Censys, IP2Location, AbuseIPDB, GitHub, and DNS
- Anthropic, Ollama, or any OpenAI-compatible endpoint — use Claude via API key, run fully offline with a local Ollama model, or point at any OpenAI-compatible server (LiteLLM, llama-swap, vLLM, LM Studio, …)
- MCP server — expose all tools natively to Claude Code and Claude Desktop
- Parallel execution —
--parallelruns complementary tools concurrently viaasyncio.gather() - PDF + Markdown reports — auto-saved after every investigation; PDF export via
reportlab - Session history — all REPL sessions saved to
~/.openosint/history/; browse withopenosint history - Web UI — browser-based AI chat with streaming output, tool cards, and light/dark theme toggle
# Install from PyPI (recommended)
pip install openosint# Or install from source
git clone https://github.com/OpenOSINT/OpenOSINT.git
cd OpenOSINT
pip install -e .External binaries (must be in PATH):
| Binary | Purpose | Install |
|---|---|---|
holehe |
Email account enumeration | pip install holehe |
sherlock |
Username enumeration (300+ platforms) | pip install sherlock-project |
sublist3r |
Subdomain enumeration | pip install sublist3r |
phoneinfoga |
Phone number intelligence | Download binary |
If a binary is absent, the corresponding tool returns a descriptive error string. All other tools remain operational.
# Interactive AI REPL (default)
openosint
# Web interface
openosint web
# Direct tool (no AI)
openosint email target@example.comStore all keys in a .env file at the project root (copy .env.example). python-dotenv loads it automatically at startup.
| Variable | Tool | Required | Purpose |
|---|---|---|---|
ANTHROPIC_API_KEY |
AI agent | Yes (or use Ollama / OpenAI) | Anthropic API key |
OPENAI_BASE_URL |
AI agent | Optional | Base URL of an OpenAI-compatible endpoint (e.g. http://localhost:4000/v1). When set and ANTHROPIC_API_KEY is absent, it is used as the AI backend (takes precedence over Ollama). The model must support tool/function calling. |
OPENAI_API_KEY |
AI agent | Optional | API key for the OpenAI-compatible endpoint (local servers may ignore it) |
OPENAI_MODEL |
AI agent | Optional | Model name to request from the endpoint (default: gpt-4o-mini) |
HIBP_API_KEY |
search_breach |
Optional | HaveIBeenPwned v3 — get one |
IPINFO_TOKEN |
search_ip |
Optional | ipinfo.io higher rate limits |
SHODAN_API_KEY |
search_shodan |
Optional | Shodan API — get one |
VIRUSTOTAL_API_KEY |
search_virustotal |
Optional | VirusTotal API v3 — get one |
IP2LOCATION_API_KEY |
search_ip2location |
Optional | IP2Location.io enhanced IP intelligence — get one (sponsored) |
CENSYS_API_ID + CENSYS_SECRET |
search_censys |
Optional | Censys Search API — get one |
ABUSEIPDB_API_KEY |
search_abuseipdb |
Optional | AbuseIPDB v2 — get one |
GITHUB_TOKEN |
search_github |
Optional | GitHub API — raises rate limit from 60 to 5000 req/h — get one |
Optional Python packages:
| Package | Purpose | Install |
|---|---|---|
ollama |
Local LLM backend (no API key) | pip install ollama (Python client only — also install the Ollama runtime) |
openai |
OpenAI-compatible backend for the REPL/CLI (--provider openai) |
pip install "openosint[openai]" (not required for the Web UI, which has no extra dependency) |
shodan |
Shodan API client | pip install shodan |
reportlab |
PDF report export | pip install reportlab |
censys |
Censys API client | pip install censys |
| Tool | Powered by | What it investigates |
|---|---|---|
search_email |
holehe | Social accounts linked to an email address |
search_username |
sherlock | Username presence across 300+ platforms |
search_breach |
HaveIBeenPwned v3 API | Data breach exposure |
search_whois |
python-whois | Domain registrant and DNS info |
search_ip |
ipinfo.io | Geolocation, ASN, hostname |
search_domain |
sublist3r | Subdomain enumeration |
generate_dorks |
built-in | 12 targeted Google dork URLs (no network calls) |
search_paste |
psbdmp.ws | Pastebin dump mentions |
search_phone |
phoneinfoga | Carrier, country, line type |
search_shodan |
Shodan API | Open ports, banners, CVEs |
search_virustotal |
VirusTotal API v3 | Verdict from 70+ antivirus engines |
search_ip2location |
IP2Location.io API | Enhanced IP intel: VPN/Proxy/Tor/datacenter flags (sponsored) |
search_censys |
Censys Search API | Internet-facing infrastructure, certificates |
search_abuseipdb |
AbuseIPDB v2 API | IP abuse reputation: confidence score, reports, country, ISP |
search_github |
GitHub REST API | Profile, repos, commit-discovered emails, username/keyword search |
search_dns |
dnspython (built-in) | A/AAAA/MX/NS/TXT/CNAME/SOA records; SPF, DMARC, DKIM analysis |
Enumerates online services linked to an email address using holehe.
openosint email target@example.com
openosint email target@example.com -t 60OSINT results for 'target@example.com':
[+] Spotify https://open.spotify.com/user/target
[+] WordPress https://wordpress.com/target
[+] Gravatar https://gravatar.com/target
[+] Office365 email used
Searches for a username across 300+ platforms using sherlock.
openosint username johndoe99
openosint username johndoe99 -t 120OSINT results for username 'johndoe99':
[+] GitHub https://github.com/johndoe99
[+] Twitter https://twitter.com/johndoe99
[+] Reddit https://reddit.com/user/johndoe99
Checks data breach exposure via HaveIBeenPwned v3 API. Requires HIBP_API_KEY.
Found in 2 breach(es) for 'target@example.com':
[+] LinkedIn (2016-05-05) — leaked: Email addresses, Passwords
[+] Adobe (2013-10-04) — leaked: Email addresses, Password hints
Retrieves WHOIS data for a domain using python-whois.
WHOIS results for 'example.com':
[+] Registrar: ICANN
[+] Created: 1995-08-14
[+] Expires: 2024-08-13
[+] Name Servers: A.IANA-SERVERS.NET
Retrieves geolocation and ASN data via ipinfo.io. Free tier: 50k/month.
IP intelligence for '8.8.8.8':
[+] Hostname: dns.google
[+] Org: AS15169 Google LLC
[+] City: Mountain View, CA, US
Enumerates subdomains using sublist3r.
Subdomains found for 'example.com':
[+] mail.example.com
[+] dev.example.com
[+] api.example.com
Generates 12 targeted Google dork URLs for any target. No network calls.
Google dork URLs for 'johndoe':
[+] "johndoe" site:linkedin.com
https://www.google.com/search?q=%22johndoe%22+site%3Alinkedin.com
[+] "johndoe" leaked OR breach OR dump
https://www.google.com/search?q=%22johndoe%22+leaked+OR+breach+OR+dump
Searches Pastebin dumps via psbdmp.ws.
Found in 3 paste(s) for 'target@example.com':
[+] https://pastebin.com/aB1cD2eF (2023-04-12)
[+] https://pastebin.com/xY3zA4bC (2022-11-08)
Gathers phone intelligence using phoneinfoga. Use E.164 format.
Phone intelligence for '+14155552671':
[+] Country: United States
[+] Carrier: AT&T
[+] Line type: Mobile
Queries the Shodan API. IPv4 input → host lookup (open ports, org, CVEs). Any other query → banner/keyword search. Requires SHODAN_API_KEY.
openosint shodan 8.8.8.8
openosint shodan "apache port:80 country:DE"
openosint shodan 8.8.8.8 -t 30Shodan host intelligence for '8.8.8.8':
[+] IP: 8.8.8.8
[+] Org: Google LLC
[+] Country: United States
[+] Open ports: 53, 443
Checks an IP address, domain, URL, or file hash against VirusTotal's 70+ antivirus engines using API v3. Auto-detects input type. Requires VIRUSTOTAL_API_KEY.
openosint virustotal 8.8.8.8
openosint virustotal example.com
openosint virustotal https://example.com/path
openosint virustotal 44d88612fea8a8f36de82e1278abb02f[VirusTotal] Type: ip
[VirusTotal] ASN: AS15169 Google LLC
[VirusTotal] Malicious: 0
[VirusTotal] Harmless: 72
If any engine flags the target:
[VirusTotal] Malicious: 3
FLAGGED AS MALICIOUS by 3 engines
Queries the Censys API. IPv4 input → host view (open ports, services, ASN); domain input → certificate search (SANs, issuer, first/last seen). Requires CENSYS_API_ID and CENSYS_SECRET.
openosint censys 8.8.8.8
openosint censys example.com[Censys] IP: 8.8.8.8
[Censys] Open Ports: 53, 443, 853
[Censys] Services: DNS, HTTPS, DNS-over-TLS
[Censys] ASN: AS15169 Google LLC
[Censys] Country: United States
[Censys] Domain: example.com
[Censys] Certificates Found: 12
[Censys] Issuer: Let's Encrypt
[Censys] SANs: example.com, www.example.com, api.example.com
Queries the IP2Location.io API for enhanced IP intelligence: geolocation (country, region, city, coordinates, ZIP), ISP, domain, ASN, and — on the Security Plan — VPN, proxy, Tor exit node, and datacenter detection. Sponsored integration. Requires IP2LOCATION_API_KEY.
openosint ip2location 8.8.8.8
openosint ip2location 2001:4860:4860::8888[IP2Location] IP: 8.8.8.8
[IP2Location] Country: United States (US)
[IP2Location] Region: California
[IP2Location] City: Mountain View
[IP2Location] ISP: Google LLC
[IP2Location] ASN: AS15169 Google LLC
[IP2Location] VPN: No | Proxy: No | TOR: No | Datacenter: Yes
[IP2Location] Threat: clean
If a VPN, proxy, or Tor exit node is detected:
FLAGGED: VPN/Proxy/Tor detected
Checks an IP address against the AbuseIPDB v2 API for abuse reputation. Returns abuse confidence score (0–100%), total reports, country, ISP, domain, and last reported timestamp. Requires ABUSEIPDB_API_KEY.
openosint abuseipdb 198.51.100.1
openosint abuseipdb 198.51.100.1 -t 30Abuse intelligence for '198.51.100.1':
[AbuseIPDB] IP: 198.51.100.1
[AbuseIPDB] Abuse Confidence Score: 87%
[AbuseIPDB] Total Reports: 143
[AbuseIPDB] Country: US
[AbuseIPDB] ISP: Example ISP LLC
[AbuseIPDB] Domain: example-isp.net
[AbuseIPDB] Last Reported: 2026-05-20T14:33:00+00:00
⚠️ HIGH ABUSE CONFIDENCE — flagged by AbuseIPDB
The warning line only appears when abuseConfidenceScore exceeds 50%.
Run openosint with no arguments to start the AI-powered REPL:
openosint > investigate target@example.com
-> generate_dorks('target@example.com')
-> search_email('target@example.com')
Found: Spotify, WordPress, Gravatar, Office365
-> search_breach('target@example.com')
Found in 2 breaches: LinkedIn (2016), Adobe (2013)
Report saved -> reports/2026-05-11_14-32-11_report.md
REPL commands:
| Command | Description |
|---|---|
<target> |
Investigate any target — email, username, domain, IP, name |
clear |
Reset conversation memory |
save |
Save last report to reports/ |
tools |
List available tools and their status |
config |
Show current configuration |
history |
Browse saved sessions |
help |
Show all commands |
exit / Ctrl-D |
Exit |
All sessions are auto-saved to ~/.openosint/history/. Browse with openosint history.
Introduced in v2.12.0:
openosint web
# Opens http://localhost:8080 automaticallyBrowser-based AI chat interface with streaming tool output, inline result cards, light/dark theme toggle, and support for fully local inference via Ollama or any OpenAI-compatible endpoint. No Anthropic API key required when using a local backend.
# Install web extras
pip install "openosint[web]"
openosint web
# Use Ollama for fully local inference (no API key)
# Step 1: install the Ollama runtime (separate from the Python library)
# macOS/Linux: curl -fsSL https://ollama.com/install.sh | sh
# Windows: https://ollama.com/download/windows
# Step 2: start Ollama and pull a model
ollama serve # start in a terminal (runs automatically as a service on some platforms)
ollama pull llama3.2 # download the model (~2 GB)
# Step 3: launch OpenOSINT and switch to Ollama
openosint web
# Settings -> Ollama (local) -> set model to llama3.2
# Or point at any OpenAI-compatible endpoint (LiteLLM, llama-swap, vLLM, LM Studio, …).
# The selected model must support tool/function calling.
export OPENAI_BASE_URL="http://localhost:4000/v1"
export OPENAI_API_KEY="sk-..." # optional for local servers
export OPENAI_MODEL="gpt-4o-mini"
openosint web
# Settings -> OpenAI API (or just start chatting — it is auto-selected when no ANTHROPIC_API_KEY is set)For the REPL/CLI, the same backend is available via --provider openai:
pip install "openosint[openai]"
openosint --provider openai \
--openai-base-url http://localhost:4000/v1 \
--openai-model gpt-4o-miniopenosint web
The interactive documentation at openosint.tech covers every tool, CLI flag, and configuration option.
Expose all 16 OpenOSINT tools to any MCP-compatible AI client. Once connected, Claude can natively invoke all 16 tools during conversations.
Claude Code:
claude mcp add openosint python /absolute/path/to/OpenOSINT/openosint/mcp_server.py
claude mcp listClaude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"openosint": {
"command": "python",
"args": ["/absolute/path/to/OpenOSINT/openosint/mcp_server.py"]
}
}
}Agentic use via Claude Code:
$ claude
> Investigate target@example.com. Trace any username found
across other platforms and compile a full report.
# Build and run
docker compose up --build
# One-off command
docker compose run --rm openosint email target@example.com --jsonSet ANTHROPIC_API_KEY (and optionally HIBP_API_KEY, IPINFO_TOKEN) in a .env file or export them before running docker compose. Reports are persisted to ./reports/ via a volume mount.
DigitalOcean App Platform: see .do/app.yaml for App Platform configuration.
| Flag / Subcommand | Description |
|---|---|
openosint |
Interactive AI REPL (default) |
openosint web [--port N] [--no-browser] |
Launch browser UI |
openosint email ADDRESS [-t N] |
Direct email scan |
openosint username HANDLE [-t N] |
Direct username scan |
openosint shodan QUERY [-t N] |
Shodan lookup |
openosint virustotal TARGET [-t N] |
VirusTotal lookup |
openosint censys TARGET [-t N] |
Censys lookup |
openosint ip2location IP [-t N] |
IP2Location lookup |
openosint abuseipdb IP [-t N] |
AbuseIPDB reputation check |
openosint github QUERY [-t N] |
GitHub profile/repo/email discovery |
openosint dns DOMAIN [-t N] |
DNS records + email security analysis |
openosint multi TARGETS |
Parallel multi-target investigation (max 10) |
openosint history [--all] [open N] [clear] |
View/manage REPL session history |
-v, --verbose |
Enable debug logging to stderr |
-t, --timeout N |
Override subprocess timeout (seconds) |
--api-key KEY |
Anthropic API key (overrides env var) |
--parallel |
Run complementary tools concurrently |
--json |
Output results as structured JSON |
--provider {anthropic,ollama,openai} |
AI provider (default: anthropic) |
--ollama-model MODEL |
Ollama model name (default: llama3.2) |
--ollama-host URL |
Ollama server URL (default: http://localhost:11434) |
--openai-base-url URL |
OpenAI-compatible endpoint base URL (env: OPENAI_BASE_URL) |
--openai-model MODEL |
Model to request from the endpoint (default: gpt-4o-mini; env: OPENAI_MODEL) |
--openai-api-key KEY |
API key for the endpoint (env: OPENAI_API_KEY) |
--no-pdf |
Disable automatic PDF generation |
| Service | URL | Tool | Tier | Auth |
|---|---|---|---|---|
| IP2Location.io | https://www.ip2location.io | search_ip2location |
Featured (sponsored) | API key — free tier |
| AbuseIPDB | https://www.abuseipdb.com | search_abuseipdb |
Community | API key — free tier |
| Censys | https://censys.io | search_censys |
Community | API key — free tier |
| GitHub | https://github.com | search_github |
Community | Token optional |
| HaveIBeenPwned | https://haveibeenpwned.com | search_breach |
Community | API key — paid |
| holehe | https://github.com/megadose/holehe | search_email |
Community | None — local binary |
| ipinfo.io | https://ipinfo.io | search_ip |
Community | Token optional |
| phoneinfoga | https://github.com/sundowndev/phoneinfoga | search_phone |
Community | None — local binary |
| psbdmp.ws | https://psbdmp.ws | search_paste |
Community | None |
| sherlock | https://github.com/sherlock-project/sherlock | search_username |
Community | None — local binary |
| Shodan | https://shodan.io | search_shodan |
Community | API key — free tier |
| sublist3r | https://github.com/aboul3la/Sublist3r | search_domain |
Community | None — local binary |
| VirusTotal | https://www.virustotal.com | search_virustotal |
Community | API key — free tier |
| WHOIS (IANA) | https://www.iana.org/whois | search_whois |
Community | None |
| DNS (system resolver) | — | search_dns |
Community | None |
| Google Search | https://www.google.com | generate_dorks |
Community | None |
OpenOSINT is used by OSINT practitioners, security researchers, and developers who are actively evaluating and adopting intelligence APIs. Every time a user configures a new integration, the documentation routes them directly to that provider's sign-up page — putting sponsors in front of their target audience at the moment of adoption.
| Tier | Benefits |
|---|---|
| Featured Integration | Recommended/default provider for a tool category; logo + badge in README, website, and docs; "Featured (sponsored)" label in the Integrations table; listed first among providers for that category |
| Sponsor | Logo + link in README, website, and release notes |
| Supporter | Listed on the website sponsors page |
Featured Integration tiers are available — contribute via Open Collective or email openosint@yahoo.com for current rates and custom arrangements.
Community integrations in the table above are eligible to upgrade to a Featured Integration sponsorship.
IP2Location.io — Featured Integration sponsor for the IP geolocation and threat intelligence category. Powers the search_ip2location tool with VPN, proxy, Tor exit node, and datacenter detection.
To sponsor OpenOSINT: Open Collective · email openosint@yahoo.com · full prospectus: SPONSORS.md.
Issues and pull requests are welcome. See CONTRIBUTING.md for the development workflow, integration registration checklist, and coding conventions. Please read DISCLAIMER.md before contributing.
Tommaso Bertocchi
- X (personal): https://x.com/SonoTommy_
- X (OpenOSINT): https://x.com/openosint_oss
- LinkedIn: https://www.linkedin.com/company/openosintoss
- Email: openosint@yahoo.com
| Contributor | Contribution |
|---|---|
| @consocio | venv/uv-tool binary resolution fix — co-installed tools are now found without a separate activation step (#6) |
OpenOSINT is open source under the MIT License — free for personal, academic, and open source use.
For commercial use in closed-source products, a separate license is required. → Full details
For authorized security research only. See DISCLAIMER.md.
OpenOSINT v2.19.0 — June 5, 2026

