Web Search
fastclaw-ai/fastclaw
Search the web and fetch web pages. An agent skill from fastclaw-ai/fastclaw.
Free web search via DuckDuckGo — text, news, images, videos.
$ npx skills add Tommy-yw/RunbookHermes --skill duckduckgo-search -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Tommy-yw/RunbookHermes duckduckgo-search --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .claude/skills && cp -r skills-src/optional-skills/research/duckduckgo-search .claude/skills/duckduckgo-search && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "duckduckgo-search" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/research/duckduckgo-search into .claude/skills/duckduckgo-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "duckduckgo-search", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/research/duckduckgo-searchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Tommy-yw/RunbookHermes --skill duckduckgo-search -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Tommy-yw/RunbookHermes duckduckgo-search --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .agents/skills && cp -r skills-src/optional-skills/research/duckduckgo-search .agents/skills/duckduckgo-search && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "duckduckgo-search" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/research/duckduckgo-search into .agents/skills/duckduckgo-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "duckduckgo-search", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Tommy-yw/RunbookHermes --skill duckduckgo-search -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Tommy-yw/RunbookHermes duckduckgo-search --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/optional-skills/research/duckduckgo-search .cursor/skills/duckduckgo-search && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "duckduckgo-search" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/research/duckduckgo-search into .cursor/skills/duckduckgo-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "duckduckgo-search", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Tommy-yw/RunbookHermes.git --path optional-skills/research/duckduckgo-search--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Tommy-yw/RunbookHermes --skill duckduckgo-search -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Tommy-yw/RunbookHermes duckduckgo-search --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/optional-skills/research/duckduckgo-search .gemini/skills/duckduckgo-search && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "duckduckgo-search" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/research/duckduckgo-search into .gemini/skills/duckduckgo-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "duckduckgo-search", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Tommy-yw/RunbookHermes duckduckgo-searchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Tommy-yw/RunbookHermes --skill duckduckgo-search -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .github/skills && cp -r skills-src/optional-skills/research/duckduckgo-search .github/skills/duckduckgo-search && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "duckduckgo-search" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/research/duckduckgo-search into .github/skills/duckduckgo-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "duckduckgo-search", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Tommy-yw/RunbookHermes --skill duckduckgo-search -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Tommy-yw/RunbookHermes duckduckgo-search --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/optional-skills/research/duckduckgo-search .opencode/skills/duckduckgo-search && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "duckduckgo-search" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/research/duckduckgo-search into .opencode/skills/duckduckgo-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "duckduckgo-search", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
duckduckgo-searchFree web search via DuckDuckGo — text, news, images, videos.
Duckduckgo Search is an agent skill from Tommy-yw/RunbookHermes. Free web search via DuckDuckGo — text, news, images, videos. No API key needed. Prefer the ddgs CLI when installed; use the Python DDGS library only after verifying that ddgs is available in the current runtime.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/duckduckgo.sh`).
It sits in Productivity & Automation, covering Web search. It works with Python. The repository describes itself as: Hermes-native AIOps agent for evidence-driven incident response, approval-gated remediation, and runbook learning. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 7fd2b9a. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
FIRECRAWL_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Duckduckgo Search loads about 2.1k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 780 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from Tommy-yw/RunbookHermes at commit 7fd2b9a, republished under its MIT licence (© Tommy-yw). 780 words, ~2,101 tokens.
.claude/skills/duckduckgo-search/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Free web search using DuckDuckGo. No API key required.
Preferred when web_search is unavailable or unsuitable (for example when FIRECRAWL_API_KEY is not set). Can also be used as a standalone search path when DuckDuckGo results are specifically desired.
Check what is actually available before choosing an approach:
# Check CLI availability
command -v ddgs >/dev/null && echo "DDGS_CLI=installed" || echo "DDGS_CLI=missing"Decision tree:
ddgs CLI is installed, prefer terminal + ddgsddgs CLI is missing, do not assume execute_code can import ddgsddgs first in the relevant environmentImportant runtime note:
execute_code are separate runtimesexecute_code can import ddgsexecute_codeInstall ddgs only when DuckDuckGo search is specifically needed and the runtime does not already provide it.
# Python package + CLI entrypoint
pip install ddgs
# Verify CLI
ddgs --helpIf a workflow depends on Python imports, verify that same runtime can import ddgs before using from ddgs import DDGS.
Use the ddgs command via terminal when it exists. This is the preferred path because it avoids assuming the execute_code sandbox has the ddgs Python package installed.
# Text search
ddgs text -q "python async programming" -m 5
# News search
ddgs news -q "artificial intelligence" -m 5
# Image search
ddgs images -q "landscape photography" -m 10
# Video search
ddgs videos -q "python tutorial" -m 5
# With region filter
ddgs text -q "best restaurants" -m 5 -r us-en
# Recent results only (d=day, w=week, m=month, y=year)
ddgs text -q "latest AI news" -m 5 -t w
# JSON output for parsing
ddgs text -q "fastapi tutorial" -m 5 -o json| Flag | Description | Example |
|---|---|---|
-q | Query — required | -q "search terms" |
-m | Max results | -m 5 |
-r | Region | -r us-en |
-t | Time limit | -t w (week) |
-s | Safe search | -s off |
-o | Output format | -o json |
Use the DDGS class in execute_code or another Python runtime only after verifying that ddgs is installed there. Do not assume execute_code includes third-party packages by default.
Safe wording:
execute_code with ddgs after installing or verifying the package if needed"Avoid saying:
execute_code includes ddgs"execute_code"Important: max_results must always be passed as a keyword argument — positional usage raises an error on all methods.
Best for: general research, companies, documentation.
from ddgs import DDGS
with DDGS() as ddgs:
for r in ddgs.text("python async programming", max_results=5):
print(r["title"])
print(r["href"])
print(r.get("body", "")[:200])
print()Returns: title, href, body
Best for: current events, breaking news, latest updates.
from ddgs import DDGS
with DDGS() as ddgs:
for r in ddgs.news("AI regulation 2026", max_results=5):
print(r["date"], "-", r["title"])
print(r.get("source", ""), "|", r["url"])
print(r.get("body", "")[:200])
print()Returns: date, title, body, url, image, source
Best for: visual references, product images, diagrams.
from ddgs import DDGS
with DDGS() as ddgs:
for r in ddgs.images("semiconductor chip", max_results=5):
print(r["title"])
print(r["image"])
print(r.get("thumbnail", ""))
print(r.get("source", ""))
print()Returns: title, image, thumbnail, url, height, width, source
Best for: tutorials, demos, explainers.
from ddgs import DDGS
with DDGS() as ddgs:
for r in ddgs.videos("FastAPI tutorial", max_results=5):
print(r["title"])
print(r.get("content", ""))
print(r.get("duration", ""))
print(r.get("provider", ""))
print(r.get("published", ""))
print()Returns: title, content, description, duration, provider, published, statistics, uploader
| Method | Use When | Key Fields |
|---|---|---|
text() | General research, companies | title, href, body |
news() | Current events, updates | date, title, source, body, url |
images() | Visuals, diagrams | title, image, thumbnail, url |
videos() | Tutorials, demos | title, content, duration, provider |
DuckDuckGo returns titles, URLs, and snippets — not full page content. To get full page content, search first and then extract the most relevant URL with web_extract, browser tools, or curl.
CLI example:
ddgs text -q "fastapi deployment guide" -m 3 -o jsonPython example, only after verifying ddgs is installed in that runtime:
from ddgs import DDGS
with DDGS() as ddgs:
results = list(ddgs.text("fastapi deployment guide", max_results=3))
for r in results:
print(r["title"], "->", r["href"])Then extract the best URL with web_extract or another content-retrieval tool.
ddgs returns snippets, not full page content. Use web_extract, browser tools, or curl for the full article/page.ddgs versions. Use .get() for optional fields to avoid KeyError.ddgs install in terminal does not automatically mean execute_code can import it.| Problem | Likely Cause | What To Do |
|---|---|---|
ddgs: command not found | CLI not installed in the shell environment | Install ddgs, or use built-in web/browser tools instead |
ModuleNotFoundError: No module named 'ddgs' | Python runtime does not have the package installed | Do not use Python DDGS there until that runtime is prepared |
| Search returns nothing | Temporary rate limiting or poor query | Wait a few seconds, retry, or adjust the query |
CLI works but execute_code import fails | Terminal and execute_code are different runtimes | Keep using CLI, or separately prepare the Python runtime |
max_results is keyword-only: ddgs.text("query", 5) raises an error. Use ddgs.text("query", max_results=5).command -v ddgs before using it.execute_code can import ddgs: from ddgs import DDGS may fail with ModuleNotFoundError unless that runtime was prepared separately.ddgs (previously duckduckgo-search). Install with pip install ddgs.-q and -m (CLI): -q is for the query, -m is for max results count.ddgs returns nothing, it may be rate-limited. Wait a few seconds and retry.Validated examples against ddgs==9.11.2 semantics. Skill guidance now treats CLI availability and Python import availability as separate concerns so the documented workflow matches actual runtime behavior.
© Tommy-yw, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in optional-skills/research/duckduckgo-search of Tommy-yw/RunbookHermes.
Open the folder on GitHubat commit 7fd2b9a
We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 3 other GitHub owners. This page covers the copy in Tommy-yw/RunbookHermes, which our catalogue first saw on October 7, 2026.
Duckduckgo Search next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Duckduckgo Search this skillTommy-yw/RunbookHermes | 546 | 3 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Web Searchfastclaw-ai/fastclaw | 1.4k | — | ~294 | Automated safety check: Pass | Custom licence | |
| Deepsearchhuangruiteng/CS-Notes | 4k | — | ~977 | Automated safety check: Pass | Apache-2.0 | |
| Tavily SearchOpenMinis/MinisSkills | 446 | — | ~869 | Automated safety check: Pass | MIT | |
| Ag2 Use Builtin Toolsag2ai/build-with-ag2 | 252 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Web Accessitwanger/PaiCLI-Python | 102 | — | ~183 | Automated safety check: Pass | MIT |
fastclaw-ai/fastclaw
Search the web and fetch web pages. An agent skill from fastclaw-ai/fastclaw.
huangruiteng/CS-Notes
深度研究代理系统社区版,对复杂主题进行多轮迭代的网络搜索和综合分析。使用场景:当用户需要对特定主题进行深入、全面的研究时,特别是需要基于最新网络信息生成详细分析报告的情况。支持多轮迭代搜索、智能搜索方向调整和综合分析报告生成。本skill是一个工作流描述文档,没有执行脚本,依赖web-search skill进行网页搜索。
OpenMinis/MinisSkills
Use the Tavily Search API to perform web searches. An agent skill from OpenMinis/MinisSkills.
ag2ai/build-with-ag2
Wire AG2 beta's shipped tools into an Agent — both provider-native server-side tools (web search, web fetch, code execution, MCP, image generation, memory) and locally-executed common toolkits…
itwanger/PaiCLI-Python
A skill your agent uses for live web research, webpage fetching, login-state browsing, dynamic pages, social sites, and tasks that need current internet evidence.
brightdata/skills
Web data extraction and discovery using the Bright Data JavaScript/TypeScript SDK (@brightdata/sdk).
Tommy-yw/RunbookHermes
Build, test, inspect, install, and deploy MCP servers with FastMCP in Python.
Tommy-yw/RunbookHermes
Pharmaceutical research assistant for drug discovery workflows.
Tommy-yw/RunbookHermes
Fetch YouTube video transcripts and transform them into structured content (chapters, summaries, threads, blog posts).
Tommy-yw/RunbookHermes
Supply chain investigation, evidence recovery, and forensic analysis for GitHub repositories.
Tommy-yw/RunbookHermes
Production pipeline for interactive and generative visual art using p5.js.
Tommy-yw/RunbookHermes
Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals.
Works with
Categories
Free web search via DuckDuckGo — text, news, images, videos. Duckduckgo Search is an agent skill from Tommy-yw/RunbookHermes. Free web search via DuckDuckGo — text, news, images, videos.
Duckduckgo Search fits situations like: tasks that involve Web search.
Run `npx skills add Tommy-yw/RunbookHermes --skill duckduckgo-search -a claude-code`. Or copy the skill folder (optional-skills/research/duckduckgo-search in Tommy-yw/RunbookHermes) into .claude/skills/duckduckgo-search in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Tommy-yw/RunbookHermes --skill duckduckgo-search -a codex`. Or copy the skill folder (optional-skills/research/duckduckgo-search in Tommy-yw/RunbookHermes) into .agents/skills/duckduckgo-search in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Tommy-yw/RunbookHermes --skill duckduckgo-search -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/duckduckgo-search, .gemini/skills/duckduckgo-search, .github/skills/duckduckgo-search and .opencode/skills/duckduckgo-search in your project.
Going by SKILL.md and its folder, Duckduckgo Search needs a shell for the scripts in its folder, the command-line tools its instructions call (pip) and credentials named FIRECRAWL_API_KEY. Our summary lists: Python 3; A Bash shell; A credential in FIRECRAWL_API_KEY.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Duckduckgo Search is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Duckduckgo Search: Web Search (fastclaw-ai/fastclaw, 1.4k stars), Deepsearch (huangruiteng/CS-Notes, 4k stars), Tavily Search (OpenMinis/MinisSkills, 446 stars) and Ag2 Use Builtin Tools (ag2ai/build-with-ag2, 252 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Tommy-yw (a GitHub user) maintains it in Tommy-yw/RunbookHermes, which has 546 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on May 18, 2026.
Source: Tommy-yw/RunbookHermes on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.