[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72653":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},72653,"deep-research","u14app\u002Fdeep-research","u14app","Use any LLMs (Large Language Models) for Deep Research. Support SSE API and MCP server.","https:\u002F\u002Fresearch.u14.app",null,"JavaScript",4605,1053,28,31,0,6,12,26,18,31.07,"MIT License",false,"main",[26,5,27,28,29,30,31,32,33,34],"anthropic","deep-research-api","deepresearch","deepseek","gemini","grok","mcp-server","ollama","openai","2026-06-12 02:03:06","\u003Cdiv align=\"center\">\n\u003Ch1>Deep Research\u003C\u002Fh1>\n\n![GitHub deployments](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdeployments\u002Fu14app\u002Fgemini-next-chat\u002FProduction)\n![GitHub Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fu14app\u002Fdeep-research)\n![Docker Image Size](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fimage-size\u002Fxiangfa\u002Fdeep-research\u002Flatest)\n![Docker Pulls](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Fxiangfa\u002Fdeep-research)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-default.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n\n[![Gemini](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGemini-8E75B2?style=flat&logo=googlegemini&logoColor=white)](https:\u002F\u002Fai.google.dev\u002F)\n[![Next](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-111111?style=flat&logo=nextdotjs&logoColor=white)](https:\u002F\u002Fnextjs.org\u002F)\n[![Tailwind CSS](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTailwind%20CSS-06B6D4?style=flat&logo=tailwindcss&logoColor=white)](https:\u002F\u002Ftailwindcss.com\u002F)\n[![shadcn\u002Fui](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fshadcn\u002Fui-111111?style=flat&logo=shadcnui&logoColor=white)](https:\u002F\u002Fui.shadcn.com\u002F)\n\n[![Vercel](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVercel-111111?style=flat&logo=vercel&logoColor=white)](https:\u002F\u002Fvercel.com\u002Fnew\u002Fclone?repository-url=https%3A%2F%2Fgithub.com%2Fu14app%2Fdeep-research&project-name=deep-research&repository-name=deep-research)\n[![Cloudflare](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCloudflare-F69652?style=flat&logo=cloudflare&logoColor=white)](.\u002Fdocs\u002FHow-to-deploy-to-Cloudflare-Pages.md)\n[![PWA](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPWA-blue?style=flat&logo=pwa&logoColor=white)](https:\u002F\u002Fresearch.u14.app\u002F)\n\n[![Ask DeepWiki](https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg)](https:\u002F\u002Fdeepwiki.com\u002Fu14app\u002Fdeep-research)\n\n\u003C\u002Fdiv>\n\n**Lightning-Fast Deep Research Report**\n\nDeep Research uses a variety of powerful AI models to generate in-depth research reports in just a few minutes. It leverages advanced \"Thinking\" and \"Task\" models, combined with an internet connection, to provide fast and insightful analysis on a variety of topics. **Your privacy is paramount - all data is processed and stored locally.**\n\n## ✨ Features\n\n- **Rapid Deep Research:** Generates comprehensive research reports in about 2 minutes, significantly accelerating your research process.\n- **Multi-platform Support:** Supports rapid deployment to Vercel, Cloudflare and other platforms.\n- **Powered by AI:** Utilizes the advanced AI models for accurate and insightful analysis.\n- **Privacy-Focused:** Your data remains private and secure, as all data is stored locally on your browser.\n- **Support for Multi-LLM:** Supports a variety of mainstream large language models, including Gemini, OpenAI, Anthropic, Deepseek, Grok, Mistral, Azure OpenAI, any OpenAI Compatible LLMs, OpenRouter, Ollama, etc.\n- **Support Web Search:** Supports search engines such as Searxng, Tavily, Firecrawl, Exa, Bocha, Brave, etc., allowing LLMs that do not support search to use the web search function more conveniently.\n- **Thinking & Task Models:** Employs sophisticated \"Thinking\" and \"Task\" models to balance depth and speed, ensuring high-quality results quickly. Support switching research models.\n- **Support Further Research:** You can refine or adjust the research content at any stage of the project and support re-research from that stage.\n- **Local Knowledge Base:** Supports uploading and processing text, Office, PDF and other resource files to generate local knowledge base.\n- **Artifact:** Supports editing of research content, with two editing modes: WYSIWYM and Markdown. It is possible to adjust the reading level, article length and full text translation.\n- **Knowledge Graph:** It supports one-click generation of knowledge graph, allowing you to have a systematic understanding of the report content.\n- **Research History:** Support preservation of research history, you can review previous research results at any time and conduct in-depth research again.\n- **Local & Server API Support:** Offers flexibility with both local and server-side API calling options to suit your needs.\n- **Support for SaaS and MCP:** You can use this project as a deep research service (SaaS) through the SSE API, or use it in other AI services through MCP service.\n- **Support PWA:** With Progressive Web App (PWA) technology, you can use the project like a software.\n- **Support Multi-Key payload:** Support Multi-Key payload to improve API response efficiency.\n- **Multi-language Support**: English, 简体中文, Español.\n- **Built with Modern Technologies:** Developed using Next.js 15 and Shadcn UI, ensuring a modern, performant, and visually appealing user experience.\n- **MIT Licensed:** Open-source and freely available for personal and commercial use under the MIT License.\n\n## 🎯 Roadmap\n\n- [x] Support preservation of research history\n- [x] Support editing final report and search results\n- [x] Support for other LLM models\n- [x] Support file upload and local knowledge base\n- [x] Support SSE API and MCP server\n\n## 🚀 Getting Started\n\n### Use Free Gemini (recommend)\n\n1. Get [Gemini API Key](https:\u002F\u002Faistudio.google.com\u002Fapp\u002Fapikey)\n2. One-click deployment of the project, you can choose to deploy to Vercel or Cloudflare\n\n   [![Deploy with Vercel](https:\u002F\u002Fvercel.com\u002Fbutton)](https:\u002F\u002Fvercel.com\u002Fnew\u002Fclone?repository-url=https%3A%2F%2Fgithub.com%2Fu14app%2Fdeep-research&project-name=deep-research&repository-name=deep-research)\n\n   Currently the project supports deployment to Cloudflare, but you need to follow [How to deploy to Cloudflare Pages](.\u002Fdocs\u002FHow-to-deploy-to-Cloudflare-Pages.md) to do it.\n\n3. Start using\n\n### Use Other LLM\n\n1. Deploy the project to Vercel or Cloudflare\n2. Set the LLM API key\n3. Set the LLM API base URL (optional)\n4. Start using\n\n## ⌨️ Development\n\nFollow these steps to get Deep Research up and running on your local browser.\n\n### Prerequisites\n\n- [Node.js](https:\u002F\u002Fnodejs.org\u002F) (version 18.18.0 or later recommended)\n- [pnpm](https:\u002F\u002Fpnpm.io\u002F) or [npm](https:\u002F\u002Fwww.npmjs.com\u002F) or [yarn](https:\u002F\u002Fyarnpkg.com\u002F)\n\n### Installation\n\n1. **Clone the repository:**\n\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fu14app\u002Fdeep-research.git\n   cd deep-research\n   ```\n\n2. **Install dependencies:**\n\n   ```bash\n   pnpm install  # or npm install or yarn install\n   ```\n\n3. **Set up Environment Variables:**\n\n   You need to modify the file `env.tpl` to `.env`, or create a `.env` file and write the variables to this file.\n\n   ```bash\n   # For Development\n   cp env.tpl .env.local\n   # For Production\n   cp env.tpl .env\n   ```\n\n4. **Run the development server:**\n\n   ```bash\n   pnpm dev  # or npm run dev or yarn dev\n   ```\n\n   Open your browser and visit [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000) to access Deep Research.\n\n### Custom Model List\n\nThe project allow custom model list, but **only works in proxy mode**. Please add an environment variable named `NEXT_PUBLIC_MODEL_LIST` in the `.env` file or environment variables page.\n\nCustom model lists use `,` to separate multiple models. If you want to disable a model, use the `-` symbol followed by the model name, i.e. `-existing-model-name`. To only allow the specified model to be available, use `-all,+new-model-name`.\n\n## 🚢 Deployment\n\n### Vercel\n\n[![Deploy with Vercel](https:\u002F\u002Fvercel.com\u002Fbutton)](https:\u002F\u002Fvercel.com\u002Fnew\u002Fclone?repository-url=https%3A%2F%2Fgithub.com%2Fu14app%2Fdeep-research&project-name=deep-research&repository-name=deep-research)\n\n### Cloudflare\n\nCurrently the project supports deployment to Cloudflare, but you need to follow [How to deploy to Cloudflare Pages](.\u002Fdocs\u002FHow-to-deploy-to-Cloudflare-Pages.md) to do it.\n\n### Docker\n\n> The Docker version needs to be 20 or above, otherwise it will prompt that the image cannot be found.\n\n> ⚠️ Note: Most of the time, the docker version will lag behind the latest version by 1 to 2 days, so the \"update exists\" prompt will continue to appear after deployment, which is normal.\n\n```bash\ndocker pull xiangfa\u002Fdeep-research:latest\ndocker run -d --name deep-research -p 3333:3000 xiangfa\u002Fdeep-research\n```\n\nYou can also specify additional environment variables:\n\n```bash\ndocker run -d --name deep-research \\\n   -p 3333:3000 \\\n   -e ACCESS_PASSWORD=your-password \\\n   -e GOOGLE_GENERATIVE_AI_API_KEY=AIzaSy... \\\n   xiangfa\u002Fdeep-research\n```\n\nor build your own docker image:\n\n```bash\ndocker build -t deep-research .\ndocker run -d --name deep-research -p 3333:3000 deep-research\n```\n\nIf you need to specify other environment variables, please add `-e key=value` to the above command to specify it.\n\nDeploy using `docker-compose.yml`:\n\n```bash\nversion: '3.9'\nservices:\n   deep-research:\n      image: xiangfa\u002Fdeep-research\n      container_name: deep-research\n      environment:\n         - ACCESS_PASSWORD=your-password\n         - GOOGLE_GENERATIVE_AI_API_KEY=AIzaSy...\n      ports:\n         - 3333:3000\n```\n\nor build your own docker compose:\n\n```bash\ndocker compose -f docker-compose.yml build\n```\n\n### Static Deployment\n\nYou can also build a static page version directly, and then upload all files in the `out` directory to any website service that supports static pages, such as Github Page, Cloudflare, Vercel, etc..\n\n```bash\npnpm build:export\n```\n\n## ⚙️ Configuration\n\nAs mentioned in the \"Getting Started\" section, Deep Research utilizes the following environment variables for server-side API configurations:\n\nPlease refer to the file [env.tpl](.\u002Fenv.tpl) for all available environment variables.\n\n**Important Notes on Environment Variables:**\n\n- **Privacy Reminder:** These environment variables are primarily used for **server-side API calls**. When using the **local API mode**, no API keys or server-side configurations are needed, further enhancing your privacy.\n\n- **Multi-key Support:** Supports multiple keys, each key is separated by `,`, i.e. `key1,key2,key3`.\n\n- **Security Setting:** By setting `ACCESS_PASSWORD`, you can better protect the security of the server API.\n\n- **Make variables effective:** After adding or modifying this environment variable, please redeploy the project for the changes to take effect.\n\n## 📄 API documentation\n\nCurrently the project supports two forms of API: Server-Sent Events (SSE) and Model Context Protocol (MCP).\n\n### Server-Sent Events API\n\nThe Deep Research API provides a real-time interface for initiating and monitoring complex research tasks.\n\nRecommended to use the API via `@microsoft\u002Ffetch-event-source`, to get the final report, you need to listen to the `message` event, the data will be returned in the form of a text stream.\n\n#### POST method\n\nEndpoint: `\u002Fapi\u002Fsse`\n\nMethod: `POST`\n\nBody:\n\n```typescript\ninterface SSEConfig {\n  \u002F\u002F Research topic\n  query: string;\n  \u002F\u002F AI provider, Possible values ​​include: google, openai, anthropic, deepseek, xai, mistral, azure, openrouter, openaicompatible, pollinations, ollama\n  provider: string;\n  \u002F\u002F Thinking model id\n  thinkingModel: string;\n  \u002F\u002F Task model id\n  taskModel: string;\n  \u002F\u002F Search provider, Possible values ​​include: model, tavily, firecrawl, exa, bocha, searxng\n  searchProvider: string;\n  \u002F\u002F Response Language, also affects the search language. (optional)\n  language?: string;\n  \u002F\u002F Maximum number of search results. Default, `5` (optional)\n  maxResult?: number;\n  \u002F\u002F Whether to include content-related images in the final report. Default, `true`. (optional)\n  enableCitationImage?: boolean;\n  \u002F\u002F Whether to include citation links in search results and final reports. Default, `true`. (optional)\n  enableReferences?: boolean;\n}\n```\n\nHeaders:\n\n```typescript\ninterface Headers {\n  \"Content-Type\": \"application\u002Fjson\";\n  \u002F\u002F If you set an access password\n  \u002F\u002F Authorization: \"Bearer YOUR_ACCESS_PASSWORD\";\n}\n```\n\nSee the detailed [API documentation](.\u002Fdocs\u002Fdeep-research-api-doc.md).\n\n#### GET method\n\nThis is an interesting implementation. You can watch the whole process of deep research directly through the URL just like watching a video.\n\nYou can access the deep research report via the following link:\n\n```text\nhttp:\u002F\u002Flocalhost:3000\u002Fapi\u002Fsse\u002Flive?query=AI+trends+for+this+year&provider=pollinations&thinkingModel=openai&taskModel=openai-fast&searchProvider=searxng\n```\n\nQuery Params:\n\n```typescript\n\u002F\u002F The parameters are the same as POST parameters\ninterface QueryParams extends SSEConfig {\n  \u002F\u002F If you set the `ACCESS_PASSWORD` environment variable, this parameter is required\n  password?: string;\n}\n```\n\n### Model Context Protocol (MCP) Server\n\nCurrently supports `StreamableHTTP` and `SSE` Server Transport.\n\nStreamableHTTP server endpoint: `\u002Fapi\u002Fmcp`, transport type: `streamable-http`\n\nSSE server endpoint: `\u002Fapi\u002Fmcp\u002Fsse`, transport type: `sse`\n\n```json\n{\n  \"mcpServers\": {\n    \"deep-research\": {\n      \"url\": \"http:\u002F\u002F127.0.0.1:3000\u002Fapi\u002Fmcp\",\n      \"transportType\": \"streamable-http\",\n      \"timeout\": 600\n    }\n  }\n}\n```\n\n**Note:** Since deep research take a long time to execute, you need to set a longer timeout to avoid interrupting the study.\n\nIf your server sets `ACCESS_PASSWORD`, the MCP service will be protected and you need to add additional headers parameters:\n\n```json\n{\n  \"mcpServers\": {\n    \"deep-research\": {\n      \"url\": \"http:\u002F\u002F127.0.0.1:3000\u002Fapi\u002Fmcp\",\n      \"transportType\": \"streamable-http\",\n      \"timeout\": 600,\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_PASSWORD\"\n      }\n    }\n  }\n}\n```\n\n**Enabling MCP service requires setting global environment variables:**\n\n```bash\n# MCP Server AI provider\n# Possible values ​​include: google, openai, anthropic, deepseek, xai, mistral, azure, openrouter, openaicompatible, pollinations, ollama\nMCP_AI_PROVIDER=google\n# MCP Server search provider. Default, `model`\n# Possible values ​​include: model, tavily, firecrawl, exa, bocha, searxng\nMCP_SEARCH_PROVIDER=tavily\n# MCP Server thinking model id, the core model used in deep research.\nMCP_THINKING_MODEL=gemini-2.0-flash-thinking-exp\n# MCP Server task model id, used for secondary tasks, high output models are recommended.\nMCP_TASK_MODEL=gemini-2.0-flash-exp\n```\n\n**Note:** To ensure that the MCP service can be used normally, you need to set the environment variables of the corresponding model and search engine. For specific environment variable parameters, please refer to [env.tpl](.\u002Fenv.tpl).\n\n## 🪄 How it works\n\n1. **Research topic**\n   - Input research topic\n   - Use local research resources (optional)\n   - Start thinking (or rethinking)\n\n2. **Propose your ideas**\n   - The system asks questions\n     - Answer system questions (optional)\n     - Write a research plan (or rewrite the research plan)\n   - The system outputs the research plan\n     - Start in-depth research (or re-research)\n     - The system generates SERP queries\n\n3. **Information collection**\n   - Initial research\n     - Retrieve local research resources based on SERP queries\n     - Collect information from the Internet based on SERP queries\n   - In-depth research (this process can be repeated)\n     - Propose research suggestions (optional)\n     - Start a new round of information collection (the process is the same as the initial research)\n\n4. **Generate Final Report**\n   - Make a writing request (optional)\n   - Summarize all research materials into a comprehensive Markdown report\n   - Regenerate research report (optional)\n\n```mermaid\nflowchart TB\n    A[Research Topic]:::start\n\n    subgraph Propose[Propose your ideas]\n        B1[System asks questions]:::process\n        B2[System outputs the research plan]:::process\n        B3[System generates SERP queries]:::process\n        B1 --> B2\n        B2 --> B3\n    end\n\n    subgraph Collect[Information collection]\n        C1[Initial research]:::collection\n        C1a[Retrieve local research resources based on SERP queries]:::collection\n        C1b[Collect information from the Internet based on SERP queries]:::collection\n        C2[In-depth research]:::recursive\n        Refine{More in-depth research needed?}:::decision\n\n        C1 --> C1a\n        C1 --> C1b\n        C1a --> C2\n        C1b --> C2\n        C2 --> Refine\n        Refine -->|Yes| C2\n    end\n\n    Report[Generate Final Report]:::output\n\n    A --> Propose\n    B3 --> C1\n\n    %% Connect the exit from the loop\u002Fsubgraph to the final report\n    Refine -->|No| Report\n\n    %% Styling\n    classDef start fill:#7bed9f,stroke:#2ed573,color:black\n    classDef process fill:#70a1ff,stroke:#1e90ff,color:black\n    classDef recursive fill:#ffa502,stroke:#ff7f50,color:black\n    classDef output fill:#ff4757,stroke:#ff6b81,color:black\n    classDef collection fill:#a8e6cf,stroke:#3b7a57,color:black\n    classDef decision fill:#c8d6e5,stroke:#8395a7,color:black\n\n    class A start\n    class B1,B2,B3 process\n    class C1,C1a,C1b collection\n    class C2 recursive\n    class Refine decision\n    class Report output\n```\n\n## 🙋 FAQs\n\n**Why does my Ollama or SearXNG not work properly and displays the error `TypeError: Failed to fetch`?**\n\nIf your request generates `CORS` due to browser security restrictions, you need to configure parameters for Ollama or SearXNG to allow cross-domain requests. You can also consider using the server proxy mode, which is a backend server that makes requests, which can effectively avoid cross-domain issues.\n\n## 🛡️ Privacy\n\nDeep Research is designed with your privacy in mind. **All research data and generated reports are stored locally on your machine.** We do not collect or transmit any of your research data to external servers (unless you are explicitly using server-side API calls, in which case data is sent to API through your configured proxy if any). Your privacy is our priority.\n\n## 🙏 Acknowledgements\n\n- [Next.js](https:\u002F\u002Fnextjs.org\u002F) - The React framework for building performant web applications.\n- [Shadcn UI](https:\u002F\u002Fui.shadcn.com\u002F) - Beautifully designed components that helped streamline the UI development.\n- [AI SDKs](https:\u002F\u002Fsdk.vercel.ai) - Powering the intelligent research capabilities of Deep Research.\n- [Deep Research](https:\u002F\u002Fgithub.com\u002Fdzhng\u002Fdeep-research) - Thanks to the project `dzhng\u002Fdeep-research` for inspiration.\n\n## 🤝 Contributing\n\nWe welcome contributions to Deep Research! If you have ideas for improvements, bug fixes, or new features, please feel free to:\n\n1. Fork the repository.\n2. Create a new branch for your feature or bug fix.\n3. Make your changes and commit them.\n4. Submit a pull request.\n\nFor major changes, please open an issue first to discuss your proposed changes.\n\n## ✉️ Contact\n\nIf you have any questions, suggestions, or feedback, please create a new [issue](https:\u002F\u002Fgithub.com\u002Fu14app\u002Fdeep-research\u002Fissues).\n\n## 📝 License\n\nDeep Research is released under the [MIT License](LICENSE). This license allows for free use, modification, and distribution for both commercial and non-commercial purposes.\n","Deep Research 是一个利用多种大型语言模型（LLM）生成深度研究报告的工具，支持SSE API和MCP服务器。其核心功能包括快速生成全面的研究报告、多平台部署支持以及强大的AI分析能力。此外，它还注重用户隐私，所有数据均在本地处理和存储，并且支持多种主流大语言模型及网络搜索功能。适用于需要快速获取深入分析结果的研究人员、学生或企业等场景。",2,"2026-06-11 03:42:58","high_star"]