From web-kit
Use this skill whenever the user asks you to search the web, find information online, look something up, or answer a question that needs up-to-date or external knowledge. This covers looking up facts or background info, searching for academic papers or citations, finding repos or packages, checking for recent news or blog posts, and gathering community discussions or comparisons. Trigger keywords include "search," "look up," "find," "查," "搜," "找," "有没有," and similar. Supports 20+ engines (Google, Google Scholar, Semantic Scholar, arXiv, GitHub, Reddit, etc.) with automatic category selection. Do not use for reading local files, grepping the codebase, or answering questions purely from code context.
How this skill is triggered — by the user, by Claude, or both
Slash command
/web-kit:ask-search ask-search "query" [-n count] [-e engine(s)] [-l lang] [-c category] [-t timeout]ask-search "query" [-n count] [-e engine(s)] [-l lang] [-c category] [-t timeout]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
A web search skill that queries a SearxNG backend. It supports multiple
A web search skill that queries a SearxNG backend. It supports multiple engines, but defaults to Google. The skill is designed to be part of a larger research workflow: find → read → synthesize.
Use this skill when the task requires information from the web — for example:
Do not use this skill for local file search (use grep), repo-level search
(use gh CLI), or in-repo doc search (use project-specific tools).
The primary input is a natural language query. Some optional flags are available to adjust the search scope or output:
| Flag | Meaning | Example |
|---|---|---|
| query | What to search for (required) | "knowledge graph multi-hop reasoning" |
-n | Limit number of results | -n 5 |
-e | Specific engine(s), comma-separated | -e google_scholar,semantic_scholar |
-l | Language preference | -l zh-CN |
-c | Category | -c news |
-t | Request timeout in seconds | -t 60 |
-u | Output URLs only | -u |
-j | Output JSON (structured, for scripting) | -j |
The script is bundled with this skill. Always invoke it via the script path
so it works regardless of whether ask-search is on the user's PATH:
uv run --script ${SKILL_DIR}/scripts/ask-search "query"
uv run --script ${SKILL_DIR}/scripts/ask-search "query" -n 5
uv run --script ${SKILL_DIR}/scripts/ask-search "query" -e google_scholar,semantic_scholar
uv run --script ${SKILL_DIR}/scripts/ask-search "query" -c news -l zh-CN
On Unix with execute permission set, the shebang allows direct invocation:
${SKILL_DIR}/scripts/ask-search "query" -n 5
The only external dependency is uv (auto-installs inline Python deps on
first run) and a running SearxNG backend.
SEARXNG_URL — SearxNG endpoint (default: http://localhost:8082)
WEB_KIT_API_KEY — required; sent as the X-API-Key header to authenticate to the gateway.
If you do not specify any flags:
error_type field (exit code 1)The supported engines are grouped by what they index. You do not need to use all of them; most tasks only need one group at most.
google, bing, duckduckgo
google_scholar, semantic_scholar, openalex, dblp, pubmed, arxiv
github, github_code, gitlab, huggingface, npm, pypi, crates, lib_rs, pkg_go_dev, sourcehut, microsoft_learn, nvd
hackernews, reddit, wikidata
annas_archive, zlibrary
The full reference with usage examples is in references/engines.md.
A useful way to think about search in a research task is:
Start with the default search. The default already indexes a wide range of sources (paper aggregators, repos, blogs, docs, forums). This is often enough to understand the landscape of a topic.
Observe what kind of results appear. If the top results already point to the right kind of sources (papers, repos, news, forums, etc.), you may already have what you need.
If the results are not from the expected domain, consider using a domain-specific engine set. For example:
-e google_scholar,semantic_scholar,openalex-e github,npm,pypi-e reddit,hackernews-c newsIf the results are from the right domain but not specific enough, you
can narrow down further — for example by using site:arxiv.org in the
query, or by pointing at a specific source with -e.
When reading results, some useful observations:
site: filter can be useful when you already know the kind of source
you want, without switching the underlying engine set.-e changes which search path is used; it does not just filter the
default results.-j is available but hidden from the
default help because it produces longer output.All errors are JSON to stdout (exit code 1):
{"error_type": "timeout", "query": "...", "hint": "..."}
Common error types:
| error_type | What it means | What is available to you |
|---|---|---|
timeout | The request took too long | You can try a longer timeout with -t 60 |
no_results | No results came back from the requested engines | You can refine the query or try different engines |
http_error | The backend returned an HTTP error | Usually transient |
backend_unreachable | The SearxNG backend could not be reached | Check SEARXNG_URL |
If the command succeeds but some engines failed, the output includes information about which engines did not respond. This may be useful for deciding whether to retry without those engines.
Depending on how you invoke the skill, you may get:
[1] Title
https://...
Snippet text (max 200 chars)
[google]
crwlr):
https://...
https://...
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub huangyrcn/toolshed --plugin web-kit