Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
afk101 avatar

Exa Search

  • 1 installs
  • Updated July 16, 2026
  • afk101/gd-claude-code-plugin

exa-search is a Claude Code skill that lets an agent search the web through the Exa API using curl.

About

exa-search is a Claude Code skill that queries the web through the Exa API using shell curl commands. It gives an agent up-to-date information such as documentation, code examples, news and research papers that may not be in its training data. A developer uses it when the agent needs live web data, current library versions or recent events. It ships ready-to-run curl and jq snippets for search, full-text, news and deep-research modes.

  • Searches the web via the Exa API using only curl, no Node.js or Python required
  • Covers general search, full-page text, news, deep research and URL content fetch patterns
  • Includes domain filtering and jq result-parsing recipes

Exa Search by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #14,098 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Jul 17, 2026 (Skillselion catalog sync)
At a glance

exa-search capabilities & compatibility

Requires an Exa API key (an example key is embedded in the SKILL.md).

Capabilities
web search · web research · news search · content fetch
Works with
github
Use cases
web search · research · web scraping
Pricing
Bring your own API key
From the docs

What exa-search says it does

Use this skill to search the web via the [Exa API](https://exa.ai) using `curl`. No Node.js or Python needed — just shell.
SKILL.md
Use this skill whenever you need to search the web for up-to-date information, documentation,
SKILL.md
npx skills add https://github.com/afk101/gd-claude-code-plugin --skill exa-search

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
Last updatedJuly 16, 2026
Repositoryafk101/gd-claude-code-plugin

What it does

Give a Claude Code agent live web search over the Exa API through simple curl commands.

Who is it for?

Developers who want an agent to pull up-to-date docs, code examples, news or research via a shell-only web search.

Skip if: Offline tasks or lookups already covered by the model's training data.

When should I use this skill?

The user asks to search for, look up, or find recent information, current library versions or API docs.

What you get

The agent retrieves current web results with titles, URLs, highlights and dates via the Exa API.

By the numbers

  • 5 search patterns (general, full-text, news, deep, url-contents)
  • 5-item common-mistakes list

Files

SKILL.mdMarkdownGitHub ↗

Exa Web Search

Use this skill to search the web via the Exa API using curl. No Node.js or Python needed — just shell.

Quick Start

curl -s -X POST 'https://api.exa.ai/search' \
  -H 'x-api-key: 69b2e0ee-f92a-48ab-9233-cc8a750a1e50' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "YOUR QUERY HERE",
    "type": "auto",
    "num_results": 10,
    "contents": {
      "highlights": {
        "max_characters": 4000
      }
    }
  }'

Parameters

ParameterValueNotes
type"auto"Default. Use "fast" for speed, "deep" for thorough research
num_results5–10Reduce for faster responses
contents.highlights.max_characters4000Key excerpts. Switch to "text" for full page content

Common Search Patterns

General web search (default)

curl -s -X POST 'https://api.exa.ai/search' \
  -H 'x-api-key: 69b2e0ee-f92a-48ab-9233-cc8a750a1e50' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "Next.js 15 app router data fetching",
    "type": "auto",
    "num_results": 5,
    "contents": {
      "highlights": { "max_characters": 4000 }
    }
  }'

Full page text (for code/docs you need in full)

curl -s -X POST 'https://api.exa.ai/search' \
  -H 'x-api-key: 69b2e0ee-f92a-48ab-9233-cc8a750a1e50' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "Prisma schema relations one-to-many",
    "type": "auto",
    "num_results": 3,
    "contents": {
      "text": { "max_characters": 20000 }
    }
  }'

News / recent events

curl -s -X POST 'https://api.exa.ai/search' \
  -H 'x-api-key: 69b2e0ee-f92a-48ab-9233-cc8a750a1e50' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "OpenAI GPT-5 release",
    "type": "auto",
    "category": "news",
    "num_results": 5,
    "contents": {
      "highlights": { "max_characters": 4000 }
    }
  }'

Deep research (thorough, slower)

curl -s -X POST 'https://api.exa.ai/search' \
  -H 'x-api-key: 69b2e0ee-f92a-48ab-9233-cc8a750a1e50' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "vector database comparison 2025 performance benchmarks",
    "type": "deep",
    "num_results": 10,
    "contents": {
      "highlights": { "max_characters": 4000 }
    }
  }'

Fetch content from known URLs

curl -s -X POST 'https://api.exa.ai/contents' \
  -H 'x-api-key: 69b2e0ee-f92a-48ab-9233-cc8a750a1e50' \
  -H 'Content-Type: application/json' \
  -d '{
    "urls": ["https://docs.example.com/api"],
    "text": { "max_characters": 20000 }
  }'

Reading Results

The response is JSON. Key fields per result:

.results[].title       — page title
.results[].url         — source URL
.results[].highlights  — relevant excerpts (array of strings)
.results[].text        — full text (only if you requested "text" contents)
.results[].publishedDate — ISO date string

Pretty-print with jq:

curl -s ... | jq '.results[] | {title, url, highlights}'

Extract just titles and URLs:

curl -s ... | jq -r '.results[] | "\(.title)\n\(.url)\n"'

Domain Filtering (optional)

Focus on authoritative sources when needed:

{
  "query": "...",
  "includeDomains": ["github.com", "docs.python.org"],
  "excludeDomains": ["pinterest.com", "quora.com"]
}

Environment Variable (recommended)

To avoid hardcoding the key in commands:

export EXA_API_KEY="69b2e0ee-f92a-48ab-9233-cc8a750a1e50"

curl -s -X POST 'https://api.exa.ai/search' \
  -H "x-api-key: $EXA_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{ "query": "...", "type": "auto", "num_results": 5, "contents": {"highlights": {"max_characters": 4000}} }'

Common Mistakes to Avoid

  • "livecrawl": "preferred" → deprecated, use "maxAgeHours": 0 instead
  • "useAutoprompt": true → deprecated, remove it
  • "highlights" at top level of /search → must be inside "contents": { ... }
  • "includeUrls" → doesn't exist, use "includeDomains"
  • ❌ Both "text" and "highlights" in same request → pick one

Related skills

FAQ

Does exa-search need Node.js or Python?

No. It calls the Exa API with curl in the shell, so no Node.js or Python is required.

How do I avoid hardcoding the API key?

Export it as EXA_API_KEY and reference $EXA_API_KEY in the curl header.

AI & Agent Buildingagentsresearch

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.