Discover / AI Agents

GPT Researcher

by assafelovicPython

Autonomous research agent that scrapes 20+ sources to produce comprehensive research reports.

Agentstable

Maturity: stable because 3y old, v3.6.0 released 16d ago. Derived from release and commit history, not a rating.

Stars
29k
Forks
3.9k
Downloads / mo
87k
Last commit
2026-07-18
License
Apache-2.0
Open issues
163

Market and trust evidence

Edition not yet matched

No exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.

Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.

In practice

Written by AI from this repository’s README · high confidence

Manual research takes weeks and single model answers hallucinate or run out of context on long topics.

Use it when

When you need a cited report aggregated from many web or local sources rather than one model answer.

Not the right pick when

It expects both an LLM key and a search provider key, so it cannot run without third party API access.

Capabilities

  • Detailed research reports with citations
  • Planner and execution agent architecture
  • Research over both web sources and local documents
  • Reports exceeding 2,000 words with PDF and Word export
  • Smart image scraping and filtering for reports
  • Installable as a Claude Skill

Requirements

  • Python 3.11 or later
  • OPENAI_API_KEY and TAVILY_API_KEY exported or stored in a .env file

Cost: Free and open source

Install

Derived from the published package name in the repository, not from a model.

Video walkthroughs

Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.

What the repository ships

MCP manifestCursor rulesHas testsHas docsDocker imageSecurity policyCI configured

Detected from the actual files in the repository root.

Latest release v3.6.0

Published 2026-07-18

Introducing a super stable version with enhanced improvements across security, stability and performance. We're also introducing a collaboration with Langchain with the latest deep agents framework here - https://github.com/assafelovic/gpt-researcher/tree/main/deep_agents

Thank you and welcome to all the new contributors!

