explaingit

bettyguo/local-deep-research

Analysis updated 2026-05-18

7PythonAudience · developerLicense

TLDR

A command-line research agent that plans, searches, and writes a cited report using only local AI models, with no data sent to any cloud service.

Mindmap

mindmap
  root((repo))
    What it does
      Plans sub-questions
      Searches and fetches web
      Writes cited report
    Tech stack
      Python
      Ollama
      llama-cpp
      SearXNG
    Use cases
      Private research reports
      Air-gapped research
      Zero API cost queries
    Audience
      Privacy-focused users
      Local LLM enthusiasts
    Pipeline
      Planner
      Researcher
      Synthesizer
      Citer

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Generate a cited research report on a topic entirely offline using a local LLM.

USE CASE 2

Run deep research in an air-gapped environment with a self-hosted search backend.

USE CASE 3

Get sourced answers to research questions without paying for a cloud LLM API.

What is it built with?

PythonOllamallama.cppvLLMSearXNGBM25

How does it compare?

bettyguo/local-deep-researchcaptaingrock/krea2trainercodenamekt/hexus
Stars777
LanguagePythonPythonPython
Setup difficultyhardmoderate
Complexity4/53/5
Audiencedeveloperdesignerdeveloper

Figures from each repo's GitHub metadata at analysis time.

In plain English

Local-deep-research, or ldr, is a command line research agent that answers a question by automatically planning, searching the web, reading source pages, and writing a cited report, all without sending your question or data to any cloud AI service. Every AI step runs on a local model through Ollama, llama.cpp, or vLLM, so nothing leaves your machine. When you run ldr ask followed by your question, the tool breaks it into a set of sub-questions in what it calls the Planner stage, then searches the web and fetches relevant pages for each sub-question in parallel during the Researcher stage. It extracts the most relevant passages using BM25 and dense retrieval, two complementary ways to find relevant text in a body of documents, then stitches all the answers into one coherent report during the Synthesizer stage. Finally, a Citer stage verifies every claim has a matching source and flags anything that does not, producing a markdown report with inline numbered citations, an open questions section, and an unsupported claims appendix. Web search runs against SearXNG, a self-hosted, rate limit free search engine recommended for serious use, followed by DuckDuckGo, then the Brave Search API, tried in that order. The tool auto-detects available RAM and picks an appropriately sized model from the qwen2.5 family by default, ranging from a 7 billion parameter model for 8 GB of RAM up to a 32 billion parameter model for 32 to 48 GB. This is useful for people who want deep, sourced research without a subscription or API costs, who care about privacy, or who work in an air-gapped environment with a self-hosted search backend and pre-downloaded models. It is a Python command line project, pre-alpha, released under the Apache 2.0 license.

Copy-paste prompts

Prompt 1
Install bettyguo/local-deep-research with Ollama and run ldr ask on a sample research question.
Prompt 2
Explain how the Planner, Researcher, Synthesizer, and Citer stages work together in this pipeline.
Prompt 3
Set up SearXNG locally so this tool can search without hitting DuckDuckGo rate limits.

Frequently asked questions

What is local-deep-research?

A command-line research agent that plans, searches, and writes a cited report using only local AI models, with no data sent to any cloud service.

What language is local-deep-research written in?

Mainly Python. The stack also includes Python, Ollama, llama.cpp.

Who is local-deep-research for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.