
Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.
This repository packages 28 passive-first OSINT workflows and techniques as agent skills. A builder points the agent at a target, and the agent can chain skills like domain recon, handle hunting, image tracing, and company review, then write a sourced brief.
Builders who want Cursor or Claude Code to run OSINT investigations from public sources and return a cited report.
You can turn a clue like an email, domain, photo, or username into a sourced investigation instead of a pile of loose hits.
Includes named skills such as `investigate-anything`, `find-anyone`, `x-ray-a-company`, and `write-the-intel-brief` for full investigations and reporting.
Includes focused skills like `who-owns-this-domain`, `find-hidden-subdomains`, `geolocate-from-pixels`, and `secrets-in-git-history` for specific OSINT steps.
The README says the skills stay passive by default and make you state scope and authorization before doing anything.
Each run is meant to return findings with sources and confidence levels, not just guesses.
The README says the skills ship with `reference/` material such as query cookbooks, indicator guides, registry catalogues, and format tables.
`install.sh` can symlink or copy the skills into `~/.cursor/skills` or `~/.claude/skills`.
git clone https://github.com/useosint/osint-skills.git cd osint-skills ./install.sh
Open-source intelligence, run by your AI agent.
Reconnaissance Β· Attribution Β· GEOINT Β· Breach checks Β· Due diligence
28 skills that let Cursor, Claude, and other coding agents actually run an open-source-intelligence investigation β pivot from an email to a breach to a reused handle to a real name, geolocate a photo from the pixels, map a company's subsidiaries β and write it up with sources instead of vibes.
Two kinds:
You point it at a target. It picks the workflow, chains the techniques, and hands back a report where every claim has a source and a confidence level.
These aren't cheat sheets. Every skill carries the tradecraft that separates a
lead from a finding β where each source lies to you, which results are
artefacts of how the tool works, and what it takes to call something confirmed.
Each one ships with reference/ material too: the query cookbooks, per-country
indicator guides, registry catalogues, and format tables you'd otherwise keep
in a browser tab.
> recon-a-domain-passively example.com
scope passive only, no scanning
whois NameCheap, created 2019-03-11, registrant behind privacy guard
dns MX β Google Workspace Β· SPF lists sendgrid + mailgun
crt.sh 14 subdomains, incl. staging.example.com and vpn.example.com
shodan vpn:443 Fortinet Β· staging exposes :8080 Jenkins (no auth)
wayback 2021 team page named 6 staff, since deleted
pivoted 3 staff β LinkedIn, flagged the open Jenkins, wrote report.md
Illustrative β a real run depends on the target and which tools you have keys for. The skills are the technique and the tooling; some tools (Shodan, HIBP, DeHashed) want their own API key, and free alternatives are called out inline.
git clone https://github.com/useosint/osint-skills.git
cd osint-skills
./install.sh
install.sh symlinks all 28 skills into ~/.cursor/skills, so git pull keeps
them current. Restart your agent afterward.
| Command | Installs to |
|---|---|
./install.sh | ~/.cursor/skills (symlink) |
./install.sh --copy | same, but copies |
./install.sh --claude | ~/.claude/skills |
./install.sh --target DIR | anywhere |
For a single project instead of your whole machine, drop the skills/ folder
into that repo's .cursor/skills/.
Pick the workflow that matches whatever you're holding. If you don't know,
investigate-anything routes you.
flowchart TD
Q{What do you<br/>already have?}
Q -->|a real name| P[find-anyone]
Q -->|a company / brand| C[x-ray-a-company]
Q -->|a domain or IP| D[recon-a-domain-passively]
Q -->|a username| U[hunt-a-handle]
Q -->|an email| E[what-an-email-reveals]
Q -->|a phone number| PH[whose-number-is-this]
Q -->|a photo / video| G[where-was-this-taken]
Q -->|a social profile| S[pattern-of-life-from-socials]
Q -->|no idea| R([investigate-anything])
R -.picks one.-> Q
P --> RPT[[write-the-intel-brief]]
C --> RPT
D --> RPT
U --> RPT
E --> RPT
PH --> RPT
G --> RPT
S --> RPT
| Skill | Does |
|---|---|
investigate-anything | Router. Scope gate, collection plan, source grading, and it picks the workflow. |
find-anyone | Profile an individual β and survive the name-collision problem |
x-ray-a-company | Due diligence β entity, ownership, people, infra, risk |
recon-a-domain-passively | Map a domain, site, or IP without sending it a packet |
hunt-a-handle | Chase a handle across hundreds of platforms, then prove it's the same person |
what-an-email-reveals | Validate it, find the accounts it registered, pivot to the owner |
whose-number-is-this | Line type, carrier, VoIP detection, messaging-app exposure |
where-was-this-taken | Metadata, provenance, geolocation, and time β in that order |
pattern-of-life-from-socials | Network, content, and posting rhythm β and what that reveals |
write-the-intel-brief | Turn findings into a sourced brief that separates fact from inference |
| Skill | For |
|---|---|
find-the-original-image | First publication of an image, across Yandex, Lens, Bing, TinEye |
secrets-in-file-metadata | GPS, device serials, authors, and edit chains in files and documents |
who-owns-this-domain | WHOIS/RDAP, DNS, and the vendors an SPF record gives away |
find-hidden-subdomains | Certificate transparency, passive DNS, and the hosts that no longer resolve |
read-deleted-pages | Wayback CDX, archive.today, and getting the raw capture |
google-like-a-spy | Operators that still work, on the engines that still honour them |
secrets-in-git-history | Author emails, deleted-fork data, and credentials that never touched HEAD |
geolocate-from-pixels | Bollards, plates, shadows, sun angle β location and time from the frame alone |
investigate-without-getting-made | Your attribution surface, and the persona that doesn't leak back to you |
what-leaked-about-you | Breach exposure, k-anonymity lookups, and why you never touch the credential |
follow-the-crypto | Clustering, change addresses, and the off-ramp where identity attaches |
track-planes-and-ships | ICAO hex vs tail number, IMO vs MMSI, and who's gone dark |
find-exposed-servers | Shodan and Censys queries, favicon hashes, origin IPs behind the CDN |
find-leaks-in-the-wild | Pastes, forums, Telegram β and telling a fresh leak from a recycled combolist |
is-this-photo-real | Provenance first, pixels last, and why ELA is usually read wrong |
dig-through-data-brokers | Broker records as leads, plus the FCRA line you don't cross |
who-really-owns-it | Registries, filings, beneficial ownership, and the nominee problem |
graph-the-network | A schema, a source on every edge, and the bridging node you'd otherwise miss |
It's a chain of pivots. One thing you know turns into the next, until the picture holds together under more than one source. Start with an email and it can unfold like this:
flowchart LR
E[email] --> B[what-leaked-about-you]
E --> V[validate + Gravatar]
B --> U[reused username]
B --> N[name / fields leaked]
U --> A[accounts across platforms]
V --> N
A --> PH[posted photos]
A --> GH[code repos]
PH --> GEO[home / work location]
N --> PR{{corroborated identity}}
GEO --> PR
GH --> PR
PR --> RPT[[write-the-intel-brief]]
Every hop is one of the technique skills; nothing gets called a fact off a
single weak match. And a workflow isn't one lookup β recon-a-domain-passively, for
example, fans out across several techniques at once:
flowchart TD
D([recon-a-domain-passively]) --> W[who-owns-this-domain]
D --> CT[find-hidden-subdomains]
D --> WB[read-deleted-pages]
D --> GH[secrets-in-git-history]
CT --> SUB[subdomains]
SUB --> SH[find-exposed-servers]
W --> OWN[registrant] -.pivot.-> CO([x-ray-a-company])
D --> RPT[[write-the-intel-brief]]
SH --> RPT
WB --> RPT
GH --> RPT
OSINT is collecting information that is already public, for a legitimate reason. That's legal most places. Logging into someone's accounts, using leaked passwords, scanning boxes you don't own, stalking, doxxing β that isn't, and it's not what any of this is for.
Every workflow makes you state scope and authorization before it does anything, and stays passive by default. The details are in ETHICS.md. If your goal is to hurt a specific person, these skills aren't for you.
One folder, one SKILL.md, passive-first, every technique backed by a real
tool and source. CONTRIBUTING.md has the rest.
MIT. No warranty. What you do with it is on you.
Sign in to join the discussion.
No comments yet. Be the first to say what this is good for.

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.
Topic in, narrated explainer video out. A Claude Code / Codex skill that turns any topic into a black-canvas motion-graphics explainer video with TTS voiceover, subtitles and a chapter progress bar. Chinese or English; every frame drawn in code with Remotion.
Public repository for Agent Skills
Open-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications β runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravityβ¦)
Agent skill for beautiful, verifiable architecture, workflow, sequence, data-flow, and lifecycle diagramsβself-contained HTML with motion and crisp export.
A skill to stop your coding agent from burying the answer. ADHD-friendly output.