Openclaw-dae-skills exa-search
Neural web search for source-first research, especially official docs, API references, pricing pages, product specs, company pages, and any task where low-noise results and direct text extraction matter. Use when you need precise, high-quality, non-SEO-biased web results or extracted page text/highlights. Prefer this over generic web search for official documentation and structured source retrieval. Prefer grok-search instead for breaking news, X/Twitter dynamics, real-time sentiment, or broad multi-source live synthesis.
git clone https://github.com/jikssha/openclaw-dae-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/jikssha/openclaw-dae-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/exa-search" ~/.claude/skills/jikssha-openclaw-dae-skills-exa-search && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/jikssha/openclaw-dae-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/exa-search" ~/.openclaw/skills/jikssha-openclaw-dae-skills-exa-search && rm -rf "$T"
exa-search/SKILL.mdExa Search
Use Exa for source-first retrieval.
Prefer it when the task is about:
- official documentation
- API/reference pages
- pricing/plan details
- product/company pages
- extracting the text of a page instead of just finding the link
- expanding from one canonical page to similar pages
Do not default to Exa for:
- breaking news
- X/Twitter chatter
- live sentiment / fast-moving discourse
- broad real-time synthesis across many fresh sources
For those, prefer
grok-search.
Workflow
- Start with
for official documentation lookups.docs - Use
orsearch --text
when you need extracted body text.research - Restrict domains aggressively when the user wants official sources.
- Use
when you already have the best canonical page and want adjacent sources.similar - For official-doc-only work, prefer
plus domain restriction overdocs
;similar
is semantic, not source-pure.similar - Return links plus extracted evidence, not just titles.
Config
Preferred key resolution order:
--api-keyEXA_API_KEY
(comma-separated)EXA_API_KEYSconfig.local.jsonconfig.json~/.codex/config/exa-search.json
Recommended setup for this workspace: keep the real key inside the skill folder in
config.local.json so the entire skill can be backed up or moved as one directory.
Single key
{ "profiles": [ { "id": "main", "api_key": "YOUR_EXA_API_KEY" } ], "base_url": "https://api.exa.ai", "timeout_seconds": 30 }
Multiple keys with auto failover
{ "profiles": [ { "id": "main", "api_key": "KEY_1" }, { "id": "backup-1", "api_key": "KEY_2" }, { "id": "backup-2", "api_key": "KEY_3" } ], "base_url": "https://api.exa.ai", "timeout_seconds": 30 }
Failover behavior:
- profiles are tried in order
- 401 / 403 / 429 and quota / billing / rate-limit style errors automatically move to the next key
- the output includes
andprofileId
so you can see which key was usedattempts
Commands
Official docs search
python3 scripts/exa_search.py docs --query "telegram streaming openclaw"
Official docs search with extracted text
python3 scripts/exa_search.py docs --query "model failover openclaw" --text --num 2
General source-first search
python3 scripts/exa_search.py search --query "OpenClaw Telegram streaming" --num 5
Deep extraction / research
python3 scripts/exa_search.py research --query "OpenClaw model failover" --num 3
Force a specific key/profile
python3 scripts/exa_search.py docs --query "telegram streaming openclaw" --profile main
Find similar pages
python3 scripts/exa_search.py similar --url "https://docs.openclaw.ai/channels/telegram" --num 5
Notes
defaults todocs
.includeDomains=docs.openclaw.ai
defaults to text extraction.research- output is normalized JSON so downstream agents can consume it reliably.
- use
for ready-made query patterns.references/query-recipes.md