Auto-claude-code-research-in-sleep exa-search

AI-powered web search via Exa with content extraction. Use when user says "exa search", "web search with content", "find similar pages", or needs broad web results beyond academic databases (arXiv, Semantic Scholar).

install
source · Clone the upstream repo
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/exa-search" ~/.claude/skills/wanshuiyin-auto-claude-code-research-in-sleep-exa-search && rm -rf "$T"
manifest: skills/exa-search/SKILL.md
source content

Exa AI-Powered Web Search

Search query: $ARGUMENTS

Role & Positioning

Exa is the broad web search source with built-in content extraction:

SkillBest for
/arxiv
Direct preprint search and PDF download
/semantic-scholar
Published venue papers (IEEE, ACM, Springer), citation counts
/deepxiv
Layered reading: search, brief, section map, section reads
/exa-search
Broad web search: blogs, docs, news, companies, research papers — with content extraction

Use Exa when you need results beyond academic databases, or when you want content (highlights, full text, summaries) extracted alongside search results.

Constants

  • FETCH_SCRIPT
    tools/exa_search.py
    relative to the current project.
  • MAX_RESULTS = 10 — Default number of results to return.

Overrides (append to arguments):

  • /exa-search "RAG pipelines" — max: 5
    — top 5 results
  • /exa-search "diffusion models" — category: research paper
    — research papers only
  • /exa-search "startup funding" — category: news, start date: 2025-01-01
    — recent news
  • /exa-search "transformer" — content: text, max chars: 8000
    — full text mode
  • /exa-search "transformer" — content: summary
    — LLM-generated summaries
  • /exa-search "transformer" — domains: arxiv.org,huggingface.co
    — domain filter
  • /exa-search "https://arxiv.org/abs/2301.07041" — similar
    — find similar pages

Setup

Exa requires the

exa-py
SDK and an API key:

pip install exa-py

Set your API key:

export EXA_API_KEY=your-key-here

Get a key from exa.ai.

Workflow

Step 1: Parse Arguments

Parse

$ARGUMENTS
for:

  • query: The search query (required) or a URL (for
    find-similar
    mode)
  • similar: If present, use
    find-similar
    mode instead of search
  • max: Override MAX_RESULTS
  • category:
    research paper
    ,
    news
    ,
    company
    ,
    personal site
    ,
    financial report
    ,
    people
  • content:
    highlights
    (default),
    text
    ,
    summary
    ,
    none
  • max chars: Max characters for content extraction
  • type: Search type —
    auto
    (default),
    neural
    ,
    fast
    ,
    instant
  • domains: Comma-separated include domains
  • exclude domains: Comma-separated exclude domains
  • include text: Phrase that must appear in results
  • exclude text: Phrase to exclude from results
  • start date: ISO 8601 date — only results after this
  • end date: ISO 8601 date — only results before this
  • location: Two-letter ISO country code

Step 2: Locate Script

SCRIPT=$(find tools/ -name "exa_search.py" 2>/dev/null | head -1)

If not found, tell the user:

exa_search.py not found. Make sure tools/exa_search.py exists and exa-py is installed:
pip install exa-py

Step 3: Execute Search

Standard search:

python3 "$SCRIPT" search "QUERY" --max 10 --content highlights

With filters:

python3 "$SCRIPT" search "QUERY" --max 10 \
  --category "research paper" \
  --start-date 2025-01-01 \
  --content text --max-chars 8000

Find similar pages:

python3 "$SCRIPT" find-similar "URL" --max 5 --content highlights

Get content for known URLs:

python3 "$SCRIPT" get-contents "URL1" "URL2" --content text

Step 4: Present Results

Format results as a structured table:

| # | Title | URL | Date | Key Content |
|---|-------|-----|------|-------------|

For each result:

  • Show title and URL
  • Show published date if available
  • Show highlights, text excerpt, or summary depending on content mode
  • Flag particularly relevant results

Step 5: Offer Follow-up

After presenting results, suggest:

  • Deepen: "I can fetch full text for any of these results"
  • Find similar: "I can find pages similar to any result"
  • Narrow: "I can re-search with domain/date/text filters"

Key Rules

  • Always check that
    EXA_API_KEY
    is set before searching
  • Default to
    highlights
    content mode for a good balance of speed and context
  • Use
    category: "research paper"
    when the user is clearly looking for academic content
  • Use
    text
    content mode when the user needs full page content
  • Combine with
    /arxiv
    or
    /semantic-scholar
    for comprehensive literature coverage