/install unified-search-suite
Unified Search
This skill is now a two-layer search suite:
- Vendored deep-research stack — now the default for ordinary
/unified_search \x3Cquery>callssearch-layer: Exa + Tavily + Grok multi-source search with intent-aware scoringfetch-thread: deep thread / issue / PR / forum context extractioncontent-extract: URL → Markdown with MinerU fallbackmineru-extract: official MinerU parsing wrapper
- Legacy merged search — available via
--legacyor the explicitlegacysubcommand- Engines: Tavily + Exa + Google
- Best for: quick fact-checks, troubleshooting, product/doc lookup, fast aggregated evidence
Recommended usage policy
A. Everyday search: default to deep search-layer
Run:
bash scripts/unified-search.sh "\x3Cquery>"
This routes ordinary lookup queries to search-layer deep mode by default. Use --legacy or the legacy subcommand when the old Tavily + Exa + Google merged output is specifically needed.
Examples:
bash scripts/unified-search.sh "tavily language filter"
bash scripts/unified-search.sh "OpenClaw cron run docs"
bash scripts/unified-search.sh --legacy "OpenClaw cron run docs" --topic news --days 7
Chat trigger examples:
/unified_search tavily docs language filter/unified_search OpenClaw cron run docs/unified_search --legacy OpenClaw cron run docs --topic news --days 7
B. Explicit deep research: route to vendored search-layer
Run:
bash scripts/unified-search.sh search-layer "\x3Cquery>" --mode deep --intent status --num 5
Examples:
bash scripts/unified-search.sh search-layer "OpenClaw config validation bug" --mode deep --intent status --extract-refs
bash scripts/unified-search.sh search-layer --queries "Bun vs Deno" "Bun advantages" "Deno advantages" --mode deep --intent comparison --num 5
bash scripts/unified-search.sh "RAG framework comparison" --mode deep --intent comparison --num 5
If --mode / --intent / --freshness / --source / --extract-refs / --extract-refs-urls / --domain-boost appears, the unified wrapper auto-routes to deep-search mode.
C. Thread / issue / PR deep fetch
Run:
bash scripts/unified-search.sh fetch-thread "https://github.com/owner/repo/issues/123"
Examples:
bash scripts/unified-search.sh fetch-thread "https://github.com/owner/repo/issues/123" --format markdown
bash scripts/unified-search.sh fetch-thread "https://news.ycombinator.com/item?id=43197966"
D. URL → Markdown extraction
Run:
bash scripts/unified-search.sh content-extract --url "https://mp.weixin.qq.com/s/example"
E. MinerU direct parsing
Run:
bash scripts/unified-search.sh mineru-extract "https://example.com/file.pdf"
bash scripts/unified-search.sh mineru-parse-documents --file-sources "https://example.com/file.pdf"
Wrapper subcommands
1) Default deep search-layer
bash scripts/unified-search.sh "\x3Cquery>"
Ordinary queries now default to search-layer deep mode. Legacy parameters are only for --legacy or the explicit legacy subcommand:
--num: max results per engine (default5)--topic:generalornews(defaultgeneral)--days: only for recent-news style queries--save-run: save output to custom dir--json: emitsummary.json--legacy: force old Tavily + Exa + Google merged behavior
2) search-layer
bash scripts/unified-search.sh search-layer ...
Important parameters:
--mode fast|deep|answer--intent factual|status|comparison|tutorial|exploratory|news|resource--freshness pd|pw|pm|py--queries ...--domain-boost github.com,stackoverflow.com--source exa,tavily,grok,tinyfish--extract-refs--extract-refs-urls
3) fetch-thread
bash scripts/unified-search.sh fetch-thread \x3Curl> [--format json|markdown] [--extract-refs-only]
4) content-extract
bash scripts/unified-search.sh content-extract --url \x3Curl>
5) mineru-extract / mineru-parse-documents
bash scripts/unified-search.sh mineru-extract \x3Curl> [--model MinerU-HTML]
bash scripts/unified-search.sh mineru-parse-documents --file-sources "\x3CURL1>\
\x3CURL2>"
Environment / dependency notes
Existing legacy search
- Tavily key: usually from
~/.openclaw/openclaw.json -> skills.entries.tavily.apiKey - Exa key: existing local setup / env override
- Google leg: depends on installed
google-searchskill
Vendored deep-search stack
Preferred credentials file:
{
"exa": "your-exa-key",
"tavily": "your-tavily-key",
"grok": {
"apiUrl": "https://api.x.ai/v1",
"apiKey": "your-grok-key",
"model": "grok-4.20-multi-agent-xhigh"
},
"tinyfish": {
"apiKey": "your-tinyfish-key",
"apiUrl": "https://api.search.tinyfish.ai"
}
}
Location:
~/.openclaw/credentials/search.json
Optional env overrides:
export EXA_API_KEY="..."
export TAVILY_API_KEY="..."
export GROK_API_URL="https://api.x.ai/v1"
export GROK_API_KEY="..."
export GROK_MODEL="grok-4.20-multi-agent-0309"
export TINYFISH_API_KEY="..."
export TINYFISH_API_URL="https://api.search.tinyfish.ai"
export GITHUB_TOKEN="..." # improves GitHub issue/PR thread fetch limits
export MINERU_TOKEN="..." # required for MinerU parsing
Local Python runtime
This skill now uses a dedicated venv:
.venv(local virtualenv, create with: python3 -m venv .venv)
Installed there:
requeststrafilaturabeautifulsoup4lxml
Important constraints
- The vendored
search-layerscript can directly use Exa + Tavily + Grok + TinyFish. - The original upstream README also references Brave via OpenClaw built-in
web_search, but shell scripts themselves cannot call agent-only tools. So in pure CLI mode, Brave is not auto-executed by the wrapper. - Your original Google-backed merged search is preserved as the day-to-day aggregated search path.
content-extractandmineru-*require external accessibility and, for MinerU, a validMINERU_TOKEN.
Vendored source snapshot
The upstream implementation is vendored here:
vendor/openclaw-search-skills/
Key vendored modules:
search-layer/content-extract/mineru-extract/
Output pattern
Legacy merged search
- Keep raw engine blocks (Tavily / Exa / Google)
- Deduplicate overlapping links
- Report:
- consensus findings
- disagreements / uncertainty
- actionable next step
Deep-search / extraction flows
Return the native structured JSON / markdown contract from the vendored tool whenever possible, then summarize with:
- direct conclusion
- strongest supporting sources
- uncertainty / conflicts
- next recommended trace or extraction step
For concise reporting template, read references/report-template.md.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install unified-search-suite - After installation, invoke the skill by name or use
/unified-search-suite - Provide required inputs per the skill's parameter spec and get structured output
What is Unified Search Suite?
Unified web search + deep research suite. Default ordinary /unified_search queries route to deep search-layer mode (Exa + Tavily + Grok); the legacy merged t... It is an AI Agent Skill for Claude Code / OpenClaw, with 36 downloads so far.
How do I install Unified Search Suite?
Run "/install unified-search-suite" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Unified Search Suite free?
Yes, Unified Search Suite is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Unified Search Suite support?
Unified Search Suite is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Unified Search Suite?
It is built and maintained by ccmxigua (@ccmxigua); the current version is v0.1.0.