
Open Deep Research
A small TypeScript agent that researches a topic in rounds, using web search and an LLM to write a report.dzhng/deep-research
- Stars
- 19.9k
- Forks
- 2k
- Licence
- MIT
- Language
- TypeScript
- Last update
- 7 months ago
- Type
- AI model / agent
What it is
This project is a research assistant you run from the command line. You give it a question, and it generates search queries, reads the results, pulls out key learnings, and then follows new directions based on what it found. When it finishes, it writes a markdown report with findings and sources. The README says the goal is a simple implementation that stays under 500 lines of code so others can learn from it and build on it.
- Generate a multi-part markdown report on a topic you enter at the prompt
- Adjust breadth and depth to control how wide and how far the research goes
- Use a local LLM server through an OpenAI-compatible endpoint instead of OpenAI
- Run the project in Docker with docker compose
Great for
- Developers who want a readable example of a deep research agent to learn from or extend
- Students exploring how LLMs can be chained with search and scraping
- People who already have OpenAI and Firecrawl API keys and want a starting point for automated topic reports
Not ideal for
- Users who want a polished end-user app: the README describes a command-line workflow with environment files and no graphical interface
- People without API keys or budget for them, since the README requires a Firecrawl key and an OpenAI key (or a local LLM endpoint)
- Anyone needing guaranteed-accurate research: the README does not describe any verification of sources or claims
How to get it
- 1
Clone and build from source
You'll need: Node.js · Firecrawl API key · OpenAI API key (or a local OpenAI-compatible LLM server)
Install dependencies
npm installStart the research assistant
npm start - 2
Run it
- Clone the repository and run npm install
- Create a .env.local file with FIRECRAWL_KEY and OPENAI_KEY
- Run npm start
- Enter your research query, then set breadth and depth and answer the follow-up questions
- Find the report in report.md or answer.md in your working directory
- 3
Get the most out of it
- Set CONCURRENCY_LIMIT higher if you have a paid or self-hosted Firecrawl plan, or lower it to 1 on a free plan to avoid rate limits
- Use FIREWORKS_KEY to switch from o3-mini to DeepSeek R1, as described in the README
- Point OPENAI_ENDPOINT and CUSTOM_MODEL at other OpenAI-compatible APIs such as OpenRouter
- Use FIRECRAWL_BASE_URL to point at a self-hosted Firecrawl instance
Downloads
Strengths
- Short, readable codebase that the README says is kept under 500 lines
- Configurable breadth and depth let you trade thoroughness for run time and cost
- Supports several model providers via OpenAI-compatible endpoints, per the README
Trade-offs
- Requires paid or rate-limited API access (Firecrawl and an LLM); the README notes free tiers may hit rate limits
- The README does not describe how output quality or source accuracy is evaluated
- Setup involves several steps and environment variables, which can be fiddly for non-developers
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| deep-research (this) | 19.9k | AI model / agent | intermediate | 7 months ago | Developers who want a readable example of a deep research agent to learn from or extend |
| storm | 31.8k | AI model / agent | intermediate | 1.1 years ago | Developers who want to build a customizable research or report-writing pipeline |
| RD-Agent | 15.2k | AI model / agent | advanced | 15 days ago | Researchers who want to test automated ML engineering agents on benchmark-style tasks |
| OpenHands | 92.5k | App | intermediate | 4 days ago | Developers who want coding agents running on a server while their laptop is off |
| MetaGPT | 71.1k | Framework | intermediate | 10 months ago | Developers experimenting with multi-agent LLM workflows |
| botpress | 15k | Dev tool | intermediate | 6 days ago | Developers who want to write integrations and bots as TypeScript code using the Botpress CLI and SDK |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.