کلاڈ کے ٹولنگ API کا استعمال کرتے ہوئے ازگر میں ایک خود مختار OSINT ایجنٹ کیسے بنایا جائے۔

جب میں نے OSINT کا مطالعہ شروع کیا تو مجھے ہمیشہ ایسا لگا جیسے میں سافٹ ویئر میں صرف صوابدیدی اقدار ڈال رہا ہوں اس کی گہرائی سے سمجھے بغیر کہ میں کیا کر رہا ہوں۔ میدان میں چند ماہ گزارنے کے بعد، میں نے محسوس کیا کہ میں واقعی تحقیق نہیں کر رہا تھا، میں صرف ایسے اقدامات کر رہا تھا جو ایک پیشین گوئی کے انداز کے مطابق تھے۔ یہی وہ چیز ہے جس میں AI ایجنٹ اچھے ہوتے ہیں۔ تو میں نے ایک بنایا۔

اس ٹیوٹوریل میں، آپ OpenOSINT کو ترتیب دینے کا طریقہ سیکھیں گے، ایک اوپن سورس Python OSINT فریم ورک جس کے بنیادی حصے میں AI ایجنٹ ہے۔ Claude کے مقامی ٹولز سے APIs کو استعمال کرنے کا طریقہ، ٹرمینل میں خود مختار تحقیقات چلانے کے لیے انٹرایکٹو AI REPL کا استعمال کیسے کریں، اسکرپٹنگ کے لیے براہ راست CLI کا استعمال کیسے کریں، اور MCP سرور کے ذریعے Claude Code یا Claude Desktop پر کسی بھی ٹول کو کیسے بے نقاب کرنا ہے۔

انڈیکس

OSINT کیا ہے اور یہ دستی ورک فلو کو کیوں توڑتا ہے۔

اوپن سورس انٹیلی جنس (OSINT) عوامی طور پر دستیاب ذرائع سے معلومات جمع کرنے اور تجزیہ کرنے کا ایک طریقہ ہے۔ سیکیورٹی محققین اسے دخول کی جانچ کے دوران استعمال کرتے ہیں۔ صحافی ان کا استعمال شناخت کی تصدیق اور کنکشن کا پتہ لگانے کے لیے کرتے ہیں۔ خطرے کے تجزیہ کار اسے آپ کے انفراسٹرکچر کی پروفائل بنانے کے لیے استعمال کرتے ہیں۔

ایک عام OSINT ورک فلو مندرجہ ذیل ہے:

  1. میرے پاس ایک ٹارگٹ ای میل ایڈریس ہے۔

  2. تم دوڑو holehe پلیٹ فارم کو تلاش کرنے کے لیے آپ کا ای میل رجسٹرڈ ہے۔

  3. آؤٹ پٹ آپ کا صارف نام دکھاتا ہے۔

  4. اس صارف نام کو دستی طور پر کاپی کریں اور اسے چلائیں۔ sherlock 300 سے زیادہ پلیٹ فارم تلاش کریں۔

  5. HaveIBeenPwned چیک کرنے کے لیے اپنے براؤزر پر جائیں۔

  6. WHOIS تلاش کے لیے دوسرا ٹیب کھولیں۔

  7. نوٹ لیں اور دہرائیں۔

تمام اوزار سائلو ہیں۔ تمام محور دستی ہیں۔ تحقیقات کی منطق – آگے کیا کرنا ہے، کس سے رابطہ کرنا ہے، نتائج کا کیا مطلب ہے – یہ مکمل طور پر صارف کے سر میں ہے۔

جب آپ ٹرمینل بند کرتے ہیں تو یہ غائب ہو جاتا ہے۔

یہ ٹیوٹوریل آپ کو OpenOSINT کے ذریعے لے جاتا ہے، ایک اوپن سورس Python فریم ورک جو بکھرے ہوئے ورک فلو کو AI ایجنٹس سے بدل دیتا ہے جو ٹولز کو خود بخود مربوط کرتے ہیں، انہیں اصلی بائنریز کے خلاف چلاتے ہیں، اور ساختی مارک ڈاؤن رپورٹس کو اسٹور کرتے ہیں۔

