Self-hosted Perplexity clone with a research mode that actually cites sources
SearChat wires multi-model LLMs to multiple search backends and adds an iterative Deep Research mode you can also use standalone.

What it does SearChat is a Docker-deployable conversational search engine: ask a question, it searches the web, then the LLM answers with citations. It supports OpenAI, Anthropic, Gemini, and Vertex AI models, and plugs into Bing, Google, Tavily, Exa, Bocha, or SearXNG for search. Chat history lives in the browser (IndexedDB/LocalStorage), and the UI is a Vue 3 frontend over a Koa/Node backend.
The interesting bit
The Deep Research mode uses LangChain + LangGraph to iteratively search, spot knowledge gaps, search again, and emit a structured report with citations. The same engine is published as a standalone npm package (deepsearcher), so you can drop the research loop into your own Node project without the full UI.
Key highlights
- Multi-model via a
model.jsonconfig file; supports OpenAI Responses API or Chat Completions modes - SearXNG bundled in Docker Compose for zero-API-key search out of the box
- Citation formats are configurable: clickable URL footnotes or simple
[[citation:1]]markers - Search-intent analysis can be routed to a smaller/cheaper model to save tokens
- Dark/light theme, i18n, and mobile-responsive UI included
Caveats
- MCP support, image search, and file upload parsing are all marked TODO in the README
- The model must support Tool Call / Function Calling; the docs warn results suffer otherwise
- SearXNG requires manual
settings.ymltweak to enable JSON output for the API
Verdict Good fit if you want a private, self-hosted search assistant with a credible research mode and don’t mind wiring up API keys. Skip it if you need MCP tool extensibility or multimodal inputs today; those aren’t here yet.