How devanimecx/jiro works
JIRO is a self-hosted search and scraping API, with cloud-compatible clients and AI-agent interfaces. The main workflow is a client request entering the API, being authenticated and routed to search or scraping, and returning normalized results; search can fan out to engine parsers and use hybrid ranking. Separate branches cover social scraping, AI answers, and MCP tools, with cache and database state supporting runtime services. The README documents capabilities beyond the sampled excerpts; links for those unsampled paths are included only where the tree and product description support them.
Main entry points: engines.py Engine Orchestrator · search.py Search Routes · auth.py Authentication · scrape.py Scrape Routes
Components 25
API and Access
- Search Routes
jiro/server/routers/search.py - Scrape Routes
jiro/server/routers/scrape.py - AI Routes
jiro/server/routers/ai.py - Social Routes
jiro/server/routers/social.py - Authentication
jiro/auth.py
Search
- Engine Orchestrator
jiro/scraping/engines.py - Search Engines
jiro/plugins/engine/google_scholar.py - Hybrid Search
jiro/search/hybrid.py - Multi-Query
jiro/search/multiquery.py - Semantic Search
jiro/search/embeddings.py
Scraping
- Scraping Client
jiro/scraping/client.py - Scrape Engines
jiro/scraping/engines.py - SERP Parsers
jiro/scraping/parsers/google.py - Social Router
jiro/scraping/social/router.py - Platform Scrapers
jiro/scraping/social/reddit.py
AI Interfaces
- Research Agent
jiro/ai/agent.py - LLM Providers
jiro/ai/llm.py - MCP Server
jiro/mcp.py
Other components
- API Client
- Search Providers
- Web and Social Sites
- LLM Services
- MCP Client
Connections 30
- API Client → Search Routes: requests search
- API Client → Scrape Routes: requests scrape
- API Client → AI Routes: requests AI
- API Client → Social Routes: requests social
- Search Routes → Authentication: checks access
- Scrape Routes → Authentication: checks access
- AI Routes → Authentication: checks access
- Social Routes → Authentication: checks access
- Search Routes → Engine Orchestrator: dispatches search
- Engine Orchestrator → Search Engines: selects engine
- Search Engines → Search Providers: fetches results
- Engine Orchestrator → Hybrid Search: dispatches hybrid
- Hybrid Search → Semantic Search: embeds results
- Engine Orchestrator → Cache: reads and writes
- Search Routes → Multi-Query: batch search
- Scrape Routes → Scrape Engines: dispatches scraping
- Scrape Engines → Scraping Client: fetches pages
- Scrape Engines → SERP Parsers: parses SERPs
- Scraping Client → Web and Social Sites: fetches pages
- Social Routes → Social Router: routes URLs
- Social Router → Platform Scrapers: selects scraper
- Platform Scrapers → Scraping Client: fetches content
- AI Routes → Research Agent: runs research
- Research Agent → Engine Orchestrator: searches sources
- Research Agent → LLM Providers: requests synthesis
- LLM Providers → LLM Services: calls provider
- MCP Client → MCP Server: invokes tools
- MCP Server → Engine Orchestrator: searches
- MCP Server → Scrape Engines: scrapes
- Search Routes → Database: records usage