feat: add Exa AI-powered search tool#1
Open
tgonzalezc5 wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new
/exa-searchskill that lets the agent use the Exa Search API for AI-powered semantic web search, with category and domain filtering, optional content modes (text / highlights / summary), and graceful fallback toWebSearchwhenEXA_API_KEYis unset..claude/skills/exa-search/SKILL.md(haiku, user-invocable)/weatherand/x-twitter(no new npm deps, in line withCONTRIBUTING.md)EXA_API_KEYenv var setup (get a key at https://dashboard.exa.ai)README.md's skill tableCLAUDE.md's Task Delegation table for "Search Exa for...", "Find papers on...", "Find companies that..."README.mdandCLAUDE.mdWhy
The existing
/quick-researchskill relies on Claude Code's built-inWebSearch, which is keyword-based. Exa adds:research paper,news,company,personal site,financial report,peoplestartPublishedDate,endPublishedDate)text,highlights, andsummarycontent modes (combinable in one request)Other skills (e.g.
/trend-scout) already follow the pattern of "use a richer source with WebSearch fallback" — this slots into that pattern.Usage
Once
EXA_API_KEYis exported in the user's shell:The skill picks the right
category,includeDomains, andstartPublishedDate, callsPOST https://api.exa.ai/search, and formats the top results with snippet cascade (summary → highlights → text → title) under 400 words.If
EXA_API_KEYis unset or the request fails, it silently falls back toWebSearchand notes the fallback once.Files changed
.claude/skills/exa-search/SKILL.md(new)README.md— added/exa-searchto the Content & Research skills table; bumped skill count 49 → 50CLAUDE.md— added/exa-searchto the skills list and the Task Delegation routing table; bumped skill count 49 → 50Test plan
The repo's
CONTRIBUTING.mddescribes the skill test method as: "Test by running Claude Code in the project directory and verify your addition works." There is no precedent in the repo for unit-testing markdown skills.name,description,allowed-tools,model,user-invocable,when_to_use,argument-hint)npm testsuite still passes (96/96 tests, vitest)README.mdandCLAUDE.mdexport EXA_API_KEY=..., runclaudein the project, invoke/exa-search find recent papers on speculative decoding, verify ranked results appear with snippetsEXA_API_KEY, invoke/exa-search, verify fallback toWebSearchwith the documented one-line noteNotes for reviewers
x-api-key(notAuthorization: Bearer); the skill instructs the model to set this on every request.x-exa-integration: claude-agentfor usage attribution.type: autois used as the default search mode (Exa picks neural vs. other modes per query);keywordis intentionally not used as it was removed from the API.contentsfield acceptstext,highlights, andsummarysimultaneously — the skill makes this clear so the model doesn't treat them as mutually exclusive.