Not in the top 1,000 by GitHub stars
UseOSINT/Skills
28 OSINT Agent Skills that turn Cursor, Claude & AI coding agents into a full open-source intelligence platform — reconnaissance, attribution, GEOINT, breach checks & due diligence. Ethical, sourced, passive-first.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/dig-through-data-brokers/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/find-anyone/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/find-exposed-servers/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/find-hidden-subdomains/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/find-leaks-in-the-wild/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/find-the-original-image/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/follow-the-crypto/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/geolocate-from-pixels/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/google-like-a-spy/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/graph-the-network/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/hunt-a-handle/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/investigate-anything/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/investigate-without-getting-made/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/is-this-photo-real/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/pattern-of-life-from-socials/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/read-deleted-pages/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/recon-a-domain-passively/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/secrets-in-file-metadata/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/secrets-in-git-history/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/track-planes-and-ships/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/useosint/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/what-an-email-reveals/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/what-leaked-about-you/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/where-was-this-taken/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/who-owns-this-domain/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/who-really-owns-it/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/whose-number-is-this/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/write-the-intel-brief/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
skills/x-ray-a-company/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
06243a5620b0 → 06243a5620b0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06243a5620b0
No earlier version was observed for comparison.
Verified commit 06243a5620b0c9c97502edd4ee9e31995a3bdccd
git clone --filter=blob:none --no-checkout https://github.com/UseOSINT/Skills.git .hotskills/useosint-skills && git -C .hotskills/useosint-skills checkout --detach 06243a5620b0c9c97502edd4ee9e31995a3bdccd
# Copy each selected skill directory from .hotskills/useosint-skills into .claude/skills/<skill-name>/Heat
3.1- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- dig-through-data-brokers
skills/dig-through-data-brokers - find-anyone
skills/find-anyone - find-exposed-servers
skills/find-exposed-servers - find-hidden-subdomains
skills/find-hidden-subdomains - find-leaks-in-the-wild
skills/find-leaks-in-the-wild - find-the-original-image
skills/find-the-original-image - follow-the-crypto
skills/follow-the-crypto - geolocate-from-pixels
skills/geolocate-from-pixels - google-like-a-spy
skills/google-like-a-spy - graph-the-network
skills/graph-the-network - hunt-a-handle
skills/hunt-a-handle - investigate-anything
skills/investigate-anything - investigate-without-getting-made
skills/investigate-without-getting-made - is-this-photo-real
skills/is-this-photo-real - pattern-of-life-from-socials
skills/pattern-of-life-from-socials - read-deleted-pages
skills/read-deleted-pages - recon-a-domain-passively
skills/recon-a-domain-passively - secrets-in-file-metadata
skills/secrets-in-file-metadata - secrets-in-git-history
skills/secrets-in-git-history - track-planes-and-ships
skills/track-planes-and-ships - useosint
skills/useosint - what-an-email-reveals
skills/what-an-email-reveals - what-leaked-about-you
skills/what-leaked-about-you - where-was-this-taken
skills/where-was-this-taken - who-owns-this-domain
skills/who-owns-this-domain - who-really-owns-it
skills/who-really-owns-it - whose-number-is-this
skills/whose-number-is-this - write-the-intel-brief
skills/write-the-intel-brief - x-ray-a-company
skills/x-ray-a-company
How it works
dig-through-data-brokers
When your agent uses it
Use people-search aggregators and primary public records to find addresses, phone numbers, relatives, age and background on a person, and to audit and remove your own exposure. Covers Spokeo, BeenVerified, Whitepages, TruePeopleSearch, FastPeopleSearch, That'sThem, Radaris, Intelius and Pipl, plus voter files and county court and property records. Use when running a people search or reverse address lookup, tracing a debtor or missing person, building a subject's address history, or removing yourself from broker sites. Applies to skip tracing and debt recovery, asset investigation, executive protection, and personal exposure audits. Explains the FCRA limits that bar broker data from employment, tenancy, insurance and credit decisions, and the GDPR position. Reference at useosint.com/skills/dig-through-data-brokers.
What it loads into context
Frontmatter
193 tokensAlways available to the agent
SKILL.md
3,219 tokensWhen the skill is activated
Reference documents
2,348 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What these services actually are
- Why the data is wrong
- Triage: what to reach for first
- Method
- The free-tier bait pattern
- FCRA and the rule that actually binds you (US)
- GDPR and the UK/EU position
- Self-defense: audit and remove your own exposure
- Searching yourself leaves a trace
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ToS notes
Files
../../.claude-plugin/marketplace.jsonasset1,019 bytes../../.claude-plugin/marketplace.jsonasset1,019 bytes../../.claude-plugin/plugin.jsonasset1,028 bytes../../.claude-plugin/plugin.jsonasset1,028 bytes../../ETHICS.mddoc1,805 bytesSKILL.mdcore14,937 bytesSKILL.mdcore14,937 bytesSKILL.mdcore14,937 bytesSKILL.mdcore14,937 bytesSKILL.mdcore14,937 bytesreference/source-catalogue.mddoc9,495 bytes
Read SKILL.md
# Dig through data brokers
People-search sites resell a blend of public records, marketing data, and
self-reported data. They are fast, cheap lead generators and terrible evidence.
The one rule that matters: **a broker record is a lead, never a fact.** Confirm
every field you intend to use against the primary source the broker got it from —
and if you cannot identify that primary source, do not use the field.
## What these services actually are
Three input streams, blended and sold:
- **Public records** — property deeds, court filings, business registrations,
voter files where public, professional licences, bankruptcy, marriage andView the complete source on GitHubfind-anyone
When your agent uses it
Build a sourced, corroborated profile of a named individual from public records, social platforms, professional networks, court and property filings, licensing boards, patents, papers and obituaries — anchoring the name to a second selector first so you never fuse two people into one dossier. Use when asked to find, identify, background-check or profile a person, verify someone's claimed employment or credentials, or locate a missing or hard-to-reach individual. Applies to counterparty and investor due diligence, fraud and asset investigation, journalism, skip tracing, missing persons, pre-employment integrity checks on fiduciary roles, and self-exposure audits. Reference at useosint.com/skills/find-anyone.
What it loads into context
Frontmatter
171 tokensAlways available to the agent
SKILL.md
2,902 tokensWhen the skill is activated
Reference documents
2,089 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 — Authorized scope
- Step 2 — Bind the name to a second selector
- Step 3 — Order of operations
- Step 4 — Record provenance as you collect
- Step 5 — Back out when it is a different person
- Step 6 — Family and associate structure
- Step 7 — Report
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore13,218 bytesSKILL.mdcore13,218 bytesSKILL.mdcore13,218 bytesSKILL.mdcore13,218 bytesreference/source-catalogue.mddoc8,152 bytes
Read SKILL.md
# Find anyone
Turn a name into a sourced profile of one specific human. The work is 20% finding
data and 80% proving the data belongs to your subject and not to someone with the
same name. Beginners collect first and disambiguate later; that is how you end up
with a confident, well-cited dossier describing two different people fused into
one. Bind the name to a second selector before you collect anything.
## Step 1 — Authorized scope
Write down, before searching: the subject, the objective, what is in bounds, what
is out of bounds, and which jurisdiction's law governs you and the subject. Read
[../../ETHICS.md](../../ETHICS.md).
View the complete source on GitHubfind-exposed-servers
When your agent uses it
Find internet-exposed hosts, ports, services and devices using third-party internet-scan data instead of touching the target. Covers Shodan and Censys query syntax, service banners, favicon-hash and TLS-certificate pivots, origin-IP discovery behind Cloudflare or a CDN, and exposed databases, dashboards, cameras and ICS devices. Use when asked what a company has exposed to the internet, to check open ports on an IP or netblock, or to write a Shodan filter query. Applies to external attack-surface management, third-party and vendor security review, M&A technical diligence, and pre-engagement reconnaissance. Reference at useosint.com/skills/find-exposed-servers.
What it loads into context
Frontmatter
166 tokensAlways available to the agent
SKILL.md
3,098 tokensWhen the skill is activated
Reference documents
4,417 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Which platform first
- Shodan
- Reading what comes back
- The pivots that matter
- Finding an origin behind a CDN
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ToS notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore13,136 bytesSKILL.mdcore13,136 bytesSKILL.mdcore13,136 bytesSKILL.mdcore13,136 bytesreference/banner-interpretation.mddoc9,243 bytesreference/query-cookbook.mddoc7,026 bytes
Read SKILL.md
# Find exposed servers
Internet-wide scanners already scanned your target. Querying their results is
passive — you never send a packet to the target, so nothing appears in their logs
and nothing is attributable to you. The cost is that every result is a claim about
a moment in the past, and the beginner's mistake is reading a banner as the
current state of a live host.
## Which platform first
| You hold | Reach for | Why |
|---|---|---|
| An IP | Shodan host lookup, or the free InternetDB endpoint | One request gives ports, hostnames, and CPEs |
| A netblock or ASN | Shodan `net:`/`asn:` with port faceting | Shows the shape of the estate before you look at individual hosts |View the complete source on GitHubfind-hidden-subdomains
When your agent uses it
Enumerate an organisation's subdomains and sibling domains from Certificate Transparency logs and passive DNS, without sending traffic to the target. Covers crt.sh and CT log queries, certificate SAN fields, subfinder and amass, and newly issued TLS certificates. Use when looking for staging, dev, admin or VPN hosts, mapping the full hostname footprint of a domain, or spotting infrastructure a company forgot it had. Applies to attack-surface mapping, vendor and supply-chain security review, brand-infringement discovery, and M&A technical diligence. Reference at useosint.com/skills/find-hidden-subdomains.
What it loads into context
Frontmatter
144 tokensAlways available to the agent
SKILL.md
2,956 tokensWhen the skill is activated
Reference documents
4,246 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Which source first
- How CT actually works
- crt.sh
- The SAN field is the prize
- Wildcards hide, they don't reveal
- Combining sources, then resolving
- What a name pattern implies
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ToS notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesSKILL.mdcore12,869 bytesreference/name-pattern-triage.mddoc8,405 bytesreference/subdomain-sources.mddoc7,660 bytes
Read SKILL.md
# Find hidden subdomains
The hosts an organization forgot about are the ones worth finding, and most of
them announced themselves the moment someone requested a TLS certificate.
Certificate Transparency turns that into a searchable, permanent, historical
index — free and completely passive. The beginner's mistake is treating a CT hit
as a live host: most of what you pull back does not resolve, and that is
information too, not noise.
## Which source first
| You hold | Start with | Why |
|---|---|---|
| An apex domain | crt.sh wildcard query | Broadest free coverage, includes long-dead names |View the complete source on GitHubfind-leaks-in-the-wild
When your agent uses it
Find leaked or mentioned selectors circulating in pastes, leak forums, Telegram channels and dump markets, and judge whether a claimed leak is genuine or a recycled combolist. Covers paste aggregators, site: searches over paste hosts, channel indexes and leak-search services. Use when checking whether a name, email, domain or credential is circulating, verifying a breach claim made against your organisation, or setting up ongoing leak monitoring. Applies to incident response and breach triage, threat intelligence, brand and executive protection, and extortion-claim validation. Reference at useosint.com/skills/find-leaks-in-the-wild.
What it loads into context
Frontmatter
151 tokensAlways available to the agent
SKILL.md
2,930 tokensWhen the skill is activated
Reference documents
4,216 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Where to start with what you're holding
- Why paste-site search doesn't work
- Forums: a category with a life cycle
- Telegram is the distribution layer
- Genuine leak or recycled combolist
- Monitoring versus searching once
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and handling notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore14,088 bytesSKILL.mdcore14,088 bytesSKILL.mdcore14,088 bytesSKILL.mdcore14,088 bytesSKILL.mdcore14,088 bytesreference/authenticity-triage.mddoc7,949 bytesreference/source-catalogue.mddoc10,128 bytes
Read SKILL.md
# Find leaks in the wild
This is where data surfaces before anything indexes it, and where most of what
you find is a recombination of things that leaked years ago. Two mistakes cost
people most: assuming a paste host's own search will find pastes, and reporting
a combolist as a breach. The first wastes a day; the second is a factual error
in a deliverable and it will be found.
## Where to start with what you're holding
| You have | Start with | Why |
|---|---|---|
| An email or username | A curated breach service first | Cheap, attributed, and answers most questions — `what-leaked-about-you` |
| A selector you think is circulating now | `site:` sweep of paste hosts, then a paste aggregator | Engines are shallow but free; aggregators reach what was never crawled |View the complete source on GitHubfind-the-original-image
When your agent uses it
Reverse image search across Yandex, Google Lens, Bing Visual Search, TinEye and Baidu to find where a picture came from and who published it first. Use when reverse image searching, identifying a photo, face, logo, product, uniform or building, tracing a profile picture or avatar, finding the oldest copy of an image, checking whether a photo is stock or a repost, or reverse-searching a video by keyframes. Applies to romance and investment scam investigation, fake-profile and synthetic-identity detection, disinformation and media verification, counterfeit and brand-infringement work, and insurance claim review. Reference at useosint.com/skills/find-the-original-image.
What it loads into context
Frontmatter
160 tokensAlways available to the agent
SKILL.md
2,815 tokensWhen the skill is activated
Reference documents
2,965 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Pick your engine by what you are holding
- Method
- Establishing first publication, not just a match
- Face-specific engines and when not to use them
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
Files
SKILL.mdcore12,412 bytesreference/engine-matrix.mddoc6,284 bytesreference/preprocessing.mddoc5,920 bytes
Read SKILL.md
# Find the original image
The goal is almost never "find a match". It is **find the earliest publication
and read its page**. A match tells you the image exists elsewhere; the earliest
page tells you the photographer, the date, the caption, and the names — which is
what you actually pivot on.
The beginner mistake: uploading the full frame to one engine, getting nothing,
and concluding the image is unindexed. Cropping to one distinctive object and
re-searching finds things full-frame search cannot.
## Pick your engine by what you are holding
| You have | Start with | Why |View the complete source on GitHubfollow-the-crypto
When your agent uses it
Trace cryptocurrency addresses and transactions on public blockchains using block explorers including Etherscan, Blockchair, mempool.space and Blockscout. Covers common-input clustering, ENS resolution, exchange deposit addresses, mixers, CoinJoin, Tornado-style pools, cross-chain bridges, and OFAC sanctions screening. Use when following a Bitcoin or Ethereum wallet, investigating where a ransom or scam payment went, or checking an address against sanctions listings. Applies to ransomware incident response, AML and sanctions compliance, fraud recovery and asset tracing, and financial-crime investigation. Reference at useosint.com/skills/follow-the-crypto.
What it loads into context
Frontmatter
149 tokensAlways available to the agent
SKILL.md
2,986 tokensWhen the skill is activated
Reference documents
3,319 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Triage: what are you holding?
- The method
- Where the trail breaks, and what you can still say
- Where this lies to you
- Grading a finding
- Worked example
- Pivots
- Legal and compliance
Files
SKILL.mdcore13,947 bytesSKILL.mdcore13,947 bytesSKILL.mdcore13,947 bytesreference/address-formats.mddoc6,724 bytesreference/explorers-and-tools.mddoc7,770 bytes
Read SKILL.md
# Follow the Crypto
Public chains are pseudonymous, not anonymous. Every transfer is permanently
visible to anyone; what's missing is the mapping from address to human. So the
whole game is attribution, and attribution almost always happens at an
off-ramp — the point where value converts to fiat through a service that
collected identity documents. Everything between the crime and the off-ramp is
just plumbing you have to follow.
The beginner error is treating a clustering heuristic's output as fact. "These
addresses belong to the same entity" is a probabilistic inference with known
failure modes, and commercial attribution labels are proprietary guesses you
cannot audit. Trace confidently; attribute carefully.
View the complete source on GitHubgeolocate-from-pixels
When your agent uses it
Geolocate and chronolocate a photo or video from visual evidence alone — plate and phone number formats, road markings, utility poles, bollards, signage typefaces, architecture and vegetation for place; shadow direction and length with SunCalc for time and date. Use when asked where or when a picture was taken, to verify a claimed location without GPS or EXIF, or to match a scene against Google Earth, Street View, Yandex Panoramas, Mapillary or KartaView. Applies to GEOINT and conflict monitoring, insurance and claims verification, journalism fact-checking, and evidence review. Reference at useosint.com/skills/geolocate-from-pixels.
What it loads into context
Frontmatter
163 tokensAlways available to the agent
SKILL.md
3,481 tokensWhen the skill is activated
Reference documents
8,041 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Rank your clues before you search
- Method
- Imagery sources and where each one wins
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ethical notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore15,605 bytesSKILL.mdcore15,605 bytesSKILL.mdcore15,605 bytesreference/chronolocation.mddoc13,096 bytesreference/regional-indicators.mddoc20,847 bytes
Read SKILL.md
# Geolocate from pixels
Every photograph taken outdoors contains enough information to place it. The
constraint is never the image; it is your patience and your reference knowledge.
The beginner mistake is searching before inventorying. People see a mountain,
type "mountain with two peaks" into a search box, and get nothing. The method is
the opposite: extract every clue first, rank them by how much of the planet each
one eliminates, and only then start searching — because the clue that pins the
country is usually not the one your eye went to.
## Rank your clues before you search
Work down this list. Each row eliminates far more of the world than the one belowView the complete source on GitHubgoogle-like-a-spy
When your agent uses it
Craft advanced search-engine queries and Google dorks to surface hidden files, documents and mentions. Covers site:, filetype:, inurl:, intitle:, intext: and before:/after: operators, verbatim search, exposed directory listings, config files, backups and open S3 buckets, and the operator differences between Google, Bing, DuckDuckGo and Yandex. Use when building a Google dork, hunting a leaked document, or searching paste sites and document repositories for a name, email or selector. Applies to data-exposure audits, pre-engagement reconnaissance, competitive and regulatory research, and insider-leak investigation. Reference at useosint.com/skills/google-like-a-spy.
What it loads into context
Frontmatter
164 tokensAlways available to the agent
SKILL.md
3,328 tokensWhen the skill is activated
Reference documents
4,283 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Which engine for which job
- Operators that still behave
- Operators people still cite that no longer earn their place
- Forcing literal matching
- Finding a target's material outside its own site
- Discovery dorking, defensively framed
- Rate limits, CAPTCHAs, and why automation breaks
- Specialised indexes
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ToS notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore14,614 bytesSKILL.mdcore14,614 bytesreference/dork-cookbook.mddoc8,463 bytesreference/engine-operators.mddoc8,013 bytes
Read SKILL.md
# Search operators
Operators turn a search box into a filter over a crawled index. The cost is that
you are querying somebody's *index*, not the web — coverage, freshness and
operator fidelity vary enormously between engines. The mistake beginners make is
assuming their query ran as typed. Google routinely drops, stems, and
synonym-expands your terms, so a zero-result dork and a silently-rewritten dork
look nothing alike but are equally useless.
## Which engine for which job
| You want | Go to | Why |
|---|---|---|
| Broad coverage of mainstream web | Google | Largest index, worst operator fidelity |View the complete source on GitHubgraph-the-network
When your agent uses it
Build an entity-relationship link-analysis graph of an investigation — nodes, typed edges carrying source and confidence, aliases, and temporal validity — to expose shared infrastructure, bridging nodes and the real principal behind a frontman. Covers Maltego, Neo4j and Cypher, Gephi, centrality and community detection, and entity resolution. Use when an investigation has outgrown a list and needs a graph, or when asked how a set of people, companies and domains connect. Applies to fraud-ring and shell-network detection, AML and sanctions-evasion analysis, and complex corporate-structure work. Reference at useosint.com/skills/graph-the-network.
What it loads into context
Frontmatter
155 tokensAlways available to the agent
SKILL.md
2,873 tokensWhen the skill is activated
Reference documents
3,591 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Decide the schema before the second node
- Source and confidence go on the edge
- What the graph actually gives you
- Tools
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and handling notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesSKILL.mdcore12,933 bytesreference/schema-starter.mddoc5,939 bytesreference/tool-comparison.mddoc7,129 bytes
Read SKILL.md
# Graph the network
A list of thirty selectors and a graph of thirty selectors contain identical
information, and only one of them lets you see that two clusters share a node.
That is the entire justification: humans do not detect shared elements across
rows, and detect them instantly in a layout. The beginner mistake is treating
the graph as an output — a picture drawn at the end for the report. It is the
case's working memory, built from the first pivot, and the report is generated
from it.
## Decide the schema before the second node
Everything useful downstream — deduplication, centrality, querying, the report
table — depends on decisions made in the first ten minutes. Two rules:View the complete source on GitHubhunt-a-handle
When your agent uses it
Enumerate a username across hundreds of platforms with sherlock, maigret and WhatsMyName, then correlate and confirm which accounts genuinely belong to the same person. Use for username OSINT and handle enumeration, "find all accounts for this username", cross-platform account correlation, nickname and screen-name pivots, or turning a handle into a real name. Applies to fraud and synthetic-identity investigation, recruitment and marketplace scam checks, trust-and-safety enforcement, insider-threat work, and personal exposure audits. Reference at useosint.com/skills/hunt-a-handle.
What it loads into context
Frontmatter
142 tokensAlways available to the agent
SKILL.md
2,342 tokensWhen the skill is activated
Reference documents
2,758 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 — Authorized scope
- Step 2 — Pick your enumerator
- Step 3 — Generate variants
- Step 4 — Confirm, or reject
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ToS notes
- Step 5 — Report
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore10,105 bytesSKILL.mdcore10,105 bytesreference/platform-leakage.mddoc5,251 bytesreference/variant-patterns.mddoc4,588 bytes
Read SKILL.md
# Hunt a handle
Handle reuse is the cheapest strong link in OSINT: one string, checked in
minutes, potentially tying a dozen platforms to one person. It is also the most
over-trusted. Enumerators do not verify identity — they perform HTTP existence
checks — and a hit list is a list of *candidates*, nothing more. The mistake
that ruins these investigations is pasting the tool's output into the report.
Enumeration is the cheap half; confirmation is the work.
## Step 1 — Authorized scope
Read [../../ETHICS.md](../../ETHICS.md) and write down, before any query:
subject, objective, in-bounds selectors, out-of-bounds actions (logging in,
contacting, requesting follows), and the governing jurisdiction. Handle huntingView the complete source on GitHubinvestigate-anything
When your agent uses it
Start-here router and tradecraft baseline for any investigation into a person, company, domain, image or selector. Sets authorised scope, turns a vague request into an answerable intelligence question, writes a collection plan, picks the right workflow for the starting selector, and applies source grading and competing-hypothesis discipline. Use for "investigate this person or company", "do OSINT on X", "where do I start", or any open-source intelligence, due diligence, background or attribution task. Applies across due diligence, fraud, threat intelligence, journalism and compliance. Reference at useosint.com/skills/investigate-anything.
What it loads into context
Frontmatter
159 tokensAlways available to the agent
SKILL.md
2,784 tokensWhen the skill is activated
Reference documents
2,886 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core vocabulary
- Step 1 — Authorized scope
- Step 2 — Frame an answerable question
- Step 3 — Write the collection plan before collecting
- Step 4 — Route by starting selector
- Step 5 — Grade sources as you collect, not afterwards
- Step 6 — Test hypotheses against each other
- Where this goes wrong
- Confidence grading
- When to stop
- Worked example
- Pivots
- Legal notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore12,384 bytesSKILL.mdcore12,384 bytesSKILL.mdcore12,384 bytesSKILL.mdcore12,384 bytesSKILL.mdcore12,384 bytesSKILL.mdcore12,384 bytesSKILL.mdcore12,384 bytesSKILL.mdcore12,384 bytesreference/ach-worksheet.mddoc5,030 bytesreference/source-grading.mddoc5,773 bytes
Read SKILL.md
# Investigate anything
The front door. Everything downstream is faster than the thinking that should
precede it, which is why most bad investigations are not collection failures —
they are framing failures. You can run forty tools against a name and produce a
confident dossier on the wrong person. The work here is deciding what question
you are answering, what would count as an answer, and what would prove you
wrong.
## Core vocabulary
Used across every skill in this repo, defined only here.
- **Selector** — one identifiable data point: name, handle, email, phone,View the complete source on GitHubinvestigate-without-getting-made
When your agent uses it
Investigator OPSEC — threat-model who might notice you, control your attribution surface across IP, ASN, browser and TLS fingerprint, timing and logged-in accounts, separate research identity from real identity, build and age a sockpuppet research persona, and choose between VPN, residential proxy and Tor. Use when setting up a research account, avoiding tipping off a subject, worrying about LinkedIn profile-view leakage, needing a burner phone or email, or hardening a research VM or browser profile. Applies to covert due diligence, insider-threat investigation, source protection in journalism, and law-enforcement online work. Reference at useosint.com/skills/investigate-without-getting-made.
What it loads into context
Frontmatter
165 tokensAlways available to the agent
SKILL.md
3,320 tokensWhen the skill is activated
Reference documents
3,207 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Threat-model first
- Your attribution surface
- Separation is absolute
- Personas
- Network egress
- Environment and compartmentation
- Where this goes wrong
- Grading your exposure
- Worked example
- Pivots
- Legal and ToS notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore15,656 bytesSKILL.mdcore15,656 bytesSKILL.mdcore15,656 bytesreference/attribution-surface.mddoc6,028 bytesreference/persona-runbook.mddoc7,184 bytes
Read SKILL.md
# Investigate without getting made
Collection is bidirectional. Most investigators are burned not by a clever
adversary but by a platform doing exactly what it advertises: telling the
subject who looked at their profile, suggesting the investigator to the subject
as someone they may know, or marking a story as viewed. The default failure is
not a leaked IP address. It is being logged into a real account.
## Threat-model first
OPSEC effort should be proportionate. Answer three questions before you spend a
day building infrastructure — or before you decide you need none.
1. **Who might notice?** A dormant shell company, a moderately technicalView the complete source on GitHubis-this-photo-real
When your agent uses it
Verify whether an image or video is authentic, original and correctly captioned — provenance checks, error level analysis, noise and JPEG compression analysis, clone and copy-move detection, lighting and shadow consistency, C2PA Content Credentials, deepfake and AI-generation tells, and the honest limits of AI-detector tools. Use when fact-checking a photo or video, checking for a deepfake or AI-generated image, spotting manipulation, or testing whether footage is recycled or miscaptioned. Applies to KYC and onboarding fraud, insurance claim review, disinformation analysis, and evidence admissibility. Reference at useosint.com/skills/is-this-photo-real.
What it loads into context
Frontmatter
156 tokensAlways available to the agent
SKILL.md
3,494 tokensWhen the skill is activated
Reference documents
4,624 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Triage: what question are you actually answering
- Method
- Lighting, shadow and geometry — the checks that hold up
- Error level analysis, and why it is mostly used wrongly
- C2PA and Content Credentials
- AI generation — durable tells and tells that rot
- Video
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ethical notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore16,045 bytesSKILL.mdcore16,045 bytesSKILL.mdcore16,045 bytesSKILL.mdcore16,045 bytesreference/tool-catalogue.mddoc10,989 bytesreference/verification-checklist.mddoc8,922 bytes
Read SKILL.md
# Is this photo real
Verification order is the whole skill: **provenance first, pixels last.** Finding the
earliest copy and reading its caption settles more cases than every forensic filter
combined, and it produces evidence you can show someone. Pixel forensics produces a
colourful heatmap and an argument.
The beginner mistake is running error level analysis on a downloaded JPEG and announcing
the image is fake. The second is looking for deepfakes: the overwhelming majority of
deceptive media is **real footage with a false caption** — right pixels, wrong war,
wrong year, wrong country.
## Triage: what question are you actually answering
View the complete source on GitHubpattern-of-life-from-socials
When your agent uses it
Deep-dive a subject's social media presence — profile metadata, follower and mutual network, content analysis, and posting-time pattern of life across Instagram, Facebook, X/Twitter, TikTok, LinkedIn, Reddit, Telegram and Discord. Use when profiling a social account, mapping someone's associates, inferring a subject's timezone or routine from their posts, or archiving a profile before it is deleted. Applies to threat assessment and executive protection, insider-threat investigation, pre-litigation research, and personal exposure audits — with explicit limits on profiling uninvolved third parties. Reference at useosint.com/skills/pattern-of-life-from-socials.
What it loads into context
Frontmatter
162 tokensAlways available to the agent
SKILL.md
2,730 tokensWhen the skill is activated
Reference documents
3,855 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 — Authorized scope
- Step 2 — Choose a viewing identity, then preserve
- Step 3 — Layer one: account metadata
- Step 4 — Layer two: network
- Step 5 — Layer three: content
- Step 6 — Layer four: temporal behaviour
- Step 7 — Consolidate and report
- Where this goes wrong
- Grading a finding
- Worked example
- Pivots
- Legal and ToS
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore12,399 bytesreference/analytic-checklist.mddoc7,373 bytesreference/platform-disclosure.mddoc8,751 bytes
Read SKILL.md
# Pattern of Life from Socials
Pattern-of-life analysis turns scattered public posts into a model of where
someone is, when, and with whom. It is the most abusable technique in this
repo: the same method produces a due-diligence report and a stalking dossier.
The difference is authorization and scope, not tradecraft. The beginner error
is collecting posts instead of analysing them — screenshots of a feed are not
intelligence. Work four layers: account metadata, network, content, temporal
behaviour. The first and last are the two everyone skips, and the two the
subject can't curate.
## Step 1 — Authorized scope
Read [../../ETHICS.md](../../ETHICS.md), then write down before opening aView the complete source on GitHubread-deleted-pages
When your agent uses it
Recover deleted, edited or historical web content using the Wayback Machine and its CDX API, archive.today, Common Crawl and Memento/Timetravel. Use when a page is deleted, changed or 404s, checking what a site used to say, finding old team or staff pages, prior pricing, removed posts, pre-redaction wording or old contact details, enumerating every archived URL for a domain, or preserving evidence before it disappears. Applies to litigation and evidence preservation, regulatory and disclosure review, due diligence on a company's history, and journalism. Reference at useosint.com/skills/read-deleted-pages.
What it loads into context
Frontmatter
148 tokensAlways available to the agent
SKILL.md
3,199 tokensWhen the skill is activated
Reference documents
4,493 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Which archive first
- The CDX API is the actual tool
- Replay is not the capture
- What this actually recovers
- Preserve it before you look further
- Verifying a capture is genuine
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and handling notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore14,001 bytesSKILL.mdcore14,001 bytesSKILL.mdcore14,001 bytesSKILL.mdcore14,001 bytesSKILL.mdcore14,001 bytesreference/archive-comparison.mddoc8,823 bytesreference/cdx-cookbook.mddoc8,767 bytes
Read SKILL.md
# Read deleted pages
Archives work because removal is a decision made after publication. The
beginner's mistake is treating the Wayback Machine as a website you browse: the
calendar UI shows one page at a time, while the CDX API enumerates every URL the
archive ever saw under a host, including paths nobody remembers.
## Which archive first
| Situation | Go to | Why |
|---|---|---|
| A URL that 404s now | Wayback, then archive.today | Different corpora, different removal pressure |
| "What did this site say before X" | Wayback CDX with `collapse=digest` | Gives the dates content changed, not every capture |
| A JS-heavy page or a social post | archive.today | Captures the rendered DOM; Wayback often replays an empty shell |View the complete source on GitHubrecon-a-domain-passively
When your agent uses it
End-to-end passive reconnaissance for a domain, website or IP — builds an asset inventory covering registration, DNS, subdomains, infrastructure, tech stack, history and ownership without sending a single packet to the target. Use when asked to research or profile a domain or website, map what an organisation runs, or investigate a suspicious site without alerting its operator. Applies to vendor and third-party risk assessment, attack-surface review, M&A technical diligence, phishing and fraud-site investigation, and pre-engagement scoping. Reference at useosint.com/skills/recon-a-domain-passively.
What it loads into context
Frontmatter
150 tokensAlways available to the agent
SKILL.md
3,014 tokensWhen the skill is activated
Reference documents
1,934 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Ordering logic
- Step 1 — Authorized scope
- Step 2 — Registration and DNS baseline
- Step 3 — Expand the name space
- Step 4 — Resolve and start the inventory
- Step 5 — Infrastructure and services
- Step 6 — Content, history, code and tech stack
- Step 7 — Decide whether the map is done
- Step 8 — Hand off the owner
- Step 9 — Report
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots out
- Legal and ToS notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore13,496 bytesSKILL.mdcore13,496 bytesSKILL.mdcore13,496 bytesSKILL.mdcore13,496 bytesSKILL.mdcore13,496 bytesreference/asset-inventory.mddoc6,875 bytes
Read SKILL.md
# Recon a domain passively
Turn one domain into a defensible map of an organization's internet-facing estate
plus the owner behind it. The techniques live in other skills; what this workflow
contributes is the **order**, the **inventory**, and the **stopping rule**. Two
failure modes to avoid from the start: enumerating for hours and producing 400
hostnames with no attribution, dates or priority, which is not a map; and drifting
active without noticing, because one probe "just to check if it's up" ends the
passive claim. Decide the passive boundary before step 2, not during it.
## Ordering logic
Each stage feeds the next, and the sequence is cheapest-and-quietest first:
View the complete source on GitHubsecrets-in-file-metadata
When your agent uses it
Extract and interpret embedded file metadata with exiftool — EXIF GPS coordinates, camera make, model and serial, DateTimeOriginal and CreateDate timestamps, XMP and IPTC fields, and Office and PDF properties such as Author, Company, LastModifiedBy, template paths and revision counts. Use when reading EXIF from a photo, checking who really wrote a document, dating a file, fingerprinting a camera or phone, or investigating provenance in JPEG, HEIC, RAW, MP4, DOCX, XLSX or PDF. Applies to document-provenance disputes, insider-leak attribution, evidence handling, and pre-publication redaction checks. Reference at useosint.com/skills/secrets-in-file-metadata.
What it loads into context
Frontmatter
172 tokensAlways available to the agent
SKILL.md
3,576 tokensWhen the skill is activated
Reference documents
5,457 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Where to look first, given what you have
- exiftool, properly
- Reading the high-value fields
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore14,923 bytesSKILL.mdcore14,923 bytesSKILL.mdcore14,923 bytesSKILL.mdcore14,923 bytesSKILL.mdcore14,923 bytesSKILL.mdcore14,923 bytesSKILL.mdcore14,923 bytesSKILL.mdcore14,923 bytesreference/exiftool-cookbook.mddoc8,014 bytesreference/tag-catalogue.mddoc11,884 bytes
Read SKILL.md
# Secrets in file metadata
The fastest lead in an investigation is often already inside the file: GPS to six
decimal places, a camera serial that ties four "unrelated" images to one body, a
document author who is a real employee, a template path containing a corporate
share name.
Two things beginners get wrong. Absent metadata is not suspicious — it is the
normal state of anything that passed through a social platform. And present
metadata is not proof: every tag is a **claim written by whatever software touched
the file last**, and all of it is editable with one command.
## Where to look first, given what you have
View the complete source on GitHubsecrets-in-git-history
When your agent uses it
Mine GitHub, GitLab and git history for identities, infrastructure and leaked credentials using commit author emails, GitHub code search, the commit .patch endpoint, trufflehog, gitleaks, git log pickaxe and full-ref history scans. Use when investigating a developer or organisation on GitHub, finding leaked API keys, AWS keys or tokens in code, enumerating org members and their personal repos, or recovering secrets deleted from HEAD but still present in history or forks. Applies to software supply-chain risk, credential exposure response, M&A technical diligence, and insider-threat investigation. Reference at useosint.com/skills/secrets-in-git-history.
What it loads into context
Frontmatter
157 tokensAlways available to the agent
SKILL.md
3,002 tokensWhen the skill is activated
Reference documents
4,844 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What you're holding, and where to start
- The commit email leak
- Enumerating an organisation as a social graph
- Code search and its real limits
- Everything that survives deletion
- Scanning properly
- Exposed .git directories
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal, disclosure, and the one hard rule
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore13,639 bytesSKILL.mdcore13,639 bytesSKILL.mdcore13,639 bytesSKILL.mdcore13,639 bytesSKILL.mdcore13,639 bytesreference/git-archaeology.mddoc9,022 bytesreference/high-signal-indicators.mddoc9,045 bytes
Read SKILL.md
# Secrets in git history
A repository is three intelligence products: a list of humans with real email
addresses, a map of the organisation's infrastructure, and a credential store
nobody meant to publish. The costly mistake is scanning the working tree.
Secrets deleted from HEAD stay in history forever, and commits deleted from a
branch stay reachable through the fork network — scan only what is checked out
and you are searching the one place the secret was definitely removed from.
## What you're holding, and where to start
| You have | Start with | Why |
|---|---|---|
| An organisation name | Public org members, then their personal repos | Corporate repos are reviewed; personal ones are not |View the complete source on GitHubtrack-planes-and-ships
When your agent uses it
Track aircraft and vessels from public ADS-B and AIS broadcasts using ADS-B Exchange, Flightradar24, FlightAware, MarineTraffic, VesselFinder and Equasis. Use when following a tail number or flight, looking up an ICAO 24-bit hex code, registration or callsign, tracing a ship by IMO number or MMSI, checking a flag of convenience or port-call history, finding who owns a private jet or vessel, or analysing AIS gaps and dark-fleet behaviour. Applies to sanctions-evasion detection, trade and supply-chain compliance, asset tracing and recovery, and investigative journalism. Reference at useosint.com/skills/track-planes-and-ships.
What it loads into context
Frontmatter
160 tokensAlways available to the agent
SKILL.md
3,093 tokensWhen the skill is activated
Reference documents
2,964 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Triage: which identifier do you have?
- Aircraft: how ADS-B actually works
- Vessels: how AIS differs, and why that matters
- Where this lies to you
- Grading a finding
- Worked example
- Pivots
- Legal and ToS
Files
SKILL.mdcore14,330 bytesSKILL.mdcore14,330 bytesSKILL.mdcore14,330 bytesreference/data-sources.mddoc7,653 bytesreference/identifiers.mddoc6,217 bytes
Read SKILL.md
# Track Planes and Ships
Aircraft and ships announce themselves over the air, and volunteers with cheap
receivers write it all down. That gives you movement history for most civil
traffic and, through registries, a path to ownership. The cost: the data is
self-reported by the vehicle, so it is exactly as truthful as its operator
chooses. The beginner error is chasing the wrong identifier — tail numbers,
callsigns, vessel names and MMSIs all change, while ICAO hex codes and IMO
numbers largely don't. Resolve to the durable identifier first and everything
downstream survives a rename.
## Triage: which identifier do you have?
| You have | Resolve to | Why |View the complete source on GitHubuseosint
When your agent uses it
Entry point for open-source intelligence, investigation and verification work. Routes any identifier — a name, phone number, email address, username, domain, company, photo, crypto address, tail number or IMO — to the right investigation workflow, after setting an authorised scope. Use when asked to investigate, research, verify, vet, check out, look up, background-check, trace, attribute or find someone or something; when a request involves due diligence, KYC or KYB, counterparty or vendor risk, sanctions and PEP screening, AML, fraud, business email compromise, verifying a supplier before payment, recruitment or marketplace scams, insider threat, executive protection, attack-surface review, journalism or fact-checking; or when someone asks "who is this", "who owns this", "is this real", "where did this come from" or "where do I start". Reference at useosint.com/skills.
What it loads into context
Frontmatter
214 tokensAlways available to the agent
SKILL.md
1,431 tokensWhen the skill is activated
Reference documents
407 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Sources
- Step 1 — Scope before you collect
- Step 2 — Route on the selector you hold
- Step 3 — Work cheapest and least intrusive first
- Step 4 — Grade before you report
- Where this goes wrong
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore6,056 bytesSKILL.mdcore6,056 bytesSKILL.mdcore6,056 bytesSKILL.mdcore6,056 bytes
Read SKILL.md
# useOSINT
Router for investigation work. Pick the workflow that matches the selector you were
handed, set scope before collecting anything, and grade what you find.
## Sources
Your knowledge of breach corpora, data-broker coverage, registry endpoints and platform
APIs may be outdated. **Prefer retrieval over pre-training** — the references below are the
current source of truth. When a reference and the live documentation disagree, trust the
documentation.
| Source | Use for | URL |
|---|---|---|View the complete source on GitHubwhat-an-email-reveals
When your agent uses it
Investigate an email address — MX and syntactic validation, Gravatar lookup, corporate email-format inference, breach exposure, and full mail-header analysis covering the Received chain, Message-ID and SPF, DKIM and DMARC results. Use for email OSINT, verifying whether an address exists, finding accounts registered to it, guessing a company's email format, or tracing where a suspicious message actually came from. Applies to business email compromise and invoice-fraud investigation, phishing triage, vendor-payment verification, and pre-engagement research. Reference at useosint.com/skills/what-an-email-reveals.
What it loads into context
Frontmatter
154 tokensAlways available to the agent
SKILL.md
2,449 tokensWhen the skill is activated
Reference documents
2,586 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 — Authorized scope
- Step 2 — Parse and validate
- Step 3 — Gravatar
- Step 4 — Where is this address registered
- Step 5 — Read the headers, if you have the message
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ToS notes
- Step 6 — Report
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore10,939 bytesSKILL.mdcore10,939 bytesSKILL.mdcore10,939 bytesreference/corporate-formats.mddoc4,481 bytesreference/header-fields.mddoc5,014 bytes
Read SKILL.md
# What an email reveals
An email address is usually the highest-value selector in an investigation: it
carries a name, a domain, an account history, and a breach footprint. The
beginner error is trying to prove the address exists. Existence is the least
interesting thing about it, it is the hardest thing to establish passively, and
the techniques that establish it are the ones that expose you. Work the
structure and the footprint first; treat validation as a bonus.
Never send mail to the subject as a research technique.
## Step 1 — Authorized scope
Read [../../ETHICS.md](../../ETHICS.md). Write down subject, objective,View the complete source on GitHubwhat-leaked-about-you
When your agent uses it
Check and interpret data-breach exposure for an email, username, phone or name using Have I Been Pwned, the Pwned Passwords k-anonymity range API, DeHashed, IntelX and Snusbase. Use when checking breach or leak exposure, finding which services an account was registered with, interpreting a combolist or credential dump, assessing credential compromise, or auditing your own leaked personal data. Applies to incident response and account-takeover triage, executive and VIP protection, pre-employment and vendor risk screening, and personal privacy audits. Reference at useosint.com/skills/what-leaked-about-you.
What it loads into context
Frontmatter
155 tokensAlways available to the agent
SKILL.md
2,606 tokensWhen the skill is activated
Reference documents
3,067 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What a record actually contains, and what matters
- Choosing a source
- The rule that has no exceptions
- The real pivot: service enumeration
- Hashes are out of scope
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and handling notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore11,914 bytesSKILL.mdcore11,914 bytesSKILL.mdcore11,914 bytesSKILL.mdcore11,914 bytesSKILL.mdcore11,914 bytesSKILL.mdcore11,914 bytesSKILL.mdcore11,914 bytesSKILL.mdcore11,914 bytesSKILL.mdcore11,914 bytesreference/record-fields.mddoc6,182 bytesreference/source-catalogue.mddoc6,233 bytes
Read SKILL.md
# What leaked about you
Breach data answers a question nothing else answers cheaply: which services did
this identity actually use. That service list is almost always worth more to an
investigator than the credentials in the record — and the credentials are the
part you must never touch. Using a leaked password is unauthorized access, no
matter how public the dump was.
## What a record actually contains, and what matters
A breach record is a row from a service's user table. Typical fields: email,
username, a password hash (or plaintext, in bad cases), registration date, last
login, IP address at signup, display name, date of birth, physical address,
security questions, and whatever the service happened to collect.View the complete source on GitHubwhere-was-this-taken
When your agent uses it
End-to-end workflow to establish where and when a photo or video was captured and whether it is authentic — evidentiary handling, metadata extraction, reverse image search for provenance, visual geolocation, chronolocation from shadows, and manipulation checks, ending in a location finding with a stated confidence radius. Use when asked to verify where an image was taken, confirm or refute a claimed location or date, or authenticate media before relying on it. Applies to insurance claims, litigation evidence, disinformation analysis, and conflict and human-rights documentation. Reference at useosint.com/skills/where-was-this-taken.
What it loads into context
Frontmatter
158 tokensAlways available to the agent
SKILL.md
2,563 tokensWhen the skill is activated
Reference documents
407 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 — Authorized scope
- Step 2 — Secure a pristine copy
- Step 3 — Metadata
- Step 4 — Provenance
- Step 5 — Visual geolocation
- Step 6 — Chronolocation
- Step 7 — Authenticity
- Step 8 — Decide whether the claim is corroborated
- Step 9 — Express the finding
- Step 10 — Handoff
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore11,727 bytesSKILL.mdcore11,727 bytes
Read SKILL.md
# Where was this taken
Input: an image or video file, or a URL to one. Output: a location with a confidence
radius, a time window, an authenticity assessment, and the evidence chain for each.
This workflow orchestrates. The technique detail lives in `secrets-in-file-metadata`,
`find-the-original-image`, `geolocate-from-pixels` and `is-this-photo-real` — run
those, don't reimplement them here.
The order matters more than anything else in this file. Metadata before analysis,
because analysis destroys metadata. Provenance before geolocation, because the
original's caption often *is* the location. Authenticity checks before you commit,
because geolocating a composite gives you a confident answer to the wrong question.
View the complete source on GitHubwho-owns-this-domain
When your agent uses it
Establish who registered and who operates a domain using WHOIS, RDAP and DNS. Use when running a whois lookup, querying RDAP, digging A, AAAA, MX, NS, TXT, SOA or CAA records, reading SPF includes, DKIM selectors or DMARC rua addresses, finding the registrar, registrant or nameservers, doing reverse DNS, PTR, ASN or netblock lookups, or hunting historical WHOIS and passive DNS. Applies to phishing and brand-abuse takedown, domain-dispute and UDRP evidence, vendor verification before payment, and infrastructure attribution. Reference at useosint.com/skills/who-owns-this-domain.
What it loads into context
Frontmatter
159 tokensAlways available to the agent
SKILL.md
2,984 tokensWhen the skill is activated
Reference documents
5,123 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Which source first
- WHOIS versus RDAP
- What redaction actually removes
- The DNS pass
- IP, ASN, and what shared hosting costs you
- Historical WHOIS and passive DNS
- Zone transfers and zone walking
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ToS notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore12,699 bytesSKILL.mdcore12,699 bytesSKILL.mdcore12,699 bytesSKILL.mdcore12,699 bytesSKILL.mdcore12,699 bytesreference/dns-record-types.mddoc7,383 bytesreference/vendor-fingerprints.mddoc10,497 bytes
Read SKILL.md
# Who owns this domain
Registration data tells you who bought the name; DNS tells you who runs the
service. They are frequently different parties, and conflating them is the
mistake that wrecks attribution. Everything here is passive except where flagged
— but note that `dig` aimed at the target's own nameservers lands in the
target's query logs, so resolve through a public recursive resolver or passive
DNS when you care about being quiet.
## Which source first
| You hold | Reach for | Why |
|---|---|---|
| A domain, nothing else | RDAP, then registrar WHOIS | Structured, gives dates + registrar + status in one hit |View the complete source on GitHubwho-really-owns-it
When your agent uses it
Research companies, directors, shareholders and ultimate beneficial ownership in official corporate registries, filings and offshore datasets — OpenCorporates, UK Companies House and the PSC register, SEC EDGAR, US Secretary of State registries, EU business registers, GLEIF LEI records, OpenOwnership, OpenSanctions and the ICIJ Offshore Leaks database. Use when asked who owns or controls a company, to find a person's other directorships, or to unpick a group structure. Applies to KYB and UBO verification, AML and sanctions screening, nominee and shell-company detection, procurement integrity, and M&A diligence. Reference at useosint.com/skills/who-really-owns-it.
What it loads into context
Frontmatter
170 tokensAlways available to the agent
SKILL.md
3,149 tokensWhen the skill is activated
Reference documents
4,266 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Triage
- Method
- Beneficial ownership, and where it stops working
- Registered agents and mass addresses
- Offshore jurisdictions and leak-derived data
- The officer pivot
- Dissolved companies and the historical record
- Filing dates as a timeline
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ToS notes
Files
SKILL.mdcore14,795 bytesSKILL.mdcore14,795 bytesSKILL.mdcore14,795 bytesreference/filing-interpretation.mddoc9,659 bytesreference/registry-catalogue.mddoc11,384 bytes
Read SKILL.md
# Who really owns it
Registries turn a brand into a legal entity with a number, dates, addresses, and
named people. The thing nobody tells you first: **registry structure varies
enormously by jurisdiction, and that variance is the entire game.** One country
publishes full accounts, share registers, and directors' birth dates for free.
Its neighbour publishes a name and a status code and charges for the rest. Your
research strategy is not "look up the company" — it is "work out what this
jurisdiction lets me see, then plan around the gap".
Second thing: search by **company number**, not name. The number is issued once
and persists through renames, mergers, and dissolution. The name does not.
## TriageView the complete source on GitHubwhose-number-is-this
When your agent uses it
Investigate a phone number — E.164 normalisation with libphonenumber, phoneinfoga scanning, carrier and line-type identification, VoIP and burner detection, messaging-app registration checks, and reverse-lookup and caller-ID sources. Use for phone OSINT and reverse phone lookup, "who owns this number", identifying a burner or VoIP number, or checking whether a number is registered on WhatsApp, Telegram or Signal. Applies to vishing and business email compromise investigation, verifying a counterparty before sending payment, recruitment and marketplace scam checks, and fraud triage. Reference at useosint.com/skills/whose-number-is-this.
What it loads into context
Frontmatter
161 tokensAlways available to the agent
SKILL.md
2,484 tokensWhen the skill is activated
Reference documents
2,947 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 — Authorized scope
- Step 2 — Normalise to E.164 first
- Step 3 — Carrier, VoIP, and why both lie
- Step 4 — Messaging-app disclosure
- Step 5 — Search the number as a string, in every format
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal and ToS notes
- Step 6 — Report
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore11,072 bytesSKILL.mdcore11,072 bytesSKILL.mdcore11,072 bytesSKILL.mdcore11,072 bytesSKILL.mdcore11,072 bytesreference/format-permutations.mddoc5,245 bytesreference/line-types.mddoc5,393 bytes
Read SKILL.md
# Whose number is this
A phone number is a strong selector: expensive to acquire, hard to change, and
used as an account-recovery anchor almost everywhere. It is also the selector
investigators get most wrong, because the metadata everyone quotes — the carrier
— is frequently stale, and because a large share of numbers now belong to
software rather than to a SIM in someone's pocket. Do not call or text the
subject; that is contact, not research.
## Step 1 — Authorized scope
Read [../../ETHICS.md](../../ETHICS.md). Write down subject, objective,
in-bounds selectors, out-of-bounds actions, and the governing jurisdiction —
which matters more here than in most skills, because reverse phone lookup isView the complete source on GitHubwrite-the-intel-brief
When your agent uses it
Turn findings into a defensible intelligence product — BLUF key judgements, standardised estimative probability language, per-claim sourcing with timestamps and archived copies, separated observation, inference and assessment, documented negative findings and gaps, chain of custody and hashing, and redaction of uninvolved parties. Use when writing an intelligence report, due-diligence memo, evidence pack or executive summary, or when asked to write up an investigation so it survives challenge. Applies to regulated compliance reporting, litigation and disclosure, board and investment committee reporting, and law-enforcement referral. Reference at useosint.com/skills/write-the-intel-brief.
What it loads into context
Frontmatter
161 tokensAlways available to the agent
SKILL.md
2,749 tokensWhen the skill is activated
Reference documents
2,913 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 — Sort every claim into observation, inference, or assessment
- Step 2 — Attach source, timestamp, and an archived copy to every claim
- Step 3 — Lead with the judgements
- Step 4 — Use the probability ladder, and only it
- Step 5 — Write the negative findings
- Step 6 — Document method and gaps
- Step 7 — Minimise, redact, and format for the audience
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore12,649 bytesSKILL.mdcore12,649 bytesSKILL.mdcore12,649 bytesSKILL.mdcore12,649 bytesSKILL.mdcore12,649 bytesSKILL.mdcore12,649 bytesSKILL.mdcore12,649 bytesreference/estimative-language.mddoc5,433 bytesreference/report-template.mddoc5,403 bytes
Read SKILL.md
# Write the intel brief
The report is the only part of the investigation anyone else sees, so it is the
only part that can be wrong in public. The failure that destroys credibility
isn't a missed source — it's a sentence that reads as fact and is actually an
inference. "The account is operated from Lisbon" versus "posting times cluster
in UTC+0/+1, consistent with Iberian working hours." One survives cross-
examination.
## Step 1 — Sort every claim into observation, inference, or assessment
Three categories, never blurred, ideally visually distinct in the text.
- **Observation** — what you saw, with source and timestamp. "The registryView the complete source on GitHubx-ray-a-company
When your agent uses it
Corporate due-diligence workflow — resolve a brand or website to its registered legal entity, map group structure and beneficial ownership, profile officers and directors, enumerate the digital estate, and screen litigation, insolvency, procurement, sanctions, PEP and adverse media. Use when asked to check out, vet or research a company, verify a supplier or counterparty before signing or paying, or assess whether a business is real. Applies to vendor and third-party risk, KYC and KYB onboarding, M&A and investor diligence, procurement integrity, and shell-company assessment. Reference at useosint.com/skills/x-ray-a-company.
What it loads into context
Frontmatter
156 tokensAlways available to the agent
SKILL.md
3,080 tokensWhen the skill is activated
Reference documents
3,092 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 — Authorized scope
- Step 2 — Resolve the legal entity first
- Step 3 — Group structure and beneficial ownership
- Step 4 — People
- Step 5 — Digital estate
- Step 6 — Litigation, insolvency, procurement, and disclosure
- Step 7 — Sanctions, PEP, and adverse media
- Step 8 — Shell-company assessment
- Step 9 — Report
- Where this goes wrong
- Confidence grading
- Worked example
- Pivots
- Legal notes
Files
../../ETHICS.mddoc1,805 bytesSKILL.mdcore14,408 bytesSKILL.mdcore14,408 bytesSKILL.mdcore14,408 bytesreference/diligence-checklist.mddoc6,333 bytesreference/shell-company-red-flags.mddoc6,715 bytes
Read SKILL.md
# X-ray a company
Take a brand, a website, or an invoice and produce a defensible picture of who you
are actually dealing with. Four layers — legal entity, people, infrastructure,
reputation and risk — worked in that order. Skipping the first ruins everything
after it: the trading name on the contract, the brand on the website, and the
entity liable in court are routinely three different things, and every later
finding attaches to the wrong one if you assume they match.
## Step 1 — Authorized scope
Write the target, the decision the work supports, the risk areas in scope, the
jurisdictions involved, and what is out of bounds. Read
[../../ETHICS.md](../../ETHICS.md). Corporate research on public filings isView the complete source on GitHubSkills included
- dig-through-data-brokers
- find-anyone
- find-exposed-servers
- find-hidden-subdomains
- find-leaks-in-the-wild
- find-the-original-image
- follow-the-crypto
- geolocate-from-pixels
- google-like-a-spy
- graph-the-network
- hunt-a-handle
- investigate-anything
- investigate-without-getting-made
- is-this-photo-real
- pattern-of-life-from-socials
- read-deleted-pages
- recon-a-domain-passively
- secrets-in-file-metadata
- secrets-in-git-history
- track-planes-and-ships
- useosint
- what-an-email-reveals
- what-leaked-about-you
- where-was-this-taken
- who-owns-this-domain
- who-really-owns-it
- whose-number-is-this
- write-the-intel-brief
- x-ray-a-company
Repository facts
- License
- MIT
- Created
- Aug 2, 2026
- Last pushed
- Aug 3, 2026
- Forks
- 6
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 113 notes
.claude-plugin/marketplace.json:1Analysis incomplete: Referenced executable target unavailable; not analyzed.claude-plugin/plugin.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dig-through-data-brokers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dig-through-data-brokers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dig-through-data-brokers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dig-through-data-brokers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-anyone/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-anyone/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-anyone/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-exposed-servers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-exposed-servers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-exposed-servers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-hidden-subdomains/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-hidden-subdomains/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-hidden-subdomains/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-hidden-subdomains/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-hidden-subdomains/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-hidden-subdomains/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-hidden-subdomains/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-hidden-subdomains/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 116 network referencesin 16 files: read-deleted-pages/reference/cdx-cookbook.md:11 secrets-in-git-history/reference/git-archaeology.md:13 .claude-plugin/marketplace.json:1 and 13 more
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- 2 references to secretsin 2 files: google-like-a-spy/reference/dork-cookbook.md:135 secrets-in-git-history/reference/high-signal-indicators.md:37
- No requests to vote in Hot
Show all 118 signals by file
.claude-plugin/marketplace.json
- Network accessline 1
{ "$schema": "https://json.schemastore.org/claude-code-marketplace.json", - Network accessline 2
"$schema": "https://json.schemastore.org/claude-code-marketplace.json", - Network accessline 4
"owner": { "name": "useOSINT", "url": "https://useosint.com" - Network accessline 5
"name": "useOSINT", "url": "https://useosint.com" }, - Network accessline 6
"url": "https://useosint.com" - Network accessline 18
"author": { "name": "useOSINT", "url": "https://useosint.com" - Network accessline 19
"name": "useOSINT", "url": "https://useosint.com" }, - Network accessline 20
"url": "https://useosint.com" - Network accessline 21
}, "homepage": "https://docs.useosint.com", "license": "MIT", - Network accessline 22
"homepage": "https://docs.useosint.com",
.claude-plugin/plugin.json
- Network accessline 1
{ "$schema": "https://json.schemastore.org/claude-code-plugin.json", - Network accessline 2
"$schema": "https://json.schemastore.org/claude-code-plugin.json", - Network accessline 6
"author": { "name": "useOSINT", "url": "https://useosint.com" - Network accessline 7
"name": "useOSINT", "url": "https://useosint.com" }, - Network accessline 8
"url": "https://useosint.com" - Network accessline 9
}, "homepage": "https://docs.useosint.com", "repository": "https://github.com/useosint/osint-skills", - Network accessline 10
"homepage": "https://docs.useosint.com", - Network accessline 11
"repository": "https://github.com/useosint/osint-skills",
skills/find-exposed-servers/SKILL.md
- Network accessline 55
curl -s https://internetdb.shodan.io/203.0.113.10 | jq . # ports, hostnames, cpes, vulns - Network accessline 67
`services.tls.certificates.leaf_data.subject_dn`, `dns.names`, `autonomous_system.asn`, `location.country` — combined with `and`/`or`/`not`. Its API v2 exposes `https://search.censys.io/api/v2/hosts/search?q=…` and - Network accessline 68
`autonomous_system.asn`, `location.country` — combined with `and`/`or`/`not`. Its API v2 exposes `https://search.censys.io/api/v2/hosts/search?q=…` and `https://search.censys.io/api/v2/hosts/{ip}` with API-ID/secret basic auth. - Network accessline 69
API v2 exposes `https://search.censys.io/api/v2/hosts/search?q=…` and - Network accessline 70
`https://search.censys.io/api/v2/hosts/{ip}` with API-ID/secret basic auth. - Network accessline 156
a very large number of open ports, default banners for many unrelated products, and hosting in research-oriented netblocks. Shodan exposes a honeyscore estimate at `https://api.shodan.io/labs/honeyscore/{ip}?key=` — treat it as a - Network accessline 157
and hosting in research-oriented netblocks. Shodan exposes a honeyscore estimate at `https://api.shodan.io/labs/honeyscore/{ip}?key=` — treat it as a hint, not a ruling. - Network accessline 158
estimate at `https://api.shodan.io/labs/honeyscore/{ip}?key=` — treat it as a
skills/find-exposed-servers/reference/query-cookbook.md
- Network accessline 98
curl -s https://internetdb.shodan.io/203.0.113.10 | jq '.ports, .hostnames, .cpes, .vulns'
skills/find-hidden-subdomains/SKILL.md
- Network accessline 58
# every name ever seen in a cert covering example.com or a subdomain curl -s 'https://crt.sh/?q=%25.example.com&output=json' \ - Network accessline 59
curl -s 'https://crt.sh/?q=%25.example.com&output=json' \ - Network accessline 62
# skip expired certs when you want a bias toward current infrastructure curl -s 'https://crt.sh/?q=%25.example.com&output=json&exclude=expired' | jq -r '.[].name_value' - Network accessline 63
curl -s 'https://crt.sh/?q=%25.example.com&output=json&exclude=expired' | jq -r '.[].name_value' - Network accessline 65
# an identity search on an organization string, which finds unknown domains curl -s 'https://crt.sh/?q=Example+Corporation&output=json' | jq -r '.[].name_value' - Network accessline 66
curl -s 'https://crt.sh/?q=Example+Corporation&output=json' | jq -r '.[].name_value' - Network accessline 73
Useful JSON fields: `name_value` (all names on the cert, newline-separated), `common_name`, `issuer_name`, `not_before` / `not_after`, `serial_number`, `entry_timestamp`, and `id` (open `https://crt.sh/?id=<id>` to read the cert). - Network accessline 75
`entry_timestamp`, and `id` (open `https://crt.sh/?id=<id>` to read the cert).
skills/find-hidden-subdomains/reference/subdomain-sources.md
- Network accessline 16
| crt.sh | Free web UI, `output=json`, and a read-only Postgres endpoint (host `crt.sh`, port 5432, user `guest`, db `certwatch`) | The default first stop. Broad log coverage, deep history, `%` wildcard search, search by subject organizatio - Network accessline 17
| Censys certificates search | Free account with a quota; paid for volume and API depth | Strong structured cert data with parsed fields, and it joins certs to the hosts observed serving them — which crt.sh cannot do | | SSLMate Cert Spotte - Network accessline 18
| SSLMate Cert Spotter | Free tier with a low rate limit, keyed for more: `https://api.certspotter.com/v1/issuances?domain=example.com&include_subdomains=true&expand=dns_names` | Clean JSON, well-suited to scripted monitoring for newly issu - Network accessline 19
| CT logs directly | Free, unauthenticated | The log list Chrome trusts is published at `https://www.gstatic.com/ct/log_list/v3/log_list.json`. Each log serves the RFC 6962 endpoints (`/ct/v1/get-sth`, `/ct/v1/get-entries`). Enormous volume - Network accessline 46
| Source | Access | Notes | |---|---|---| | urlscan.io | Free search, keyed API: `https://urlscan.io/api/v1/search/?q=domain:example.com` | Scans submitted by users and automation. Also gives you the page's requested domains, which exposes - Network accessline 47
|---|---|---| | urlscan.io | Free search, keyed API: `https://urlscan.io/api/v1/search/?q=domain:example.com` | Scans submitted by users and automation. Also gives you the page's requested domains, which exposes third-party vendors and API - Network accessline 48
| urlscan.io | Free search, keyed API: `https://urlscan.io/api/v1/search/?q=domain:example.com` | Scans submitted by users and automation. Also gives you the page's requested domains, which exposes third-party vendors and API hostnames | - Network accessline 49
| Wayback CDX API | Free: `http://web.archive.org/cdx/search/cdx?url=*.example.com&fl=original&collapse=urlkey` | Every archived URL under the domain, which yields hostnames and paths together. Pairs with `read-deleted-pages` |
skills/find-the-original-image/reference/engine-matrix.md
- Network accessline 7
- **Entry:** `https://yandex.com/images/` — upload or paste an image URL. - Network accessline 22
- **Entry:** `https://lens.google.com/` — also reachable from the camera icon in - Network accessline 39
- **Entry:** `https://www.bing.com/images` — camera icon; upload, paste URL, or - Network accessline 51
- **Entry:** `https://tineye.com/` — upload or URL. Browser extension available. - Network accessline 67
- **Entry:** `https://graph.baidu.com/` or the camera icon at - Network accessline 68
`https://image.baidu.com/`.
skills/google-like-a-spy/reference/dork-cookbook.md
- Access to secretsline 135
[Credential-related source omitted]
skills/graph-the-network/reference/schema-starter.md
- Network accessline 113
source_id,target_id,edge_type,confidence,grade,source,retrieved,valid_from,valid_to,method p-0001,c-0007,director_of,confirmed,A1,https://registry.example/company/09xxxxxx,2024-03-11T09:12Z,2019-04-02,2022-11-30,observed - Network accessline 114
p-0001,c-0007,director_of,confirmed,A1,https://registry.example/company/09xxxxxx,2024-03-11T09:12Z,2019-04-02,2022-11-30,observed
skills/hunt-a-handle/SKILL.md
- Network accessline 112
IDs are issued in registration order, the ID bounds an account's creation date even when the profile hides it. GitHub's `https://api.github.com/users/<login>` returns a numeric `id` and `created_at`; - Network accessline 113
even when the profile hides it. GitHub's `https://api.github.com/users/<login>` returns a numeric `id` and `created_at`; Discord's snowflake IDs encode a creation timestamp directly. Per-platform - Network accessline 114
`https://api.github.com/users/<login>` returns a numeric `id` and `created_at`;
skills/hunt-a-handle/reference/platform-leakage.md
- Network accessline 43
- **GitHub** — `https://api.github.com/users/<login>` returns a numeric `id` and
skills/read-deleted-pages/SKILL.md
- Network accessline 44
curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/*&output=json&fl=original&collapse=urlkey' \ - Network accessline 70
curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/about/team&output=json&collapse=digest&fl=timestamp,digest,statuscode' - Network accessline 87
curl -s 'https://web.archive.org/web/20190412093000id_/http://example.com/pricing' > pricing-2019.html - Network accessline 125
Submit the live URL to the Internet Archive's Save Page Now at `https://web.archive.org/save/` and to archive.today, so two independent - Network accessline 126
`https://web.archive.org/save/` and to archive.today, so two independent - Network accessline 132
wget --warc-file=evidence-001 --page-requisites --no-parent https://example.com/pricing
skills/read-deleted-pages/reference/cdx-cookbook.md
- Network accessline 11
http://web.archive.org/cdx/search/cdx - Network accessline 36
curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com&output=json' - Network accessline 45
curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/*&output=json&fl=original&collapse=urlkey' \ - Network accessline 96
curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/pricing&output=json&from=2018&to=2021' - Network accessline 126
curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/about/team&output=json&collapse=digest&fl=timestamp,digest,statuscode' - Network accessline 147
https://web.archive.org/web/<timestamp>/<original-url> - Network accessline 159
curl -s 'https://web.archive.org/web/20190412093000id_/http://example.com/pricing' > pricing-2019.html - Network accessline 165
curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/*&output=json&fl=timestamp,original&filter=mimetype:application/pdf&collapse=urlkey' \ - Network accessline 166
| jq -r '.[1:][] | "https://web.archive.org/web/\(.[0])id_/\(.[1])"' - Network accessline 174
curl -s 'https://archive.org/wayback/available?url=example.com×tamp=20200101' - Network accessline 182
curl -s 'https://web.archive.org/web/timemap/link/http://example.com/' - Network accessline 191
curl -s 'https://index.commoncrawl.org/CC-MAIN-2023-50-index?url=example.com%2F*&output=json' - Network accessline 204
# 1. Every host the archive ever saw under the domain curl -s 'http://web.archive.org/cdx/search/cdx?url=*.example.com&output=json&fl=original&collapse=urlkey&limit=20000' \ - Network accessline 205
curl -s 'http://web.archive.org/cdx/search/cdx?url=*.example.com&output=json&fl=original&collapse=urlkey&limit=20000' \ - Network accessline 208
# 2. Non-HTML assets — documents, archives, configs curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/*&output=json&fl=original,mimetype,timestamp&filter=!mimetype:text/html&collapse=urlkey' - Network accessline 209
curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/*&output=json&fl=original,mimetype,timestamp&filter=!mimetype:text/html&collapse=urlkey' - Network accessline 211
# 3. Paths that smell like admin or backup surface curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/*&output=json&fl=original,statuscode&collapse=urlkey' \ - Network accessline 212
curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/*&output=json&fl=original,statuscode&collapse=urlkey' \ - Network accessline 215
# 4. Change history of one page of interest curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/about/team&output=json&collapse=digest&fl=timestamp,digest' - Network accessline 216
curl -s 'http://web.archive.org/cdx/search/cdx?url=example.com/about/team&output=json&collapse=digest&fl=timestamp,digest'
skills/secrets-in-git-history/SKILL.md
- Network accessline 43
git clone --mirror https://github.com/example-org/example-repo.git repo.git - Network accessline 53
curl -s https://github.com/example-org/example-repo/commit/<sha>.patch | head -5 - Network accessline 54
curl -s https://api.github.com/repos/example-org/example-repo/commits/<sha> | jq .commit.author - Network accessline 64
curl -s https://api.github.com/user/12345678 | jq '.login, .created_at' - Network accessline 77
Public org membership is opt-in and therefore incomplete, so triangulate: `https://api.github.com/orgs/<org>/public_members` gives the members who chose - Network accessline 78
`https://api.github.com/orgs/<org>/public_members` gives the members who chose
skills/secrets-in-git-history/reference/git-archaeology.md
- Network accessline 13
git clone --mirror https://github.com/example-org/example-repo.git repo.git - Network accessline 183
# The commit's author email, even where the web UI does not display it curl -s https://github.com/example-org/example-repo/commit/<sha>.patch | head -5 - Network accessline 184
curl -s https://github.com/example-org/example-repo/commit/<sha>.patch | head -5 - Network accessline 186
# Same data as JSON curl -s https://api.github.com/repos/example-org/example-repo/commits/<sha> \ - Network accessline 187
curl -s https://api.github.com/repos/example-org/example-repo/commits/<sha> \ - Network accessline 190
# Numeric user ID to current username — survives renames curl -s https://api.github.com/user/12345678 | jq '.login, .created_at' - Network accessline 191
curl -s https://api.github.com/user/12345678 | jq '.login, .created_at' - Network accessline 193
# Public org membership, and the repos and gists of each member curl -s https://api.github.com/orgs/example-org/public_members | jq -r '.[].login' - Network accessline 194
curl -s https://api.github.com/orgs/example-org/public_members | jq -r '.[].login' - Network accessline 195
curl -s https://api.github.com/users/jdoe/repos | jq -r '.[].full_name' - Network accessline 196
curl -s https://api.github.com/users/jdoe/gists | jq -r '.[].html_url' - Network accessline 198
# The social graph curl -s https://api.github.com/users/jdoe/followers | jq -r '.[].login' - Network accessline 199
curl -s https://api.github.com/users/jdoe/followers | jq -r '.[].login' - Network accessline 200
curl -s https://api.github.com/users/jdoe/following | jq -r '.[].login' - Network accessline 201
curl -s https://api.github.com/users/jdoe/starred | jq -r '.[].full_name' - Network accessline 202
curl -s https://api.github.com/users/jdoe/subscriptions | jq -r '.[].full_name' - Network accessline 204
# Recent public activity, with timestamps curl -s https://api.github.com/users/jdoe/events/public | jq -r '.[] | "\(.created_at) \(.type) \(.repo.name)"' - Network accessline 205
curl -s https://api.github.com/users/jdoe/events/public | jq -r '.[] | "\(.created_at) \(.type) \(.repo.name)"'
skills/secrets-in-git-history/reference/high-signal-indicators.md
- Access to secretsline 37
[Credential-related source omitted]
skills/useosint/SKILL.md
- Network accessline 29
| Source | Use for | URL | |---|---|---| | Capability catalog | Current capability list, kept in sync without a skill update | https://useosint.com/catalog.json?src=agent-skills | - Network accessline 30
|---|---|---| | Capability catalog | Current capability list, kept in sync without a skill update | https://useosint.com/catalog.json?src=agent-skills | | Capability docs | Method, sources and confidence grading per capability | https://use - Network accessline 31
| Capability catalog | Current capability list, kept in sync without a skill update | https://useosint.com/catalog.json?src=agent-skills | - Network accessline 32
| Capability docs | Method, sources and confidence grading per capability | https://useosint.com/skills | - Network accessline 33
| Skill source | Full tradecraft procedures, ethics policy | https://github.com/useosint/osint-skills | - Network accessline 34
| useOSINT platform | Hosted selector resolution across the same sources — access on request | https://useosint.com | - Network accessline 36
Append `.md` to any useosint.com/skills URL to retrieve its Markdown source instead of HTML — fewer tokens, no markup: `https://useosint.com/skills/find-anyone.md` - Network accessline 37
fewer tokens, no markup: `https://useosint.com/skills/find-anyone.md`
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 100 facts
- Network access in code of the SKILL.mdfind-exposed-servers/SKILL.md:55High confidence
- Network access in prose of the SKILL.mdfind-exposed-servers/SKILL.md:67Low confidence
- Network access in prose of the SKILL.mdfind-exposed-servers/SKILL.md:68Low confidence
- Network access in prose of the SKILL.mdfind-exposed-servers/SKILL.md:69Low confidence
- Network access in prose of the SKILL.mdfind-exposed-servers/SKILL.md:70Low confidence
- Network access in prose of the SKILL.mdfind-exposed-servers/SKILL.md:156Low confidence
- Network access in prose of the SKILL.mdfind-exposed-servers/SKILL.md:157Low confidence
- Network access in prose of the SKILL.mdfind-exposed-servers/SKILL.md:158Low confidence
- Network access in code of documentationfind-exposed-servers/reference/query-cookbook.md:98Low confidence
- Network access in code of the SKILL.mdfind-hidden-subdomains/SKILL.md:58High confidence
- Network access in code of the SKILL.mdfind-hidden-subdomains/SKILL.md:59High confidence
- Network access in code of the SKILL.mdfind-hidden-subdomains/SKILL.md:62High confidence
- Network access in code of the SKILL.mdfind-hidden-subdomains/SKILL.md:63High confidence
- Network access in code of the SKILL.mdfind-hidden-subdomains/SKILL.md:65High confidence
- Network access in code of the SKILL.mdfind-hidden-subdomains/SKILL.md:66High confidence
- Network access in prose of the SKILL.mdfind-hidden-subdomains/SKILL.md:73Low confidence
- Network access in prose of the SKILL.mdfind-hidden-subdomains/SKILL.md:75Low confidence
- Network access in prose of documentationfind-hidden-subdomains/reference/subdomain-sources.md:16Low confidence
- Network access in prose of documentationfind-hidden-subdomains/reference/subdomain-sources.md:17Low confidence
- Network access in prose of documentationfind-hidden-subdomains/reference/subdomain-sources.md:18Low confidence
- Network access in prose of documentationfind-hidden-subdomains/reference/subdomain-sources.md:19Low confidence
- Network access in prose of documentationfind-hidden-subdomains/reference/subdomain-sources.md:46Low confidence
- Network access in prose of documentationfind-hidden-subdomains/reference/subdomain-sources.md:47Low confidence
- Network access in prose of documentationfind-hidden-subdomains/reference/subdomain-sources.md:48Low confidence
- Network access in prose of documentationfind-hidden-subdomains/reference/subdomain-sources.md:49Low confidence
- Network access in prose of documentationfind-the-original-image/reference/engine-matrix.md:7Low confidence
- Network access in prose of documentationfind-the-original-image/reference/engine-matrix.md:22Low confidence
- Network access in prose of documentationfind-the-original-image/reference/engine-matrix.md:39Low confidence
- Network access in prose of documentationfind-the-original-image/reference/engine-matrix.md:51Low confidence
- Network access in prose of documentationfind-the-original-image/reference/engine-matrix.md:67Low confidence
- Network access in prose of documentationfind-the-original-image/reference/engine-matrix.md:68Low confidence
- Access to secrets in code of documentationgoogle-like-a-spy/reference/dork-cookbook.md:135Low confidence
- Network access in code of documentationgraph-the-network/reference/schema-starter.md:113Low confidence
- Network access in code of documentationgraph-the-network/reference/schema-starter.md:114Low confidence
- Network access in prose of the SKILL.mdhunt-a-handle/SKILL.md:112Low confidence
- Network access in prose of the SKILL.mdhunt-a-handle/SKILL.md:113Low confidence
- Network access in prose of the SKILL.mdhunt-a-handle/SKILL.md:114Low confidence
- Network access in prose of documentationhunt-a-handle/reference/platform-leakage.md:43Low confidence
- Network access in code of the SKILL.mdread-deleted-pages/SKILL.md:44High confidence
- Network access in code of the SKILL.mdread-deleted-pages/SKILL.md:70High confidence
- Network access in code of the SKILL.mdread-deleted-pages/SKILL.md:87High confidence
- Network access in prose of the SKILL.mdread-deleted-pages/SKILL.md:125Low confidence
- Network access in prose of the SKILL.mdread-deleted-pages/SKILL.md:126Low confidence
- Network access in code of the SKILL.mdread-deleted-pages/SKILL.md:132High confidence
- Network access in code of documentationread-deleted-pages/reference/cdx-cookbook.md:11Low confidence
- Network access in code of documentationread-deleted-pages/reference/cdx-cookbook.md:36Low confidence
- Network access in code of documentationread-deleted-pages/reference/cdx-cookbook.md:45Low confidence
- Network access in code of documentationread-deleted-pages/reference/cdx-cookbook.md:96Low confidence
- Network access in code of documentationread-deleted-pages/reference/cdx-cookbook.md:126Low confidence
- Network access in code of documentationread-deleted-pages/reference/cdx-cookbook.md:147Low confidence
and 50 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/dig-through-data-brokers/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/dig-through-data-brokers/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/dig-through-data-brokers/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/dig-through-data-brokers/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/dig-through-data-brokers/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.