زیادہ اہم بات یہ ہے کہ، آپ حفاظتی تحقیق کے لیے بنیادی، قابل اعتماد ڈیزائن کے اصول سیکھیں گے۔ آلے کے نتائج کی ہیلوسینیشن ساختی طور پر ناممکن ہے۔.

کیا تعمیر کرنا ہے

اس ٹیوٹوریل کے اختتام پر، آپ کے پاس ایک کام کرنے والا OSINT ایجنٹ ہوگا جسے آپ تین طریقوں سے استعمال کرسکتے ہیں:

  • بات چیت AI REPL – آپ فطری زبان میں ایک ہدف داخل کرتے ہیں، اور ایجنٹ فیصلہ کرتا ہے کہ کیا کرنا ہے۔

  • براہ راست CLI – بغیر AI کے انفرادی ٹولز چلا کر اسکرپٹنگ کے لیے مفید ہے۔

  • ایم سی پی سرور – کلاڈ کوڈ یا کلاڈ ڈیسک ٹاپ پر تمام ٹولز کو بے نقاب کریں۔

اصل سیشن درج ذیل ہے:

$ openosint
openosint ❯ investigate target@example.com

  → generate_dorks('target@example.com')
  → search_email('target@example.com')
  ✓ Found: Spotify, WordPress, Gravatar, Office365

  → search_breach('target@example.com')
  ✓ Found in 2 breaches: LinkedIn (2016), Adobe (2013)

  → search_username('target_handle')
  ✓ Found on: GitHub, Reddit, HackerNews, Twitter

  ╭──────────────── Report ────────────────╮
  │ ## Online Presence                     │
  │ Spotify · WordPress · Gravatar         │
  │                                        │
  │ ## Data Breaches                       │
  │ LinkedIn (2016) · Adobe (2013)         │
  ╰────────────────────────────────────────╯

  ✓ Report saved → reports/2026-05-11_report.md

ایجنٹس ای میل → منسلک اکاؤنٹس → صارف نام پیوٹ → کراس پلیٹ فارم تلاش سے کسی بھی قدم پر بغیر کسی انسانی مداخلت کے چلے گئے۔

شرائط

اس ٹیوٹوریل پر عمل کرنے کے لیے آپ کو ضرورت ہو گی:

  • آپ کے کمپیوٹر پر Python 3.10 یا اس سے زیادہ انسٹال ہے۔

  • کمانڈ لائن کا بنیادی علم

  • اینتھروپک API کلید – صرف AI REPL کے لیے درکار ہے، CLI یا MCP سرور کے لیے نہیں۔

  • Git انسٹال کریں۔

OSINT ٹولز یا اینتھروپک SDK کے ساتھ کسی پیشگی تجربے کی ضرورت نہیں ہے۔

انسٹالیشن شروع کرنے سے پہلے، یہ تجویز کیا جاتا ہے کہ آپ ان میکانزم کو سمجھ لیں جو اس فریم ورک کو حفاظتی تحقیق کے لیے قابل اعتماد بناتے ہیں۔

زیادہ تر AI ایپلی کیشنز جو بیرونی ٹولز کو لپیٹتی ہیں وہ ٹیکسٹ بنا کر کام کرتی ہیں جو بتاتی ہے کہ ٹول کیا ہے۔ ہو جائے گا واپسی جب درستگی اہم ہوتی ہے تو یہ ایک مسئلہ بن جاتا ہے۔ ماڈل قابل فہم نظر آنے والے صارف ناموں، جعلی ذیلی ڈومینز، یا ڈیٹا کی خلاف ورزیوں کو گمراہ کر سکتا ہے جو کبھی نہیں ہوا تھا۔

کلاڈ کا ٹولنگ API مختلف طریقے سے کام کرتا ہے۔ جب ماڈل یہ طے کرتا ہے کہ اسے کسی ٹول کو کال کرنے کی ضرورت ہے، ~ نہیں آؤٹ پٹ پیدا کرتا ہے۔ یہ رک جاتا ہے اور ایک منظم سگنل خارج کرتا ہے۔ tool_use ایک بلاک جس میں ٹول کا نام اور کوئی بھی دلیل ہے جسے آپ پاس کرنا چاہتے ہیں۔

