← all repositories
yokingma/SearChat

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.

1k stars TypeScript RAG · SearchChat Assistants
SearChat
Velocity · 7d
+1.3
★ / day
Trend
steady
star history

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.json config 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.yml tweak 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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.