Exa Search Skill
SkillSearchYour AI can search the web with Exa's neural search engine once this skill is added. It finds web pages, code examples, company information, and people, and can run deeper research on a topic when you need more than a quick answer.
Available today. Use it from your connected AI after setup.
No other account needed.
After adding it, ask your AI to search the web for what you need, such as company background, code examples, or information on a person.
Then ask your AI: use the Exa Search Skill skill
What your AI can do with it
- Search the web for pages on any topic
- Find code examples
- Look up company information
- Find people
- Run deeper research on a topic with neural search
What this skill tells your AI
The instructions your AI receives, as published by affaan-m/ecc in skills/exa-search/SKILL.md and read by ahel’s review.
Trigger Conditions & Endpoint Selection
Choose Exa endpoint based on user intent:
- search: Need semantic search / find web pages / research topics. Use
type: "auto"by default. - deep search / structured research: Use the search endpoint with
type: "deep"ortype: "deep-reasoning"and optionaloutputSchema. - contents: Given result IDs, need to extract full content.
- findsimilar: Given URL, need to find similar pages.
- answer: Need direct answer to a question.
/research and /research/v1 are deprecated and were hard-removed on 2026-05-01. Do not use them for new calls; migrate research-style requests to /search with type: "deep-reasoning".
Recommended Architecture (Main Skill + Sub-skill)
This skill uses a two-phase architecture:
- Main skill (current context): Understand user question → Choose endpoint → Assemble JSON payload
- Sub-skill (fork context): Only responsible for HTTP call execution, avoiding conversation history token waste
Execution Method
Use Task tool to invoke exa-fetcher sub-skill, passing command and JSON (stdin):
Task parameters:
- subagent_type: Bash
- description: "Call Exa API"
- prompt: cat <<'JSON' | node scripts/exa-api.cjs <search|contents|findsimilar|answer>
{ ...payload... }
JSON
The script still accepts the legacy research command for backwards compatibility, but it normalizes the payload and sends it to /search with type: "deep-reasoning".
Payload Examples
1) Search
cat <<'JSON' | node scripts/exa-api.cjs search
{
"query": "Latest research in LLMs",
"type": "auto",
"numResults": 10,
"category": "research paper",
"includeDomains": [],
"excludeDomains": [],
"startPublishedDate": "2025-01-01",
"endPublishedDate": "2025-12-31",
"contents": {
"highlights": true,
"summary": true
}
}
JSON
Search Types:
auto: Balanced defaultfast: Low latencyinstant: Lowest latencydeep-lite: Lightweight synthesized outputdeep: Multi-step search with reasoning and structured outputsdeep-reasoning: Highest-effort deep search for complex research tasks
Treat older neural references as legacy terminology; prefer auto for normal searches.
Categories:
company,people,research paper,news,personal site,financial report, etc.
2) Contents
cat <<'JSON' | node scripts/exa-api.cjs contents
{
"ids": ["result-id-1", "result-id-2"],
"text": true,
"highlights": true,
"summary": true
}
JSON
3) Find Similar
cat <<'JSON' | node scripts/exa-api.cjs findsimilar
{
"url": "https://example.com/article",
"numResults": 10,
"category": "news",
"includeDomains": [],
"excludeDomains": [],
"startPublishedDate": "2025-01-01",
"contents": {
"text": true,
"summary": true
}
}
JSON
4) Answer
cat <<'JSON' | node scripts/exa-api.cjs answer
{
"query": "What is the capital of France?",
"numResults": 5,
"includeDomains": [],
"excludeDomains": []
}
JSON
5) Structured Research via Search
Use /search with type: "deep-reasoning" and outputSchema for research-style synthesized output.
cat <<'JSON' | node scripts/exa-api.cjs search
{
"query": "What are the latest developments in AI?",
"type": "deep-reasoning",
"stream": false,
"systemPrompt": "Prefer official sources and provide specific, grounded findings.",
"outputSchema": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "The main topic"
},
"key_findings": {
"type": "array",
"description": "List of key findings",
"items": {
"type": "string"
}
}
},
"required": ["topic"]
}
}
JSON
/search returns synthesized content in output.content and field-level citations/confidence in output.grounding when outputSchema is used. Do not add citation or confidence fields to the schema.
Environment Variables & API Key
Two ways to configure API Key (priority: environment variable > .env):
- Environment variable:
EXA_API_KEY .envfile: Place in.env, can copy from.env.example
Response Format
All endpoints return JSON with:
requestId: Unique request identifierresults: Array of search resultssearchType: Type of search performed (for search endpoint)context: LLM-friendly context string (if requested)costDollars: Detailed cost breakdown
Signals
- GitHub stars
- 256k
- Forks
- 38k
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
exa-search- Source
- github.com/affaan-m/ecc