کوڈ پھر اصل بائنری چلاتا ہے۔ holehe، sherlockیا کچھ اور – اصل آؤٹ پٹ اس طرح واپس بھیجیں: tool_result. ماڈل اصل آؤٹ پٹ پڑھتا ہے اور اگلے مراحل کا فیصلہ کرتا ہے۔

بہاؤ مندرجہ ذیل ہے:

User prompt
    ↓
Model decides to call search_email()
    ↓
Hard stop — model emits tool_use block
    ↓
Your code runs holehe against the real target
    ↓
Real output sent back as tool_result
    ↓
Model reads actual results, decides next step
    ↓
Repeat until investigation is complete

ماڈل ٹول آؤٹ پٹ پیدا نہیں کرتا ہے۔ ذرا اسے پڑھیں۔ اگر sherlock اگر 12 پروفائلز پائے جاتے ہیں، تو وہ 12 URLs کو سیاق و سباق میں واپس کر دیا جائے گا۔ ماڈل غیر موجود 13 واں شامل نہیں کر سکتا۔

یہ فوری چالیں یا سسٹم پرامپٹ ہدایات نہیں ہیں۔ API کو اس طرح ڈیزائن کیا گیا ہے۔ جب آپ اس ٹیوٹوریل میں ایجنٹ لوپ کوڈ کو بعد میں پڑھیں گے تو اسے ذہن میں رکھیں۔

OpenOSINT کو کیسے انسٹال کریں۔

ریپوزٹری کو کلون کرکے اور پیکجوں کو انسٹال کرکے شروع کریں۔

git clone https://github.com/OpenOSINT/OpenOSINT.git
cd OpenOSINT
pip install -e .

متبادل طور پر، اگر آپ ماخذ میں ترمیم کیے بغیر ٹولز استعمال کرنا چاہتے ہیں، تو انہیں براہ راست PyPI سے انسٹال کریں۔

pip install openosint

اگلا، اپنی Anthropic API کلید ترتیب دیں۔ یہ صرف بات چیت کے AI REPLs کے لیے ضروری ہے۔ ڈائریکٹ CLI اور MCP سرور اس REPL کے بغیر کام کریں گے۔

export ANTHROPIC_API_KEY=sk-ant-...

بیرونی ٹول انحصار کو کیسے انسٹال کریں۔

OpenOSINT کئی اسٹینڈ اسٹون OSINT ٹولز کو لپیٹتا ہے۔ آپ جو بھی استعمال کرنا چاہتے ہیں انسٹال کریں۔

pip install holehe            # email account enumeration
pip install sherlock-project  # username search across 300+ platforms
pip install sublist3r         # subdomain enumeration

فون انٹیلی جنس کے لیے، phoneinfoga یہ اسٹینڈ اسٹون بائنری ہے۔ گٹ ہب ریلیز پیج سے اپنے پلیٹ فارم کے لیے ریلیز ڈاؤن لوڈ کریں۔ PATH.

اختیاری API کلید کو کیسے ترتیب دیا جائے۔

دونوں ٹولز اعلی شرح کی حدوں پر کام کرنے کے لیے اختیاری API کیز استعمال کرتے ہیں۔

export HIBP_API_KEY=your_key    # required for breach checks via HaveIBeenPwned v3
export IPINFO_TOKEN=your_token  # optional — raises ipinfo.io rate limits

اگر بائنری غائب ہے یا API کلید کو کنفیگر نہیں کیا گیا ہے، تو وہ مخصوص ٹول ایک وضاحتی ایرر سٹرنگ لوٹائے گا۔ دیگر تمام ٹولز معمول کے مطابق کام کرتے رہیں گے۔

مکالماتی AI REPL کا استعمال کیسے کریں۔

چلائیں openosint AI پر مبنی REPL کے ساتھ شروع کرنے کے لیے کوئی دلیل نہیں ہے۔ آپ بھی استعمال کر سکتے ہیں openosint shell – کے برابر ہے:

$ openosint
# or
$ openosint shell

اگر آپ ماحولیاتی متغیر کے بجائے API کلید کو ان لائن پاس کرنا چاہتے ہیں۔ --api-key پرچم:

$ openosint --api-key sk-ant-...

آپ کو فطری زبان میں اپنا ہدف یا سوال درج کرنے کے لیے کہا جائے گا۔

