
Skywork Search
- 318 installs
- 196 repo stars
- Updated April 2, 2026
- skyworkai/skywork-skills
skywork search is a Skywork AI skill that runs web and document search to gather competitive intelligence, source citations, and trend signals for developers shaping product ideas and agent knowledge pipelines.
About
skywork search is a research skill from skyworkai/skywork-skills that invokes Skywork-powered search across web pages and documents. It helps developers collect competitive intelligence, verifiable source citations, and emerging trend signals when defining product direction or feeding agent retrieval pipelines. Use it during early discovery sprints, market landscape reviews, or knowledge-base seeding for AI agents that need fresh external context. The skill complements in-repo code analysis by pulling outward-facing evidence developers can cite in PRDs, agent system prompts, or content briefs. It assumes Skywork search access within the Skywork skills ecosystem rather than generic browser scraping alone.
- Multi-source retrieval
- Citation-friendly results
- Competitive scanning
- Agent knowledge feeds
- Trend signal synthesis
Skywork Search by the numbers
- 318 all-time installs (skills.sh)
- +9 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #2,237 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/skyworkai/skywork-skills --skill skywork-searchAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 318 |
|---|---|
| repo stars | ★ 196 |
| Last updated | April 2, 2026 |
| Repository | skyworkai/skywork-skills ↗ |
How do you gather competitive intel with AI search?
Run Skywork-powered web and document search to gather competitive intel, source citations, and trend signals while shaping product ideas and agent knowledge pipelines.
Who is it for?
Developers researching market landscapes or seeding agent knowledge pipelines who need cited web and document search via Skywork.
Skip if: Developers who only need in-repo code search or production deployment monitoring without external competitive research.
When should I use this skill?
A user asks to research competitors, gather cited sources, find trend signals, or run Skywork web and document search for a product idea.
What you get
Curated search results with source citations, competitive intelligence summaries, and trend signals for product or agent pipelines.
- Cited research summaries
- Competitive intelligence notes
Files
Web Search Skill
Search the web for real-time information via the Skywork search API. This skill lets you run up to 3 queries in a single invocation and returns structured results with source URLs and content snippets.
When to use
- The user asks you to research a topic or find current information
- You need up-to-date facts, statistics, or news to answer a question
- Another task (writing a report, creating a PPT, drafting a document) needs web research as a preliminary step
- The user explicitly asks to search or look something up
Prerequisites
API Key Configuration (Required First)
This skill requires a SKYWORK_API_KEY to be configured in OpenClaw.
If you don't have an API key yet, please visit: https://skywork.ai
For detailed setup instructions, see: references/apikey-fetch.md
How to use
Run the bundled script from this skill's scripts/ directory:
python3 <skill-path>/scripts/web_search.py "query1" ["query2"] ["query3"]- Pass 1–3 search queries as positional arguments
- Results are saved to individual text files in a temporary directory
- The script prints the file paths to stdout so you can read them
Crafting good queries
Search quality depends heavily on query phrasing. A few tips:
- Be specific: "Tesla Q4 2025 revenue" works better than "Tesla financials"
- Use natural language: The API handles full questions well — "What is the current population of Tokyo?" is fine
- Split broad topics: If the user wants a comprehensive overview, break it into 2–3 focused queries rather than one vague one
- Include time context when relevant: "best Python web frameworks 2026" rather than just "best Python web frameworks"
Reading results
After running the script, read the output files. Each file contains:
query: <the original query>
[result-1] <source URL>
<content snippet>
[result-2] <source URL>
<content snippet>
...Synthesize the results into a clear answer for the user. Always cite sources when presenting factual information — include the URLs from the results so the user can verify.
Example workflow
User asks: "What are the latest developments in quantum computing?"
1. Run the search with focused queries:
python3 <skill-path>/scripts/web_search.py \
"quantum computing breakthroughs 2026" \
"quantum computing industry news latest"2. Read the result files 3. Synthesize findings into a clear, sourced summary for the user
Limitations
- Maximum 3 queries per invocation (the script caps it)
- Each query has a 30-second timeout
- Results depend on the Skywork search API availability
Skywork API Key Setup Guide (OpenClaw)
SKYWORK_API_KEY Not Configured
When the SKYWORK_API_KEY environment variable is not set, follow these steps:
1. Get API Key
Visit the Skywork website and sign in to your account:
https://skywork.ai
- Log in with your Skywork account
- Open account / Settings / API Key (https://skywork.ai/?openApiKeySetting=1)
- Create or copy your API key
If your organization uses a separate console or test environment, use the URL and credentials your team provides.
2. Configure OpenClaw
Edit the OpenClaw configuration file: ~/.openclaw/openclaw.json
In current OpenClaw, Skywork skills store the key under skills.entries.<Skill Name>.apiKey (not under env). OpenClaw will inject this value into the skill's SKYWORK_API_KEY environment when primaryEnv matches. Add or merge the following structure (adjust the skill name to match the installed skill):
{
"skills": {
"entries": {
"Skywork Search": {
"enabled": true,
"apiKey": "your_actual_skywork_api_key_here"
}
}
}
}Replace "your_actual_skywork_api_key_here" with your real key.
For multiple Skywork skills, repeat the same apiKey field on each skill entry.
3. Verify Configuration
# Check JSON format
cat ~/.openclaw/openclaw.json | python3 -m json.tool4. Restart OpenClaw
openclaw gateway restartTroubleshooting
- Ensure
~/.openclaw/openclaw.jsonexists and is valid JSON - Confirm the API key is active and not expired
- Check Skywork account status, membership, or quota if requests fail with auth or benefit errors
- Restart OpenClaw after configuration changes
Recommended: Use the OpenClaw configuration file for centralized environment management.
SKYWORK_GATEWAY_URL = "https://api-tools.skywork.ai/theme-gateway"
POD_TYPE = ""
import os
from typing import Optional
def get_skywork_api_key() -> Optional[str]:
"""
Returns skywork api key.
"""
api_key = os.environ.get("SKYWORK_API_KEY", "")
if not api_key:
print("SKYWORK_API_KEY is not set.")
return None
return api_key#!/usr/bin/env python3
"""
web_search.py - Call Skywork web search API and print results.
Usage:
python web_search.py "query1" ["query2" ...]
Accepts 1-3 search queries. Results are saved to individual text files
in a temporary directory and paths are printed to stdout.
"""
import argparse
import json
import os
import re
import sys
import tempfile
import urllib.request
# Add scripts directory to path for skywork_auth import
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from constant import POD_TYPE, SKYWORK_GATEWAY_URL
from skywork_auth import get_skywork_api_key
def search(query: str) -> str:
"""Call web_search API and return formatted text of results."""
url = f"{SKYWORK_GATEWAY_URL}/web_search"
api_key = get_skywork_api_key()
if not api_key:
print("[error] SKYWORK_API_KEY is required", file=sys.stderr)
sys.exit(1)
payload = {"query": query, "source_platform": "skyclaw" if POD_TYPE == "skyclaw" else ""}
body = json.dumps(payload).encode("utf-8")
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}",
}
req = urllib.request.Request(
url,
data=body,
method="POST",
headers=headers,
)
try:
with urllib.request.urlopen(req, timeout=30) as resp:
raw = resp.read().decode("utf-8")
except urllib.error.URLError as e:
print(f"[ERROR] web_search failed for query '{query}': {e}", file=sys.stderr)
sys.exit(1)
try:
data = json.loads(raw)
except json.JSONDecodeError:
return raw
results = data.get("search_res", [])
if not results:
return "(no results)"
lines = []
for i, item in enumerate(results, 1):
content = (item.get("content") or "").strip()
source_url = item.get("url", "")
lines.append(f"[result-{i}] {source_url}\n{content}")
return "\n\n".join(lines)
def safe_filename(value: str) -> str:
cleaned = re.sub(r"[^\w.-]+", "_", value, flags=re.UNICODE).strip("._-")
if not cleaned:
return "query"
return cleaned[:80]
def main():
parser = argparse.ArgumentParser(description="Search the web via Skywork API")
parser.add_argument("queries", nargs="+", help="One or more search queries (max 3)")
args = parser.parse_args()
queries = args.queries[:3]
out_dir = tempfile.mkdtemp(prefix="web_search_")
for q in queries:
print(f"[query] {q} ...", file=sys.stderr, flush=True)
raw = search(q)
out_path = os.path.join(out_dir, f"{safe_filename(q)}_result.txt")
with open(out_path, "w", encoding="utf-8") as f:
f.write(f"query: {q}\n\n{raw}")
print(f"Saved: {out_path}", flush=True)
if __name__ == "__main__":
main()
Related skills
FAQ
What does skywork search retrieve?
skywork search retrieves web and document results with competitive intelligence, source citations, and trend signals. Developers in skyworkai/skywork-skills use it during product ideation or when building agent knowledge pipelines needing external evidence.
When should developers invoke skywork search?
Developers should invoke skywork search during early research—competitor landscape reviews, citation gathering, or trend scanning—not for in-repository code navigation or production incident debugging.