- name
- exa-research
- description
- Use the local
exaCLI to search the live web, ask grounded questions with citations, fetch page contents, find similar links, retrieve Exa code context, or manage Exa research tasks. Use when the task needs current web information, source-backed answers, URL/page extraction, related-link discovery, code examples from the web, or Exa-specific API access. Prefer this over generic web search when Exa highlights, answer synthesis, or research workflows are specifically useful. - homepage
- https://github.com/jdegoes/exa
- metadata
Exa Research
Use the bundled wrapper to run Exa reliably:
{baseDir}/scripts/exa-with-key.sh --helpCredentials
Preferred OpenClaw-native setup:
skills.entries.exa-research.apiKey- or
skills.entries.exa-research.env.EXA_API_KEY
Other supported auth sources:
- ambient
EXA_API_KEY EXA_API_KEY_FILE- default file fallback at
~/.openclaw/credentials/exa/api-key.txt
The wrapper prefers credentials in this order:
- existing
EXA_API_KEY EXA_API_KEY_FILE- the default file path above
Route to the smallest command that fits
- Use
searchfor live web discovery and filtered result lists. - Use
answerfor one grounded answer with citations. - Use
contentswhen URLs or result IDs are already known and text/highlights/summary are needed. - Use
similarwhen one seed URL is known and related pages are needed. - Use
contextfor coding patterns, library usage, and implementation examples. - Use
researchfor asynchronous or longer-running research workflows. - Use
rawonly when a higher-level command cannot express the request.
Keep context lean
- Start narrow; broaden only if recall is poor.
- Prefer
answerover manual search-plus-synthesis when the user wants a concise cited answer. - Prefer
highlightsbefore fulltextwhen excerpts are enough. - Cap payload size with
--text-max,--highlights-max, andcontext --tokens. - Add domains, categories, and date filters early instead of retrieving broad result sets.
- Do not dump large raw payloads into chat when a short synthesis will do.
Command patterns
Search
{baseDir}/scripts/exa-with-key.sh "latest developments in llms"
{baseDir}/scripts/exa-with-key.sh search --category news --include-domain reuters.com --highlights "AI regulation"
{baseDir}/scripts/exa-with-key.sh search --type deep --additional-query "llm releases" "latest frontier models"Answer
{baseDir}/scripts/exa-with-key.sh answer "What is the latest valuation of SpaceX?"
{baseDir}/scripts/exa-with-key.sh answer --text "What changed in the latest OpenAI release?"Contents
{baseDir}/scripts/exa-with-key.sh contents --text https://exa.ai
{baseDir}/scripts/exa-with-key.sh contents --id doc-1 --id doc-2 --highlights
{baseDir}/scripts/exa-with-key.sh contents --highlights --summary https://exa.ai https://example.comSimilar
{baseDir}/scripts/exa-with-key.sh similar --highlights https://arxiv.org/abs/2307.06435
{baseDir}/scripts/exa-with-key.sh similar --text --text-max 3000 https://exa.ai/blogContext
{baseDir}/scripts/exa-with-key.sh context "React hooks for state management"
{baseDir}/scripts/exa-with-key.sh context --tokens 5000 "pandas dataframe filtering and groupby operations"Research
{baseDir}/scripts/exa-with-key.sh research create "Summarize the latest developments in AI safety research"
{baseDir}/scripts/exa-with-key.sh research list --limit 10
{baseDir}/scripts/exa-with-key.sh research get 01jszdfs0052sg4jc552sg4jc5Raw
{baseDir}/scripts/exa-with-key.sh raw /search @payload.json
{baseDir}/scripts/exa-with-key.sh raw -X GET '/research/v1?limit=10'
printf '{"query":"latest llm news"}' | {baseDir}/scripts/exa-with-key.sh raw /search -Practical guidance
- Run
{baseDir}/scripts/exa-with-key.sh <subcommand> --helpbefore guessing flags. - If the task is exploratory, start with
search, then escalate tocontentsonly for selected URLs. - If the task is code-oriented, prefer
contextover broad search. - If the task needs longer-running synthesis, prefer
researchover ad hoc polling withraw. - If the user asks for the upstream generated skill text, run
exa skill.