openosint ❯ investigate target@example.com
openosint ❯ find all accounts for johndoe99
openosint ❯ what subdomains does example.com have?
openosint ❯ check if +14155552671 is a mobile number

ایجنٹ طے کرتا ہے کہ صارف کے ان پٹ کی بنیاد پر کون سا ٹول چلایا جائے۔ آپ کو یہ بتانے کی ضرورت نہیں ہے کہ کون سا ٹول استعمال کرنا ہے یا کس ترتیب میں۔ جب آپ ای میل ایڈریس درج کرتے ہیں، تو ایجنٹ ایک ای میل کی گنتی چلاتا ہے۔ ایک بار جب آپ کو کوئی منسلک صارف نام مل جاتا ہے، تو آپ اس صارف نام کو پورے پلیٹ فارم پر محور اور تلاش کر سکتے ہیں۔

رپورٹس خود بخود درج ذیل جگہ پر محفوظ ہو جاتی ہیں: reports/ ہر تحقیقات کے بعد ڈائرکٹری جو منظم نتائج پیدا کرتی ہے۔

REPL کے اندر دستیاب کمانڈز میں شامل ہیں:

حکم وضاحت
clear گفتگو کی میموری کو دوبارہ ترتیب دیں۔
save اپنی آخری رپورٹ کو دستی طور پر محفوظ کریں۔
tools دستیاب ٹولز اور ان کی حیثیت دکھاتا ہے۔
config موجودہ ترتیب دکھائیں۔
help تمام کمانڈز کی فہرست بنائیں
exit یا Ctrl-D چھوڑو

اسکرپٹنگ، آٹومیشن، یا فوری تلاش کے لیے AI پرت کے بغیر واحد ٹول چلانے کے لیے براہ راست CLI استعمال کریں۔

# Email account enumeration (default timeout: 120s)
openosint email target@example.com

# With a custom timeout in seconds
openosint email target@example.com -t 60

# Username search across 300+ platforms (default timeout: 180s)
openosint username johndoe99

# Enable verbose output for debugging
openosint -v email target@example.com

براہ راست CLI کو Anthropic API کلید کی ضرورت نہیں ہے۔ مین بائنری چلاتا ہے اور آؤٹ پٹ کو ٹرمینل پر پرنٹ کرتا ہے۔

یہ موڈ اس وقت مفید ہے جب آپ کو قابل پیشن گوئی، اسکرپٹ ایبل رویے کی ضرورت ہو، جیسے کسی دوسرے ٹول پر آؤٹ پٹ کو پائپ کرنا یا خودکار چیک چلانا۔

MCP سرور کیسے ترتیب دیا جائے۔

OpenOSINT ایک ماڈل سیاق و سباق پروٹوکول (MCP) سرور کے طور پر بھی دستیاب ہے۔ یہ تمام نو ٹولز کو تمام MCP سے مطابقت رکھنے والے AI کلائنٹس کے سامنے آ جائے گا۔

کلاڈ کوڈ کے لیے کیسے رجسٹر ہوں۔

claude mcp add openosint python /absolute/path/to/OpenOSINT/openosint/mcp_server.py

تصدیق کریں کہ رجسٹریشن کام کرتی ہے۔

claude mcp list

رجسٹر کرنے کے بعد، آپ Claude Code prompts پر تحقیق کر سکتے ہیں۔

> Investigate target@example.com. If you find a linked username,
  trace it across other platforms and compile a full report.

کلاڈ ڈیسک ٹاپ کو کنفیگر کرنے کا طریقہ

اپنی کلاڈ ڈیسک ٹاپ کنفیگریشن میں درج ذیل کو شامل کریں: ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "openosint": {
      "command": "python",
      "args": ["/absolute/path/to/OpenOSINT/openosint/mcp_server.py"]
    }
  }
}

فائل کو محفوظ کرنے کے بعد، کلاڈ ڈیسک ٹاپ کو دوبارہ شروع کریں. ٹول کلاڈ کے ٹول لسٹ میں ظاہر ہوگا۔

MCP سرور stdio ٹرانسپورٹ کا استعمال کرتا ہے اور اسے کسی بھی جاری پس منظر کے عمل کی ضرورت نہیں ہے۔ Claude Code یا Claude Desktop مطالبہ پر لانچ کرتا ہے۔

