Agent skill

sherlock

OSINT username search across 400+ social networks. Hunt down social media accounts by username.

Stars 56,643
Forks 7,481

Install this agent skill to your Project

npx add-skill https://github.com/NousResearch/hermes-agent/tree/main/optional-skills/security/sherlock

Metadata

Additional technical details for this skill

hermes
{
    "tags": [
        "osint",
        "security",
        "username",
        "social-media",
        "reconnaissance"
    ],
    "category": "security"
}

SKILL.md

Sherlock OSINT Username Search

Hunt down social media accounts by username across 400+ social networks using the Sherlock Project.

When to Use

  • User asks to find accounts associated with a username
  • User wants to check username availability across platforms
  • User is conducting OSINT or reconnaissance research
  • User asks "where is this username registered?" or similar

Requirements

  • Sherlock CLI installed: pipx install sherlock-project or pip install sherlock-project
  • Alternatively: Docker available (docker run -it --rm sherlock/sherlock)
  • Network access to query social platforms

Procedure

1. Check if Sherlock is Installed

Before doing anything else, verify sherlock is available:

bash
sherlock --version

If the command fails:

  • Offer to install: pipx install sherlock-project (recommended) or pip install sherlock-project
  • Do NOT try multiple installation methods — pick one and proceed
  • If installation fails, inform the user and stop

2. Extract Username

Extract the username directly from the user's message if clearly stated.

Examples where you should NOT use clarify:

  • "Find accounts for nasa" → username is nasa
  • "Search for johndoe123" → username is johndoe123
  • "Check if alice exists on social media" → username is alice
  • "Look up user bob on social networks" → username is bob

Only use clarify if:

  • Multiple potential usernames mentioned ("search for alice or bob")
  • Ambiguous phrasing ("search for my username" without specifying)
  • No username mentioned at all ("do an OSINT search")

When extracting, take the exact username as stated — preserve case, numbers, underscores, etc.

3. Build Command

Default command (use this unless user specifically requests otherwise):

bash
sherlock --print-found --no-color "<username>" --timeout 90

Optional flags (only add if user explicitly requests):

  • --nsfw — Include NSFW sites (only if user asks)
  • --tor — Route through Tor (only if user asks for anonymity)

Do NOT ask about options via clarify — just run the default search. Users can request specific options if needed.

4. Execute Search

Run via the terminal tool. The command typically takes 30-120 seconds depending on network conditions and site count.

Example terminal call:

json
{
  "command": "sherlock --print-found --no-color \"target_username\"",
  "timeout": 180
}

5. Parse and Present Results

Sherlock outputs found accounts in a simple format. Parse the output and present:

  1. Summary line: "Found X accounts for username 'Y'"
  2. Categorized links: Group by platform type if helpful (social, professional, forums, etc.)
  3. Output file location: Sherlock saves results to <username>.txt by default

Example output parsing:

[+] Instagram: https://instagram.com/username
[+] Twitter: https://twitter.com/username
[+] GitHub: https://github.com/username

Present findings as clickable links when possible.

Pitfalls

No Results Found

If Sherlock finds no accounts, this is often correct — the username may not be registered on checked platforms. Suggest:

  • Checking spelling/variation
  • Trying similar usernames with ? wildcard: sherlock "user?name"
  • The user may have privacy settings or deleted accounts

Timeout Issues

Some sites are slow or block automated requests. Use --timeout 120 to increase wait time, or --site to limit scope.

Tor Configuration

--tor requires Tor daemon running. If user wants anonymity but Tor isn't available, suggest:

  • Installing Tor service
  • Using --proxy with an alternative proxy

False Positives

Some sites always return "found" due to their response structure. Cross-reference unexpected results with manual checks.

Rate Limiting

Aggressive searches may trigger rate limits. For bulk username searches, add delays between calls or use --local with cached data.

Installation

pipx (recommended)

bash
pipx install sherlock-project

pip

bash
pip install sherlock-project

Docker

bash
docker pull sherlock/sherlock
docker run -it --rm sherlock/sherlock <username>

Linux packages

Available on Debian 13+, Ubuntu 22.10+, Homebrew, Kali, BlackArch.

Ethical Use

This tool is for legitimate OSINT and research purposes only. Remind users:

  • Only search usernames they own or have permission to investigate
  • Respect platform terms of service
  • Do not use for harassment, stalking, or illegal activities
  • Consider privacy implications before sharing results

Verification

After running sherlock, verify:

  1. Output lists found sites with URLs
  2. <username>.txt file created (default output) if using file output
  3. If --print-found used, output should only contain [+] lines for matches

Example Interaction

User: "Can you check if the username 'johndoe123' exists on social media?"

Agent procedure:

  1. Check sherlock --version (verify installed)
  2. Username provided — proceed directly
  3. Run: sherlock --print-found --no-color "johndoe123" --timeout 90
  4. Parse output and present links

Response format:

Found 12 accounts for username 'johndoe123':

https://twitter.com/johndoe123https://github.com/johndoe123https://instagram.com/johndoe123 • [... additional links]

Results saved to: johndoe123.txt


User: "Search for username 'alice' including NSFW sites"

Agent procedure:

  1. Check sherlock installed
  2. Username + NSFW flag both provided
  3. Run: sherlock --print-found --no-color --nsfw "alice" --timeout 90
  4. Present results

Expand your agent's capabilities with these related and highly-rated skills.

NousResearch/hermes-agent

agentmail

Give the agent its own dedicated email inbox via AgentMail. Send, receive, and manage email autonomously using agent-owned email addresses (e.g. hermes-agent@agentmail.to).

56,643 7,481
Explore
NousResearch/hermes-agent

base

Query Base (Ethereum L2) blockchain data with USD pricing — wallet balances, token info, transaction details, gas analysis, contract inspection, whale detection, and live network stats. Uses Base RPC + CoinGecko. No API key required.

56,643 7,481
Explore
NousResearch/hermes-agent

solana

Query Solana blockchain data with USD pricing — wallet balances, token portfolios with values, transaction details, NFTs, whale detection, and live network stats. Uses Solana RPC + CoinGecko. No API key required.

56,643 7,481
Explore
NousResearch/hermes-agent

one-three-one-rule

Structured decision-making framework for technical proposals and trade-off analysis. When the user faces a choice between multiple approaches (architecture decisions, tool selection, refactoring strategies, migration paths), this skill produces a 1-3-1 format: one clear problem statement, three distinct options with pros/cons, and one concrete recommendation with definition of done and implementation plan. Use when the user asks for a "1-3-1", says "give me options", or needs help choosing between competing approaches.

56,643 7,481
Explore
NousResearch/hermes-agent

fastmcp

Build, test, inspect, install, and deploy MCP servers with FastMCP in Python. Use when creating a new MCP server, wrapping an API or database as MCP tools, exposing resources or prompts, or preparing a FastMCP server for Claude Code, Cursor, or HTTP deployment.

56,643 7,481
Explore
NousResearch/hermes-agent

qdrant-vector-search

High-performance vector similarity search engine for RAG and semantic search. Use when building production RAG systems requiring fast nearest neighbor search, hybrid search with filtering, or scalable vector storage with Rust-powered performance.

56,643 7,481
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results