What's Changed

  • security: sanitize untrusted content, add SECURITY.md, pin brotli by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1820
  • Fix silently dropped token limits, real usage-based cost tracking, and research pipeline robustness by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1861
  • Add Deep Agents example: GPT Researcher as the research engine in a LangChain deep agent by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1857
  • Resolve post-merge conflicts: 4 retriever/context fixes (supersedes #1895-1898) by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1906
  • Retriever hardening: 20 guard fixes against malformed results (supersedes #1837…#1890) by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1907
  • Scraper robustness: 6 fixes (title/PDF-detection/temp-file/dimensions) (supersedes #1824…#1842) by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1908
  • Multi-agent robustness: bound revision loops + exact sentinels (supersedes #1883/#1885/#1886) by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1909
  • Core/misc hardening: 11 fixes (costs/query/llm/agent/mcp/config) (supersedes #1822…#1902) by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1910
  • Reconcile master→main: GetXAPI retriever, Claude 4.x temp fix, MiniMax M3, curate_sources fixes by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1911
  • feat: add Nebius Token Factory as LLM and embedding provider by @teionarr in https://github.com/assafelovic/gpt-researcher/pull/1891
  • chore(multi_agents): nest AG2 variant under multi_agents/ag2 by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1912
  • docs(skill): fix drift in .claude reference docs (retrievers, multi-agents, api) by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/1913

New Contributors

  • @teionarr made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/1891

Full Changelog: https://github.com/assafelovic/gpt-researcher/compare/v3.5.1...v3.6.0

Tags

README

<div align="center" id="top">

<img src="https://github.com/assafelovic/gpt-researcher/assets/13554167/20af8286-b386-44a5-9a83-3be1365139c3" alt="Logo" width="80">

####

Website

Documentation

Discord

PyPI version

GitHub Release

Open In Colab

Docker Image Version

Skill

Twitter Follow

English | 中文 | 日本語 | 한국어

</div>

🔎 GPT Researcher

GPT Researcher the first open deep research agent designed for both web and local research on any given task.

The agent produces detailed, factual, and unbiased research reports with citations. GPT Researcher provides a full suite of customization options to create tailor made and domain specific research agents. Inspired by the recent Plan-and-Solve and RAG papers, GPT Researcher addresses misinformation, speed, determinism, and reliability by offering stable performance and increased speed through parallelized agent work.

Our mission is to empower individuals and organizations with accurate, unbiased, and factual information through AI.

Why GPT Researcher?

  • Objective conclusions for manual research can take weeks, requiring vast resources and time.
  • LLMs trained on outdated information can hallucinate, becoming irrelevant for current research tasks.
  • Current LLMs have token limitations, insufficient for generating long research reports.
  • Limited web sources in existing services lead to misinformation and shallow results.
  • Selective web sources can introduce bias into research tasks.

Demo

<a href="https://www.youtube.com/watch?v=f60rlc_QCxE" target="_blank" rel="noopener">

<img src="https://github.com/user-attachments/assets/ac2ec55f-b487-4b3f-ae6f-b8743ad296e4" alt="Demo video" width="800" target="_blank" />

</a>

Install as Claude Skill

Extend Claude's deep research capabilities by installing GPT Researcher as a Claude Skill:


npx skills add assafelovic/gpt-researcher

Once installed, Claude can leverage GPT Researcher's deep research capabilities directly within your conversations.

Architecture

The core idea is to utilize 'planner' and 'execution' agents. The planner generates research questions, while the execution agents gather relevant information. The publisher then aggregates all findings into a comprehensive report.

<div align="center">

<img align="center" height="600" src="https://github.com/assafelovic/gpt-researcher/assets/13554167/4ac896fd-63ab-4b77-9688-ff62aafcc527">

</div>

Steps:

  • Create a task-specific agent based on a research query.
  • Generate questions that collectively form an objective opinion on the task.
  • Use a crawler agent for gathering information for each question.
  • Summarize and source-track each resource.
  • Filter and aggregate summaries into a final research report.

Tutorials

Features

  • 📝 Generate detailed research reports using web and local documents.
  • 🖼️ Smart image scraping and filtering for reports.
  • 🍌 AI-generated inline images using Google Gemini (Nano Banana) for visual illustrations.
  • 📜 Generate detailed reports exceeding 2,000 words.
  • 🌐 Aggregate over 20 sources for objective conclusions.
  • 🖥️ Frontend available in lightweight (HTML/CSS/JS) and production-ready (NextJS + Tailwind) versions.
  • 🔍 JavaScript-enabled web scraping.
  • 📂 Maintains memory and context throughout research.
  • 📄 Export reports to PDF, Word, and other formats.

📖 Documentation

See the Documentation for:

  • Installation and setup guides
  • Configuration and customization options
  • How-To examples
  • Full API references

⚙️ Getting Started

Installation

  1. Install Python 3.11 or later. Guide.
  2. Clone the project and navigate to the directory:

    git clone https://github.com/assafelovic/gpt-researcher.git
    cd gpt-researcher
  1. Set up API keys by exporting them or storing them in a .env file.

    export OPENAI_API_KEY={Your OpenAI API Key here}
    export TAVILY_API_KEY={Your Tavily API Key here}

(Optional) For enhanced tracing and observability, you can also set:


    # export LANGCHAIN_TRACING_V2=true
    # export LANGCHAIN_API_KEY={Your LangChain API Key here}

For custom OpenAI-compatible APIs (e.g., local models, other providers), you can also set:


    export OPENAI_BASE_URL={Your custom API base URL here}
  1. Install dependencies and start the server:

    pip install -r requirements.txt
    python -m uvicorn main:app --reload

Visit http://localhost:8000 to start.

For other setups (e.g., Poetry or virtual environments), check the Getting Started page.

Run as PIP package


pip install gpt-researcher

Example Usage:


...
from gpt_researcher import GPTResearcher

query = "why is Nvidia stock going up?"
researcher = GPTResearcher(query=query)
# Conduct research on the given query
research_result = await researcher.conduct_research()
# Write the report
report = await researcher.write_report()
...

For more examples and configurations, please refer to the PIP documentation page.

🔧 MCP Client

GPT Researcher supports MCP integration to connect with specialized data sources like GitHub repositories, databases, and custom APIs. This enables research from data sources alongside web search.


export RETRIEVER=tavily,mcp  # Enable hybrid web + MCP research

from gpt_researcher import GPTResearcher
import asyncio
import os

async def mcp_research_example():
    # Enable MCP with web search
    os.environ["RETRIEVER"] = "tavily,mcp"

    researcher = GPTResearcher(
        query="What are the top open source web research agents?",
        mcp_configs=[
            {
                "name": "github",
                "command": "npx",
                "args": ["-y", "@modelcontextprotocol/server-github"],
                "env": {"GITHUB_TOKEN": os.getenv("GITHUB_TOKEN")}
            }
        ]
    )

    research_result = await researcher.conduct_research()
    report = await researcher.write_report()
    return report

For comprehensive MCP documentation and advanced examples, visit the MCP Integration Guide.

🍌 Inline Image Generation

GPT Researcher can automatically generate and embed AI-created illustrations in your research reports using Google's Gemini models (Nano Banana).


# Enable in your .env file
IMAGE_GENERATION_ENABLED=true
GOOGLE_API_KEY=your_google_api_key
IMAGE_GENERATION_MODEL=models/gemini-2.5-flash-image

When enabled, the system will:

  1. Analyze your research context to identify visualization opportunities
  2. Pre-generate 2-3 relevant images during the research phase
  3. Embed them inline as the report is written

Images are generated with dark-mode styling that matches the GPT Researcher UI, featuring professional infographic aesthetics with teal accents.

Learn more about Image Generation in our documentation.

✨ Deep Research

GPT Researcher now includes Deep Research - an advanced recursive research workflow that explores topics with agentic depth and breadth. This feature employs a tree-like exploration pattern, diving deeper into subtopics while maintaining a comprehensive view of the research subject.

  • 🌳 Tree-like exploration with configurable depth and breadth
  • ⚡️ Concurrent processing for faster results
  • 🤝 Smart context management across research branches
  • ⏱️ Takes ~5 minutes per deep research
  • 💰 Costs ~$0.4 per research (using o3-mini on "high" reasoning effort)

Learn more about Deep Research in our documentation.

Run with Docker

Step 1 - Install Docker

Step 2 - Clone the '.env.example' file, add your API Keys to the cloned file and save the file as '.env'

Step 3 - Within the docker-compose file comment out services that you don't want to run with Docker.


docker-compose up --build

If that doesn't work, try running it without the dash:


docker compose up --build

Step 4 - By default, if you haven't uncommented anything in your docker-compose file, this flow will start 2 processes:

  • the Python server running on localhost:8000<br>
  • the React app running on localhost:3000<br>

Visit localhost:3000 on any browser and enjoy researching!

📄 Research on Local Documents

You can instruct the GPT Researcher to run research tasks based on your local documents. Currently supported file formats are: PDF, plain text, CSV, Excel, Markdown, PowerPoint, and Word documents.

Step 1: Add the env variable DOC_PATH pointing to the folder where your documents are located.


export DOC_PATH="./my-docs"

Step 2:

  • If you're running the frontend app on localhost:8000, simply select "My Documents" from the "Report Source" Dropdown Options.
  • If you're running GPT Researcher with the PIP package, pass the report_source argument as "local" when you instantiate the GPTResearcher class code sample here.

🤖 MCP Server

We've moved our MCP server to a dedicated repository: gptr-mcp.

The GPT Researcher MCP Server enables AI applications like Claude to conduct deep research. While LLM apps can access web search tools with MCP, GPT Researcher MCP delivers deeper, more reliable research results.

Features:

  • Deep research capabilities for AI assistants
  • Higher quality information with optimized context usage
  • Comprehensive results with better reasoning for LLMs
  • Claude Desktop integration

For detailed installation and usage instructions, please visit the official repository.

👪 Multi-Agent Assistant

As AI evolves from prompt engineering and RAG to multi-agent systems, we're excited to introduce multi-agent assistants built with LangGraph and AG2.

By using multi-agent frameworks, the research process can be significantly improved in depth and quality by leveraging multiple agents with specialized skills. Inspired by the recent STORM paper, this project showcases how a team of AI agents can work together to conduct research on a given topic, from planning to publication.

An average run generates a 5-6 page research report in multiple formats such as PDF, Docx and Markdown.

Check it out here or head over to our documentation for LangGraph and AG2 for more information.

🔍 Observability

GPT Researcher supports LangSmith for enhanced tracing and observability, making it easier to debug and optimize complex multi-agent workflows.

To enable tracing:

  1. Set the following environment variables:

   export LANGCHAIN_TRACING_V2=true
   export LANGCHAIN_API_KEY=your_api_key
   export LANGCHAIN_PROJECT="gpt-researcher"
  1. Run your research tasks as usual. All LangGraph-based agent interactions will be automatically traced and visualized in your LangSmith dashboard.

🖥️ Frontend Applications

GPT-Researcher now features an enhanced frontend to improve the user experience and streamline the research process. The frontend offers:

  • An intuitive interface for inputting research queries
  • Real-time progress tra

Truncated. Read the full README on GitHub ↗

Related tools