ایجنٹ لوپ اندرونی طور پر کیسے کام کرتا ہے۔

یہاں ایجنٹ لوپ کا ایک آسان ورژن ہے: openosint/agent.py:

import anthropic
import asyncio

client = anthropic.Anthropic()

async def run_investigation(user_prompt: str) -> str:
    messages = [{"role": "user", "content": user_prompt}]

    while True:
        response = client.messages.create(
            model="claude-...",   # model configured via --api-key / env var
            max_tokens=4096,
            tools=TOOL_SCHEMAS,   # JSON schemas for all 9 tools
            messages=messages
        )

        # Agent is done — extract and return the final report
        if response.stop_reason == "end_turn":
            return extract_text(response)

        # Agent needs a tool — run the real binary
        if response.stop_reason == "tool_use":
            tool_results = []

            for block in response.content:
                if block.type == "tool_use":
                    # Runs holehe, sherlock, etc. as real subprocesses
                    real_output = await execute_tool(block.name, block.input)

                    tool_results.append({
                        "type": "tool_result",
                        "tool_use_id": block.id,
                        "content": real_output  # real output, never generated
                    })

            # Append assistant turn and real tool results to conversation
            messages.append({"role": "assistant", "content": response.content})
            messages.append({"role": "user", "content": tool_results})

اس کوڈ کے بارے میں سمجھنے کے لیے چند اہم چیزیں ہیں۔

  1. لوپ اس وقت تک چلتا ہے: stop_reason == "end_turn": ایجنٹ اس بات کا تعین کرتا ہے کہ حتمی رپورٹ لکھنے کے لیے کافی معلومات کب اکٹھی کی گئی ہیں۔ آپ کو جو کچھ ملتا ہے اس پر منحصر ہے، آپ ایک ٹول یا 10 ٹولز پر کال کر سکتے ہیں۔

  2. execute_tool() اصل ذیلی عمل کو چلاتا ہے۔: Python کے ارد گرد ایک پتلی غیر مطابقت پذیر چادر۔ asyncio.create_subprocess_exec() ایک قابل ترتیب وقت کی حد ہے۔ کسی بھی مقام پر کوئی نقلی یا مضحکہ خیز ڈیٹا نہیں ہے۔

  3. بات چیت کی تاریخ پورے لوپ میں برقرار رہتی ہے۔: ہر ٹول کا نتیجہ دوبارہ ہوتا ہے۔ messagesلہذا ماڈل کے پاس ہمیشہ اس بات کا مکمل سیاق و سباق ہوتا ہے کہ اسے آگے کیا کرنا ہے اس کا فیصلہ کرتے وقت اسے کیا ملا۔

  4. ٹول اسکیما کی وضاحت JSON میں کی گئی ہے۔: ہر ٹول کا ایک نام، تفصیل اور پیرامیٹر اسکیما ہوتا ہے۔ ماڈل اس کا استعمال یہ جاننے کے لیے کرتا ہے کہ کون سے ٹولز موجود ہیں اور وہ کون سے دعوے قبول کرتے ہیں۔ یہاں ایک سادہ مثال ہے: search_email:

{
    "name": "search_email",
    "description": (
        "Enumerates online services and social accounts "
        "associated with an email address using holehe."
    ),
    "input_schema": {
        "type": "object",
        "properties": {
            "email": {
                "type": "string",
                "description": "Target email address"
            }
        },
        "required": ["email"]
    }
}

ایک ہی نمونہ تمام نو ٹولز پر لاگو ہوتا ہے۔ ماڈل ان اسکیموں کو ہر درخواست کے شروع میں پڑھتا ہے اور ان کا استعمال اس بات کا تعین کرنے کے لیے کرتا ہے کہ کیا دستیاب ہے اور اسے کیسے کال کرنا ہے۔

پروجیکٹ فن تعمیر

کوڈ بیس پانچ تہوں پر مشتمل ہے۔ پورے کوڈبیس میں ایک سخت اصول یہ ہے کہ کبھی بھی کسی پرت کو اونچی پرت سے نہ کھینچیں۔

openosint/tools/        Core tools
                        Async wrappers around external binaries and APIs.
                        Stateless. No AI. No CLI. Pure functions.

