← Back to research
·4 min read·company

Deep Research (dzhng)

dzhng/deep-research — the simplest deep research agent implementation. Under 500 lines of code with depth/breadth controls for iterative research. 19.1k stars, MIT license, TypeScript. Created by Duet; maintenance has slowed to occasional.

Key takeaways

  • The simplest deep research agent — under 500 lines of code with explicit depth and breadth parameters that control research iteration
  • Iterative refinement loop: search, process results, extract learnings and new directions, recurse until depth reaches zero, then generate final report
  • 19.1k stars, ~2k forks, MIT license, TypeScript. A reference implementation, not a framework — designed to be easy to understand and build on top of
  • Now attributed to Duet (formerly sponsored by Aomni). Maintenance is sporadic: the only commit between September 2025 and June 2026 was an April 2026 README update

FAQ

What is dzhng/deep-research?

A minimal deep research agent (~500 LoC) that iteratively searches, processes results, extracts learnings and new research directions, and recurses until the configured depth is exhausted. Then generates a markdown report.

How do depth and breadth parameters work?

Breadth controls how many search queries run per iteration. Depth controls how many recursive rounds of research occur. Higher values produce more comprehensive but slower reports.

Is dzhng/deep-research still maintained?

Barely. As of June 2026 the last code change was May–June 2025 (a report-generation API endpoint); the only activity since September 2025 is an April 2026 README edit changing attribution from Aomni to Duet. The repo is stable as a reference implementation but not actively evolving, with ~88 open issues.

Overview

dzhng/deep-research is the minimalist's deep research agent — an AI-powered research assistant that performs iterative research on any topic in under 500 lines of TypeScript. Created by David Zhang in February 2025 as an open-source answer to OpenAI's $200/month Deep Research — "Get the same capability without paying $200," as Zhang put it at launch — it now sits at 19.1k stars on GitHub.

The design philosophy is explicit: keep the repo small enough to understand completely, then build on top. Two parameters control everything — breadth (queries per iteration) and depth (recursive rounds).

Key stats (June 2026): 19,099 stars, 1,966 forks, MIT license, TypeScript. README now credits the project to Duet (duet.so), replacing the earlier Aomni sponsorship as of April 2026.


Architecture

The iterative loop:

  1. Deep Research — Takes user query + breadth + depth parameters
  2. SERP Queries — Generates and executes search queries (via the Firecrawl API for search and content extraction)
  3. Process Results — Extracts learnings and new research directions
  4. Decision — If depth is greater than 0, pick next direction (informed by prior goals, new questions, and learnings) and recurse
  5. Output — When depth reaches 0, generate markdown report

The simplicity is the point — no frameworks, no complex orchestration, just a recursive search-and-learn loop. A report-generation API endpoint (May 2025) and Docker support are the main additions since launch.


Competitive Position

Strengths: Extremely simple, easy to fork and customize. MIT license. Great starting point for building custom research agents — multiple downstream projects (web UIs, hosted wrappers) are built directly on it.

Weaknesses: No built-in UI, no document ingestion (web only), prompt-based (no fine-tuned model). Langfuse's head-to-head found its reports ran ~12k characters versus ~87k from OpenAI's Deep Research, with weaker reasoning — the trade for transparency and hackability.


Cautions

  • Maintenance has effectively stalled: the last functional change landed mid-2025, and the only commit between September 2025 and June 2026 was the April 2026 README attribution change from Aomni to Duet. Roughly 88 issues sit open.
  • It is a reference implementation, not a product — expect to bring your own Firecrawl and model API keys, and to fork rather than wait for upstream features.
  • Report depth lags commercial tools by a wide margin (~12k vs ~87k characters in Langfuse's comparison), so it suits prototyping more than production research workloads.

What Developers Say

Langfuse's Jannik, after benchmarking it against OpenAI and Perplexity: "At under 500 lines of code, deep-research packs a surprising punch" — running recursive research loops with "no hidden logic, no unnecessary dependencies," though for "huge reports or integrated browsing at scale" he pointed to commercial options.

Builders treat it as a foundation: the author of one Show HN open-deep-research wrapper wrote, "It started when I found @dzhng's deep-research CLI tool that did the same thing."

No substantial new developer commentary has surfaced since mid-2025 — discussion volume tracks the repo's slowed maintenance.


Bottom Line

Recommended if you want to understand how deep research agents work or need a clean MIT-licensed skeleton to fork into your own research pipeline — at ~500 lines it remains the best readable reference implementation. Not recommended as a maintained product dependency: development has been dormant since mid-2025, reports are shallow versus commercial deep research tools, and there's no UI or document ingestion. Outlook: stable but static — stars still drift upward (18.6k → 19.1k since March 2026), but with attribution handed to Duet and no roadmap, expect it to remain a teaching artifact rather than an evolving tool.


Research by Ry Walker Research