--- id: BenedictKing/exa-search/exa-search version: "6ee8d0f9" license: MIT install: manual updated: 2026-04-21 --- # exa-search — Exa Search performs semantic web search and content discovery through embeddings, supporting multiple query types including similarity matching, category-specific searches, and structured research output. Route queries to the appropriate endpoint—search for general topics, findsimilar for related pages, contents for full text extraction, answer for direct responses, or research for formatted findings. Publisher: BenedictKing · Stars: 5 · Updated: 2026-04-21 Install (manual): `git clone https://github.com/BenedictKing/exa-search` ## Decision gist - What it does: Exa Search finds semantically similar web pages and content using embeddings-based search across multiple categories. - Install: `npx skillfed install BenedictKing/exa-search/exa-search` · manual: `git clone https://github.com/BenedictKing/exa-search` → `cp -r exa-search/.claude/skills/exa-search ~/.claude/skills/exa-search` - Use it when: Yes, exa-search is built on embeddings-based semantic search technology. - Use it when: Exa Search excels at discovering research papers, code repositories, domain-specific content, and general web pages. - Similar skills: mxyhi/ok-skills/exa-search, tristanmanchester/agent-skills/exa-search, gooseworks-ai/goose-skills/web-search-exa, BenedictKing/tavily-web/tavily-web, Merit-Systems/agentcash-skills/web-research - Verify: Read SKILL.md below before installing ## SKILL.md # Exa Search Skill ## Trigger Conditions & Endpoint Selection Choose Exa endpoint based on user intent: - **search**: Need semantic search / find web pages / research topics - **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**: Need structured research output following given `output_schema` ## Recommended Architecture (Main Skill + Sub-skill) This skill uses a two-phase architecture: 1. **Main skill (current context)**: Understand user question → Choose endpoint → Assemble JSON payload 2. **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 .claude/skills/exa-search/exa-api.cjs { ...payload... } JSON ``` ## Payload Examples ### 1) Search ```bash cat <<'JSON' | node .claude/skills/exa-search/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", "includeText": [], "excludeText": [], "context": true, "contents": { "text": true, "highlights": true, "summary": true } } JSON ``` **Search Types:** - `neural`: Semantic search using embeddings - `fast`: Quick keyword-based search - `auto`: Automatically choose best method (default) - `deep`: Comprehensive deep search **Categories:** - `company`, `people`, `research paper`, `news`, `pdf`, `github`, `tweet`, etc. ### 2) Contents ```bash cat <<'JSON' | node .claude/skills/exa-search/exa-api.cjs contents { "ids": ["result-id-1", "result-id-2"], "text": true, "highlights": true, "summary": true } JSON ``` ### 3) Find Similar ```bash cat <<'JSON' | node .claude/skills/exa-search/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 ```bash cat <<'JSON' | node .claude/skills/exa-search/exa-api.cjs answer { "query": "What is the capital of France?", "numResults": 5, "includeDomains": [], "excludeDomains": [] } JSON ``` ### 5) Research ```bash cat <<'JSON' | node .claude/skills/exa-search/exa-api.cjs research { "input": "What are the latest developments in AI?", "model": "auto", "stream": false, "output_schema": { "properties": { "topic": { "type": "string", "description": "The main topic" }, "key_findings": { "type": "array", "description": "List of key findings", "items": { "type": "string" } } }, "required": ["topic"] }, "citation_format": "numbered" } JSON ``` ## Environment Variables & API Key Two ways to configure API Key (priority: environment variable > `.env`): 1. Environment variable: `EXA_API_KEY` 2. `.env` file: Place in `.claude/skills/exa-search/.env`, can copy from `.env.example` ## Response Format All endpoints return JSON with: - `requestId`: Unique request identifier - `results`: Array of search results - `searchType`: Type of search performed (for search endpoint) - `context`: LLM-friendly context string (if requested) - `costDollars`: Detailed cost breakdown [View on SkillFed](https://skillfed.io/BenedictKing/exa-search/exa-search) · [View on GitHub](https://github.com/BenedictKing/exa-search)