openosint/agent.py      AI agent
                        Anthropic tool use loop.
                        Per-session conversation history.
                        Imports from tools/. Nothing imports from agent.py.

openosint/repl.py       Interactive REPL (prompt_toolkit + Rich)
openosint/mcp_server.py MCP server (stdio transport)
openosint/cli.py        CLI entry point

یہ علیحدگی ہر پرت کو آزادانہ طور پر جانچنے کی اجازت دیتی ہے۔ بنیادی ٹول ایک خالصتاً غیر مطابقت پذیر فنکشن ہے جو سٹرنگ لیتا ہے اور سٹرنگ لوٹاتا ہے۔ آپ ایجنٹ یا CLI کو چھوئے بغیر یونٹ ٹیسٹ کر سکتے ہیں۔

اس کا مطلب یہ بھی ہے کہ AI پرت مکمل طور پر اختیاری ہے۔ اگر آپ کے پاس Anthropic API کلید نہیں ہے تو CLI استعمال کریں اور ایجنٹ کو نظرانداز کریں۔ MCP سرور ایجنٹ سے آزادانہ طور پر کام کرتا ہے۔

9 دستیاب ٹولز

سامان پسدید جو واپس کیا جاتا ہے۔
search_email Hehehe آپ کے ای میل سے منسلک سوشل اکاؤنٹس
search_username شیرلاک 300+ پلیٹ فارمز پر اکاؤنٹس
search_breach HaveIBeenPwned v3 خلاف ورزی کا نام، تاریخ، اور ڈیٹا کی قسم لیک ہو گئی۔
search_whois Python-Whois رجسٹرار، رجسٹرار، تخلیق/میعاد ختم
search_ip ipinfo.io جغرافیائی محل وقوع، ASN، میزبان نام، تنظیم
search_domain ذیلی فہرست 3r ذیلی ڈومین کی گنتی
generate_dorks اندرونی سجاوٹ 12 ٹارگٹ گوگل ڈورک یو آر ایل، کوئی نیٹ ورک کال نہیں۔
search_paste psbdmp.ws Pastebin ڈمپ کا ذکر کیا
search_phone فون کی معلومات کیریئر، ملک، لائن کی قسم

نتیجہ

اس ٹیوٹوریل میں، آپ نے OpenOSINT کو ترتیب دینے اور استعمال کرنے کا طریقہ سیکھا، جو کلاڈ کے ٹولنگ API کے اوپر بنایا گیا ایک Python OSINT فریم ورک ہے۔

کلیدی ٹیک ویز ڈیزائن کے اصول ہیں۔ ڈیفالٹ ٹولنگ کا استعمال ایجنٹ کو کوئی ٹول آؤٹ پٹ پیدا نہیں کرتا ہے۔ یہ صرف اصل بائنری کی اصل پیداوار کو پڑھتا ہے۔ یہ حفاظتی تحقیق کے لیے موزوں ہے جہاں درستگی اہم ہے اور فریب کاری قابل قبول ناکامی موڈ نہیں ہے۔

تین انٹرفیس کا خلاصہ اس طرح کیا گیا ہے:

  • چلائیں openosint بات چیت کے لیے AI REPLs – خودکار لنکنگ کے ساتھ مکمل تحقیق کے لیے بہترین

  • چلائیں openosint email یا openosint username براہ راست CLI تک رسائی کے لیے – سکرپٹ اور آٹومیشن کے لیے بہترین موزوں

  • اپنے موجودہ AI ماحول میں تحقیقات چلانے کے لیے اپنے MCP سرور کو Claude Code یا Claude Desktop کے ساتھ رجسٹر کریں۔

مکمل سورس کوڈ GitHub پر MIT لائسنس کے تحت دستیاب ہے۔ تعاون اور مسائل خوش آئند ہیں۔

قانونی نوٹس: OpenOSINT تسلیم شدہ حفاظتی تحقیق، دخول کی جانچ، اور تحقیقاتی صحافت کے لیے وقف ہے۔ آپ GDPR، CCPA اور CFAA سمیت قابل اطلاق قوانین کی تعمیل کے لیے مکمل طور پر ذمہ دار ہیں۔ مکمل نوٹس کے لیے DISCLAIMER.md دیکھیں۔

اوپر تک سکرول کریں۔