
deep-research
This skill should be used when conducting comprehensive research on any topic using the OpenAI Deep Research API. It automates prompt enhancement through interactive clarifying questions, saves research parameters, and executes deep research with web search capabilities. Use when the user asks for in-depth analysis, investigation, research summaries, or topic exploration.
- Installs
- 324
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/glebis/claude-skills --skill deep-research- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads deep-research automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Deep Research Skill
Purpose
This skill enables comprehensive, internet-enabled research on any topic using the OpenAI Responses API with web search (default model gpt-5.6-sol, override with --model or DEEP_RESEARCH_MODEL). o3-deep-research and o4-mini-deep-research were scheduled for shutdown on 2026-07-23 and are no longer the default. It intelligently enhances user research prompts through interactive clarifying questions, ensures research parameters are saved for reproducibility, and executes deep research with full web search capabilities.
When to Use This Skill
Trigger this skill when:
- User requests research on a specific topic
- User asks for analysis, investigation, or comprehensive information gathering
- User wants exploration of a subject with web search and reasoning
- User provides a brief research query that could be refined
- User wants to understand current state, trends, or comparisons in a field
Example user requests:
- "Research the most effective open-source RAG solutions with high benchmark performance"
- "What are the latest AI developments in 2025?"
- "I need a comprehensive analysis of distributed database systems"
- "Find best practices for implementing vector search"
- "Investigate how AI is impacting the software engineering industry"
Workflow Overview
User Input
↓
Assessment: Prompt too brief?
↓
YES → Ask Enhancement Questions → Collect Answers
↓ ↓
└───────→ Construct Enhanced Prompt ←──┘
↓
Save to Timestamped File
↓
Execute deep_research.py
↓
Output Report + Sources
↓
Present to User
How Claude Should Use This Skill
Important for Token Efficiency: Deep research takes 10-20 minutes or more. The runner uses background mode and polls quietly every 15 s; the command blocks until the run ends, so no status checks are needed from Claude. Claude should:
- Start the research
- Wait for completion (subprocess blocks automatically)
- Present final results once complete
No need for periodic polling or status updates during execution.
Step 1: Accept Research Request
Receive the user's research prompt. This can range from brief ("Latest AI trends") to highly detailed ("Impact of language models on developer productivity with focus on 2024-2025").
Step 2: Execute the Orchestration Script
Run the skill's main orchestration script with the user's research prompt:
python3 scripts/run_deep_research.py "Your research prompt here"
The script is located at scripts/run_deep_research.py within the skill's installation.
Step 3: Script Execution Flow
The script automatically:
-
Assesses prompt completeness: Checks if prompt is too brief or generic (< 15 words or starts with "what is", "how to", etc.)
-
Asks clarifying questions (if needed):
- Presents 2-3 focused questions relevant to the research type
- Detects if research is technical or general based on keywords
- Allows users to select from predefined options (1-4) or provide custom text
- Questions cover: Scope/Timeframe, Depth level, Focus areas
-
Enhances the prompt: Combines original prompt with user's answers into structured research parameters
-
Saves prompt file: Writes enhanced prompt to
research_prompt_YYYYMMDD_HHMMSS.txtfor reproducibility -
Executes deep research: Runs the core
deep_research.pyscript with:- Model:
gpt-5.6-solwith reasoninghigh(configurable via--model,--reasoning, or envDEEP_RESEARCH_MODEL) - Maximum wait: 3600 seconds / 60 minutes (configurable via
--timeout) - Tools: Web search enabled by default
- Model:
Step 4: Present Results to User
The script automatically:
- Saves raw JSON first:
research_response_YYYYMMDD_HHMMSS.jsonholds the exact API response bytes (citation spans, web-search step log). It is written as soon as the run is created, and again at every poll, so nothing paid for is lost. - Saves the request:
research_request_…json(model, tools, prompt; never the key) - Saves markdown file:
research_report_YYYYMMDD_HHMMSS.md, with footer lines for model, response ID, and raw-response file - Prints to terminal: Complete research report with markdown formatting
- Lists consulted sources:
## Sources consulted (web search)lists every URL the web-search steps searched or opened. These are consulted, not cited; citations are the inline links. - Confirms completion: Path where research files were saved
Token Efficiency Note: The script blocks while it polls in the background, so Claude waits on one command.
Interrupted runs: the response ID is printed and saved before waiting. Collect a run that is still going, or one whose wait timed out, with python3 assets/deep_research.py --resume <response_id> --output-dir <dir>. This sends no new (paid) request.
Importing into a vault: import the raw JSON, not the Markdown, with the research-runs skill: python3 ~/.claude/skills/research-runs/scripts/research_run.py import research_response_….json --vault <vault> --adapter openai-json --provider openai --surface api --prompt research_prompt_….txt. The JSON keeps citation spans and consulted-but-uncited pages.
Bundled Resources
Scripts
scripts/run_deep_research.py (Main Entry Point)
The orchestration script that handles:
- Prompt quality assessment
- Interactive enhancement questions (with smart detection for technical vs. general research)
- Prompt saving and timestamping
- Execution of core deep research
Key Features:
- Smart enhancement: Only asks questions if prompt is brief/generic
- Template-based questions: Different question sets for technical vs. general research
- Flexible input: Numbered options + custom text input
- Error handling: Helpful messages if deep_research.py is not found
Available options:
python3 run_deep_research.py <prompt> [OPTIONS]
--no-enhance Skip enhancement questions
--model <model> Model to use (default: runner default, gpt-5.6-sol)
--timeout <seconds> Maximum wait in seconds (default: 3600)
--output-dir <path> Where to save the prompt, request, raw response, and report
assets/deep_research.py
Core script that interfaces with OpenAI's Deep Research API. Handles:
- API authentication via OPENAI_API_KEY
- Request creation and execution
- Automatic markdown saving: Saves timestamped report files by default
- Output formatting (report + sources with metadata)
- Error handling and retries
New command-line options:
--output-file <path> Custom output file path
--no-save Disable automatic markdown saving
References
references/workflow.md
Detailed workflow documentation covering:
- Complete skill workflow with examples
- Prompt enhancement strategies
- Research parameters explanation
- Integration guidance for Claude
- Command-line interface reference
- Error handling and troubleshooting
- Tips for effective research
Key Behaviors
Smart Prompt Enhancement
The skill intelligently determines whether enhancement is needed:
- Triggers enhancement for prompts with < 15 words or generic starts
- Skips enhancement for detailed, specific prompts
- Allows users to disable with
--no-enhanceflag - Template-aware: Uses different questions for technical vs. general research
Research Parameters
Enhanced prompts include:
- Original user query with full context
- Scope and timeframe preferences
- Desired depth level (summary, technical, implementation, comparative)
- Specific focus areas (performance, cost, security, etc.)
These parameters help the deep research model deliver more targeted, relevant results.
Reproducibility
Every research execution:
- Saves the exact prompt used to a timestamped file
- Enables tracing research decisions
- Allows follow-up research using same/modified prompts
- Maintains audit trail of research parameters
Examples
Brief Prompt with Enhancement
User: "Research the most effective opensource RAG solutions"
Script behavior:
- Detects brief prompt (12 words) + technical keywords ("opensource", "RAG")
- Asks technical research questions:
- Technology scope: Open-source only? (User: Yes)
- Key metrics: Performance/benchmarks? (User: Speed and Accuracy)
- Use cases: Production deployment? (User: Multiple aspects)
- Enhances to detailed prompt with parameters
- Saves and executes deep research
- Returns comprehensive report with comparative benchmarks and source URLs
Detailed Prompt Without Enhancement
User: "Analyze the impact of large language models on software developer productivity in 2024-2025, focusing on code generation tools, pair programming, and productivity metrics."
Script behavior:
- Detects detailed prompt (24 words) with specific scope/focus
- Skips enhancement questions
- Saves and executes deep research immediately
- Returns focused analysis aligned with user specifications
Requirements
- Python 3.7+
- OpenAI API key: read from SOPS (
~/.claude/skills/secrets.enc.yaml) first, thenOPENAI_API_KEYor a.envfile - Internet connection (for web search)
- Up to 60 minutes for research completion (configurable
--timeout; use--resumebeyond that)
Token-Efficient Workflow
Long-Running Task Optimization
Deep research queries typically take 10-20 minutes to complete. This skill is optimized to minimize token usage during long waits:
How it works:
- Synchronous execution: The script runs as a blocking subprocess (no background polling)
- No intermediate checks: Claude waits silently for completion without status updates
- Single output: Results are presented once at the end
- Automatic saving: Markdown files are saved automatically, no manual intervention needed
Token savings:
- Traditional approach: Checking status every 30 seconds = ~40 checks × 500 tokens = ~20,000 tokens wasted
- This approach: Single wait = ~1,000 tokens total
Automatic File Management
The skill automatically generates and saves files:
Generated files:
research_prompt_YYYYMMDD_HHMMSS.txt- Enhanced research prompt with parametersresearch_request_YYYYMMDD_HHMMSS.json- What was sent: model, tools, reasoning, prompt (no key)research_response_YYYYMMDD_HHMMSS.json- Exact raw API response: report text,url_citationannotations with character spans,web_search_callsteps with consulted sources. Canonical record; import this one.research_report_YYYYMMDD_HHMMSS.md- Readable report with:- Inline citation links
## Sources consulted (web search): every URL searched or opened, cited or not- Metadata footer (date, model, response ID, raw-response file name)
Customization options:
# Custom output location
python3 deep_research.py --prompt-file prompt.txt --output-file my_research.md
# Disable automatic saving (terminal output only)
python3 deep_research.py --prompt-file prompt.txt --no-save
Troubleshooting
Missing OPENAI_API_KEY
Error: "Missing OPENAI_API_KEY"
Solution:
- Set environment variable:
export OPENAI_API_KEY="your-key" - Or create
.envfile in working directory withOPENAI_API_KEY=your-key
deep_research.py Not Found
Error: "Could not find deep_research.py"
Solution:
- Ensure skill is properly installed with assets
- Script searches in: skill assets folder → current directory → parent directory
Research Timeout
Error: "Still in_progress after …s. Resume later with: --resume <id>"
Solution:
- Collect it later:
--resume <id>(no new charge), or increase--timeout 5400(90 minutes) - Simplify prompt to reduce research scope
- Run during off-peak hours for potentially faster API responses
FAQ
What does the deep-research skill do?
This skill should be used when conducting comprehensive research on any topic using the OpenAI Deep Research API. It automates prompt enhancement through interactive clarifying questions, saves research parameters, and executes deep research with web search capabilities. Use when the user asks for in-depth analysis, investigation, research summaries, or topic exploration.
How do I install deep-research?
Run npx skills add https://github.com/glebis/claude-skills --skill deep-research in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/deep-research/ (personal) or .claude/skills/deep-research/ (project).
Which AI agents can use deep-research?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is deep-research safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains deep-research?
It is published by glebis in glebis/claude-skills. It has 324 recorded installs.
More from glebis/claude-skills
google-image-search
glebis/claude-skills
Search and download images via Google Custom Search API with LLM-powered selection. This skill should be used when finding images for articles, presentations, research documents, or enriching Obsidian notes with relevant visuals. Supports simple queries, batch processing from JSON config, automatic config generation from terms, and full note enrichment with automatic image insertion below headings.
pdf-generation
glebis/claude-skills
Professional PDF generation from markdown using Pandoc with Eisvogel template and EB Garamond fonts. Use when converting markdown to PDF, creating white papers, research documents, marketing materials, or technical documentation. Supports both English and Russian documents with professional typography and color-coded themes. Mobile-optimized layout (6x9) by default for Telegram bot context, desktop/print layout (A4) for other contexts.
health-data
glebis/claude-skills
Open the skill to read its SKILL.md instructions.
firecrawl-research
glebis/claude-skills
Open the skill to read its SKILL.md instructions.
presentation-generator
glebis/claude-skills
Generate interactive HTML presentations with neobrutalism styling, ASCII art decorations, and Agency brand colors. Outputs HTML (interactive with navigation), PNG (individual slides via Playwright), and PDF. References brand-agency skill for colors and typography. Use when creating presentations, slide decks, pitch materials, or visual summaries.
decision-toolkit
glebis/claude-skills
Generate structured decision-making tools — step-by-step guides, bias checkers, scenario explorers, and interactive dashboards. Use when facing significant choices requiring systematic analysis. Supports multiple cognitive styles and output formats.
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。