OpenOSINT README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the OpenOSINT listing page.

mcp-name: io.github.OpenOSINT/openosint

OpenOSINT

OpenOSINT

The OSINT toolkit for AI agents: Agent Skill, MCP server and CLI. Passive by default, no API keys needed to start, and every finding cites the tool call that produced it.

Release PyPI downloads License MIT MCP Registry Sponsored by IP2Location Sponsored by TestMu AI

OpenOSINT in Claude Code: add the marketplace, install the plugin, run /openosint:osint example.com and get a report where every finding cites its tool call, ending with leads to verify

A real Claude Code session, nothing mocked: install the plugin and run a passive recon on example.com. Sharper MP4.

Quickstart

Needs uv. No API keys for the default flow.

Claude Code plugin (skills plus a passive MCP server):

text
/plugin marketplace add OpenOSINT/OpenOSINT
/plugin install openosint@openosint
/openosint:osint example.com

Any agent (Codex, Gemini CLI, Cursor and other Agent Skills clients):

Terminal
npx skills add OpenOSINT/OpenOSINT

MCP server or pip (other clients):

Terminal
claude mcp add openosint -- uvx --from openosint openosint-mcp
pip install openosint && openosint exposure example.com

OpenOSINT Cloud

The same engine as a hosted chat: ask about a domain, an IP address or a company. Every answer shows which public sources were checked, when, and a source on every claim. No install, no API keys.

OpenOSINT Cloud answering a question about a company: three lookups with their times, then an answer with source chips

Try it: 10 free messages

What you can do

Real output, captured 2026-11-04 on v2.37.0 and trimmed. None of these commands needs an API key or an AI provider.

text
$ openosint exposure example.com
Grade: B  Score: 88/100
Checks:  email OK [passive] · registration OK [passive] · tls OK [touches target] · http_headers OK [touches target]
  [LOW] DMARC has no aggregate report address (dmarc_no_rua)
  [LOW] Strict-Transport-Security header missing (hsts_missing)
  [INFO] Domain registered 31.2 years ago (domain_age)

$ openosint dns example.com
[DNS] NS: elliott.ns.cloudflare.com., hera.ns.cloudflare.com.
[DNS] SPF: v=spf1 -all
[DNS] DMARC: "v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s"
[DNS] DKIM not checked: selector probing is enumeration (needs --allow-active).

$ openosint rdap example.com
[+] Registrar: RESERVED-Internet Assigned Numbers Authority
[+] Registered: 1995-08-14T04:00:00Z
[+] Expires: 2027-08-13T04:00:00Z
[+] Name servers: elliott.ns.cloudflare.com, hera.ns.cloudflare.com

$ openosint ip 8.8.8.8
[+] Hostname: dns.google
[+] Org: AS15169 Google LLC
[+] City: Mountain View

$ openosint gdelt example.com
No geolocated coverage found for 'example.com'. Coverage: the last 15 min (...)
$ openosint gdelt ukraine
[+] White House, District Of Columbia, United States (38.8951, -77.0364) — 1 article(s)

The same commands are what the skill runs for an agent. All of them are in the CLI reference.

Why OpenOSINT

  • Real tool executions. Tools are Python code; only their actual output reaches the model.
  • Provenance. Every finding is shown with the tool call that produced it. AI summaries are leads to verify, not proof.
  • Passive by default, with noise labels. Tools that touch the target or are noisy are not even offered to the agent until you opt in.
  • Works with no keys. exposure, dns, rdap, whois, ip, gdelt and dorks need no account.
Prompt-only OSINT skillsSpiderFootOpenOSINT
What runs the lookupsNothing: the skill is instructions, and the agent improvisesIts own 200+ modulesPython tools shipped with it
BreadthWhatever the agent can reachMuch broader: 200+ modules and a correlation engine, per its READMEA focused tool set
Built to be driven by an agentYes, that is the formatWeb UI or CLI, per its READMEAgent Skill, Claude Code plugin, MCP server, CLI and web UI
Passive/noisy labels, off by defaultNoNot claimed hereYes, per tool
LicenseVariesMITMIT

SpiderFoot is the better choice when you want a large standalone scanner. OpenOSINT is for agents that need a small set of real, labelled tools.

Tools

Level is the noise label: passive tools are on by default; anything else needs --allow-active. Per-tool docs: openosint.tech/tools.

