
Hermes — an ephemeral, Docker-powered OSINT framework for testing, tinkering, and secure investigative automation.
The Agentic OSINT Analyst
Conversational AI-driven investigations. Natural language. Expert results. 🤖✨
Hermes 3.0 represents a complete paradigm shift from pipeline-based tool orchestration to a conversational AI-driven investigation platform. Powered by local LLMs via Ollama, Hermes now understands natural language queries, autonomously selects and executes tools, and synthesizes findings into coherent intelligence reports.
/save and /load--headless --query "..." for scripting and automationhermes sherlock <user> for direct tool access without LLMHermes is a universal OSINT orchestration platform that unifies best-in-class open-source intelligence tools into a single, AI-powered workflow. Instead of manually running Sherlock, TheHarvester, Holehe, and other tools separately—wasting precious investigation time ⏰—Hermes's agentic core understands your intent, orchestrates tools intelligently, correlates results across sources, and delivers professional reports. 📊
What makes Hermes different: 🌟
~/.hermes_history)/help, /tools, /status, /save, /load, /export, /clear, /exit--workers flag for fine-tuned concurrency 🎛️# Clone and install
git clone https://github.com/Expert21/hermes-osint.git
cd hermes-osint
pip install -r requirements.txt
pip install .
# Install Ollama and pull a model
curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1:8b
# Health check
hermes --doctor # 🏥 Make sure everything's ready!
# 🧠 TUI Mode (default) - Conversational AI interface
hermes
# Then chat naturally: "Find social accounts for johndoe"
# 📜 Headless Mode - For scripting and automation
hermes --headless --query "Investigate the domain example.com"
# 🔧 Legacy Mode - Direct tool access (no LLM required)
hermes sherlock johndoe
hermes theharvester example.com
hermes holehe [email protected]
/help # Show all commands
/tools # List available investigation tools
/status # Show current session status
/save # Save session to file
/load # Load a previous session
/sessions # List all saved sessions
/export FILE # Export report (md, pdf, html, csv, stix)
/stealth # Toggle stealth mode
/clear # Clear conversation
/exit # Exit Hermes
# Stealth mode - passive tools only
hermes --stealth
# Blocks: sherlock, holehe, phoneinfoga
# Allows: theharvester, subfinder, h8mail
# Specific model selection
hermes --model mistral:7b
# Headless with output
hermes --headless --query "Find subdomains for target.com" --output report.md
User Input → CLI (cli.py)
├── TUI Mode → AgentLoop → Ollama → ToolExecutor → Adapters
├── Headless → AgentLoop → Single Query → Report
└── Legacy → ToolExecutor Direct (no LLM)
┌─────────────┐
│ User Query │ 💬 "Find info about johndoe"
└──────┬──────┘
│
▼
┌─────────────────┐
│ AgentLoop │ 🧠 ReAct: Think → Act → Observe
│ (agent_loop.py)│
└────────┬────────┘
│
├──────────────────┬────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌───────────────┐ ┌─────────────┐
│ ToolRegistry │ │ContextManager │ │ SessionStore│
│(tool_registry)│ │(context_mgr.py)│ │(session_store)│
└──────┬───────┘ └───────────────┘ └─────────────┘
│
▼
┌──────────────────────┐
│ ToolExecutor │ 🔧 Validates + Executes
│ (tool_executor.py) │
└──────────┬───────────┘
│
▼
┌─────────────────────────┐
│ ExecutionStrategy │ 🎭 Docker/Native/Hybrid
│ (execution_strategy.py) │
└──────────┬──────────────┘
│
▼
┌──────────────┐
│ Tool Adapters│ 🔌 Sherlock, TheHarvester, etc.
└──────┬───────┘
│
▼
┌─────────────┐ ┌──────────────┐
│ Raw Results │─────▶│Deduplication │ ✨
└─────────────┘ └──────┬───────┘
│
▼
┌─────────────┐
│ Report │ 📊
│ (exporter) │
└─────────────┘
src/agent/)src/orchestration/)src/security/)eval(), exec(), os.system(), and shell injection 🚨Hermes generates reports in multiple formats via /export—your data, your way! 🎨
📦 JSON - Structured data for programmatic consumption
📝 Markdown - Clean, GitHub-compatible format with tables
🌐 HTML - Responsive design with embedded CSS and statistics
📄 PDF - Professional formatting with executive summary
📊 CSV - Simple tabular format for spreadsheet import
🔒 STIX 2.1 - Industry-standard threat intelligence format
Hermes OSINT is licensed under the GNU Affero General Public License v3.0.
What this means: 💡
See the LICENSE file for complete terms.
🔍 Security Research - Investigate threats with natural language queries
🤝 Due Diligence - "Tell me everything about this person/company"
👣 Digital Footprint Analysis - Understand your organization's exposure
📈 Competitive Intelligence - Research competitors conversationally
🎯 Threat Intelligence - Collect indicators with AI-driven triage
📰 Investigative Journalism - Let Hermes connect the dots
For authorized OSINT activities only. ⚠️ Users are solely responsible for obtaining proper authorization, complying with applicable laws, and using this tool ethically.
Permitted uses: ✅
Prohibited uses: 🚫
The developers assume no liability for misuse of this tool. 🙅♂️
Contributions are welcome! 🎉 Please see PLUGIN_DEVELOPMENT.md for plugin creation guidelines and USAGE.md for detailed usage documentation.
Got ideas? Found bugs? Want to add a tool? Open an issue or submit a PR! 💪
Isaiah Myles (@Expert21)
Emerging cybersecurity professional | Pentester mindset | Builder of tools that matter 🛠️⚡
Hermes v3.0 🏛️🧠
The Agentic OSINT Analyst
Conversational AI. Expert Tools. Unified Intelligence.
Made with 💪 and ☕ by someone who believes OSINT should be intelligent, secure, and accessible.
| Tool | Purpose | Input Type | Stealth | Status |
|---|
| Sherlock 🕵️ | Username enumeration across 300+ sites | Username | ❌ | ✅ |
| TheHarvester 🌾 | Email/subdomain discovery from OSINT sources | Domain | ✅ | ✅ |
| h8mail 📧 | Breach data correlation and lookup | ✅ | ✅ | |
| Holehe 🔍 | Email account detection across 120+ platforms | ❌ | ✅ | |
| PhoneInfoga 📱 | Phone number OSINT and carrier lookup | Phone | ❌ | ✅ |
| Subfinder 🗺️ | Passive subdomain enumeration | Domain | ✅ | ✅ |