gitmyhub

local-deep-researcher

Python ★ 9.2k updated 2d ago

Fully local web research and report writing assistant

Automated web research tool that uses a locally running AI model to iteratively search the web, summarize findings, identify gaps, and repeat until it produces a cited Markdown report, no cloud AI required.

PythonLangGraphOllamaLMStudioDuckDuckGosetup: moderatecomplexity 3/5

Local Deep Researcher is a tool that lets you do thorough web research using an AI model running entirely on your own computer, without sending your queries to a cloud service. You give it a topic, and it handles the research process automatically: it writes a search query, fetches results from the web, summarizes what it found, identifies what is still missing, writes a new search query to fill those gaps, and repeats this cycle as many times as you configure. At the end, it produces a written summary in Markdown format with links to all the sources it used.

The AI that drives the research runs locally through Ollama or LMStudio, which are apps that let you download and run open AI models on your own machine. This means your research stays private, works without an internet connection for the AI part, and has no per-query costs from an AI provider. You still need internet access for the actual web searches.

For web search, the tool defaults to DuckDuckGo, which needs no API key. You can also connect it to other search providers like Tavily, Perplexity, or SearXNG if you have accounts with those services. Setup involves cloning the repository, copying an example configuration file, choosing your local AI model, and optionally picking a search provider. The application then runs through LangGraph Studio, which is a visual interface for running and monitoring this kind of multi-step AI workflow.

This project is aimed at developers and technically comfortable users who want private, automated research without relying on a paid AI service. You need to be comfortable installing software, running terminal commands, and editing configuration files to get it working.

Where it fits