ToolSourceLevelKey needed
search_dnsdnspython (built-in)passiveNo
search_rdapRDAP (IANA bootstrap)passiveNo
search_whoispython-whoispassiveNo
search_ipipinfo.iopassiveOptional
search_ip2locationIP2Location API (sponsored)passiveRequired
search_gdelt_geoGDELT 15-minute GKG feedpassiveNo
generate_dorksbuilt-inpassiveNo
search_pastepsbdmp.wspassiveNo
search_githubGitHub REST APIpassiveOptional
search_breachHaveIBeenPwned APIpassiveRequired
search_shodanShodan APIpassiveRequired
search_censysCensys APIpassiveRequired
search_virustotalVirusTotal APIpassiveRequired
search_abuseipdbAbuseIPDB v2 APIpassiveRequired
search_dorks_liveBright Data SERP API¹passiveRequired
search_footprintBright Data SERP API¹passiveRequired
scrape_urlBright Data Web Unlocker¹touches targetRequired
search_usernamesherlocknoisyNo
search_emailholehenoisyNo
search_domainsublist3rnoisyNo
search_phonephoneinfogaunverifiedNo

Sherlock, holehe, sublist3r and phoneinfoga are wrapped as local binaries; install them yourself and enable active tools to use them.

Setting up the three Bright Data tools: Using OpenOSINT with Bright Data.

Passive by default

Agents and MCP clients are only offered tools that query third-party data sources or compute locally. Anything that touches the target or sends many requests from your IP is off until you opt in, and is not listed in an MCP client's tools/list at all.

LevelMeaning
passiveQueries third-party sources or computes locally; nothing is sent to the target's own infrastructure (standard DNS goes through your resolver)
touches targetThe target's infrastructure can see the request
noisyHigh request volume; expect rate limits, blocks and alerts
unverifiedNetwork behavior not yet confirmed by a traffic capture; treated as non-passive
inheritsA fan-out tool that only runs what the current mode allows

Enable active tools with openosint --allow-active …, OPENOSINT_ALLOW_ACTIVE=1, Web UI Settings (loopback only), or openosint-mcp --allow-active. Passive is not private: every service you query sees the query. Per-tool "what it sends" table and the tool-call cap: Safety.

Go deeper

Web UI + globe

openosint web starts a local browser app with streaming chat, tool cards, a news globe and a graph view. Docs.

OpenOSINT globe view: an agent investigation lands as a point on an interactive 3D globe, clicking it pivots into a follow-up investigation, and the new entity appears in the entity graph

An agent investigation landing live on the globe; click a point to pivot. Sharper MP4 · Live demo (bring your own key, no signup).

Entity graph

A FollowTheMoney entity graph with statement-level provenance and a human review queue for same_as candidates. Docs.

External exposure report (beta)

openosint exposure example.com grades email authentication, TLS, registration and security headers A to F. Docs.

Installation

pip install openosint, or run without installing: uvx openosint web. Python 3.10+. Install guide.

MCP Server

Works in Claude Desktop, Claude Code, Cursor and any MCP client: uvx --from openosint openosint-mcp. Client configs.

Configuration

Keys go in the web UI Settings, ~/.openosint/config.env or the environment; the app starts with none. All variables · CLI reference · Limitations.

Docker

docker compose up --build, then open http://localhost:8080. Docker notes.

Moved from this README: per-tool details are at openosint.tech/tools; CLI flags (old #cli-reference) at /docs/cli; limitations (#limitations) at /docs/troubleshooting; integrations (#integrations) at /tools; the graph module (#graph-module-optional) at /docs/entity-graph.

Hosted versions

Built on this engine. The open-source project stays free and MIT-licensed.

  • Cloud: chat about a domain, an IP address or a company, with sourced answers. Details above.
  • Monitor: domain security monitoring (SPF, DKIM, DMARC, TLS). Free for one domain.
  • Diligence: UK and LEI company checks against registries and sanctions lists.
  • API access (by request): hosted REST and MCP API. Email commercial@openosint.tech.

Sponsors

Featured Integrations

IP2Location.io logo

IP2Location.io — powers search_ip2location · Integration guide

Enhanced IP geolocation, ISP, VPN/Proxy/Tor, and datacenter detection

TestMu AI logo

TestMu AI

TestMu AI (formerly LambdaTest) is an AI-native testing cloud platform built for modern engineering teams. It covers everything from autonomous test creation and fast execution to testing AI agents, chatbots and voice assistants.

Open: Breach / Compromised-Credential Data · Email / Identity Lookup · Residential Proxies — see SPONSORSHIP.md.

Sponsor on Open Collective · tiers in SPONSORSHIP.md · commercial license and support: COMMERCIAL.md.

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md (workflow, demo regeneration, conventions) and read DISCLAIMER.md first. Maintainer: Tommaso Bertocchi · @openosint_oss · commercial@openosint.tech. Contributors: @consocio (#6).

License

MIT. See LICENSE. For authorized security research only; see DISCLAIMER.md.

¹ Bright Data links in this README are affiliate/referral links: OpenOSINT earns a commission if you sign up through them, at no extra cost to you.

OpenOSINT v2.38.0 — November 2026

Star History

Star History Chart