exa-search
AI-powered web search via Exa with content extraction
Install / Use
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill exa-searchInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Data & AnalyticsSupported Platforms
Our assessment of exa-search
exa-search scores 82/100 on our quality scale, 146th of 233 Data & Analytics skills we index.
Its SKILL.md is 8.4 KB long, well organised into 12 sections with 9 code examples: a thorough specification that gives an agent plenty to work with.
With 16,644 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 8 days ago, so exa-search is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
exa-search compared with similar skills
All 4 of these similar skills score higher than exa-search; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| exa-search (this skill)by wanshuiyin | 82 | 16.6k | 8d ago | SKILL.md |
| algorithmic-artby anthropics | 100 | 177.9k | 4d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 4d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 130.2k | 5d ago | SKILL.md |
| ui-ux-pro-maxby nextlevelbuilder | 100 | 130.2k | 5d ago | SKILL.md |
Frequently asked questions
- How do I install exa-search?
- Run
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill exa-search. The install tabs above show the steps for each supported agent. - Which AI agents does exa-search work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is exa-search safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is exa-search still maintained?
- The repository was last updated 8 days ago, so exa-search is actively maintained.
Skill content
View source on GitHubname: exa-search description: 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). argument-hint: "[search-query-or-url]" allowed-tools: Bash(*), Read, Write
Exa AI-Powered Web Search
Search query: $ARGUMENTS
Role & Positioning
Exa is the broad web search source with built-in content extraction:
| Skill | Best 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
- EXA_FETCHER — canonical name
exa_search.py, resolved pershared-references/integration-contract.md§2 (Policy D1 — standalone/exa-searchhas no documented fallback, so unresolved helper terminates with an explicit error). - 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-similarmode) - similar: If present, use
find-similarmode 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
Resolve $EXA_FETCHER via the canonical strict-safe chain (see
shared-references/integration-contract.md §2).
Policy D1 cascade: there is no native inline fallback for Exa
(retrieval requires the exa-py SDK + API key, which lives in the
fetcher), so unresolved helper means the SKILL cannot produce its
primary output — fail with explicit remediation.
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
EXA_FETCHER=".aris/tools/exa_search.py"
[ -f "$EXA_FETCHER" ] || EXA_FETCHER="tools/exa_search.py"
[ -f "$EXA_FETCHER" ] || { [ -n "${ARIS_REPO:-}" ] && EXA_FETCHER="$ARIS_REPO/tools/exa_search.py"; }
[ -f "$EXA_FETCHER" ] || {
echo "ERROR: exa_search.py not resolved at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
echo " Fix: rerun bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or copy the helper to tools/." >&2
echo " Also ensure 'exa-py' is installed: pip install exa-py" >&2
exit 1
}
Step 3: Execute Search
Standard search:
python3 "$EXA_FETCHER" search "QUERY" --max 10 --content highlights
With filters:
python3 "$EXA_FETCHER" search "QUERY" --max 10 \
--category "research paper" \
--start-date 2025-01-01 \
--content text --max-chars 8000
Find similar pages:
python3 "$EXA_FETCHER" find-similar "URL" --max 5 --content highlights
Get content for known URLs:
python3 "$EXA_FETCHER" get-contents "URL1" "URL2" --content text
Step 4: Present Results
Format results as a structured table:
| # | Title | Authors | Venue/Publisher | 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
- For
category: "research paper"hits only — also record authors (from Exa'sauthor/authorsfields, or fallback: parse from the result snippet) and venue/publisher (frompublisher,source, or the domain hosting the paper). These are needed by Step 6's wiki hook; if either is unavailable for a given hit, skip wiki ingest for that one hit and log a note.
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"
Step 6: Update Research Wiki (if active, research-paper results only)
Required when research-wiki/ exists AND the search returned
results of category: "research paper"; skip silently otherwise.
General web results (blog posts, docs, news) are not ingested —
the wiki is for papers only.
When the predicates hold, resolve $WIKI_SCRIPT per the canonical
chain at
shared-references/wiki-helper-resolution.md
(Variant B — warn-and-skip). For each research paper hit, try to
recover an arXiv ID from the URL (arxiv.org/abs/<id>); if present,
use --arxiv-id. Otherwise fall back to manual metadata:
if [ -d research-wiki/ ] and query category was "research paper":
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
ARIS_REPO="${ARIS_REPO:-$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null)}"
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
WIKI_SCRIPT=".aris/tools/research_wiki.py"
[ -f "$WIKI_SCRIPT" ] || WIKI_SCRIPT="tools/research_wiki.py"
[ -f "$WIKI_SCRIPT" ] || { [ -n "${ARIS_REPO:-}" ] && WIKI_SCRIPT="$ARIS_REPO/tools/research_wiki.py"; }
[ -f "$WIKI_SCRIPT" ] || {
echo "WARN: research_wiki.py not found; exa-search results delivered, wiki ingest skipped. Fix: bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or cp <ARIS-repo>/tools/research_wiki.py tools/." >&2
WIKI_SCRIPT=""
}
[ -n "$WIKI_SCRIPT" ] && for each research-paper hit in results:
if URL matches arxiv.org/abs/<id>:
python3 "$WIKI_SCRIPT" ingest_paper research-wiki/ \
--arxiv-id "<id>"
else:
python3 "$WIKI_SCRIPT" ingest_paper research-wiki/ \
--title "<title>" --authors "<authors joined by , >" \
--year <year> --venue "<venue or publisher>"
The helper handles slug / dedup / page / index / log — do not
handwrite papers/<slug>.md. See
shared-references/integration-contract.md.
Key Rules
- Always check that
EXA_API_KEYis set before searching - Default to
highlightscontent mode for a good balance of speed and context - Use
category: "research paper"when the user is clearly looking for academic content - Use
textcontent mode when the user needs full page content - Combine with
/arxivor/semantic-scholarfor comprehensive literature coverage
Related Skills
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
130.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
ui-ux-pro-max
130.2kUI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
