build-with-exa

build-with-exa is a skill for Claude Code, Codex from exa-labs/agent-skills. It costs 75 tokens per session (3,608 once invoked), scanned A, original, MIT.

A guide for building applications and coding agents with Exa, a web-search and content-retrieval API.

In plain words
What is it for?
Adding web search, page-content extraction, answers, research context, monitoring, websets, agent features, and Exa SDK or OpenAI-compatible integrations.
Why use it?
It helps choose the right Exa service, form requests correctly, and diagnose integration problems.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Adding web search, page-content extraction, answers, research context, monitoring, websets, agent features, and Exa SDK or OpenAI-compatible integrations.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/exa-labs/agent-skills/build-with-exa
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add exa-labs/agent-skills --skill build-with-exa
Clone the repo
git clone --depth 1 https://github.com/exa-labs/agent-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for build-with-exa

README.md
[![agentmods](https://agentmods.dev/badge/skills/exa-labs/agent-skills/build-with-exa/github.svg)](https://agentmods.dev/skills/exa-labs/agent-skills/build-with-exa)
Your own site
<a href="https://agentmods.dev/skills/exa-labs/agent-skills/build-with-exa"><img src="https://agentmods.dev/badge/skills/exa-labs/agent-skills/build-with-exa/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for build-with-exa

Your own site · 80×15
<a href="https://agentmods.dev/skills/exa-labs/agent-skills/build-with-exa"><img src="https://agentmods.dev/badge/skills/exa-labs/agent-skills/build-with-exa.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 75 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,608 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • Socket pass 2 Nov 2026
  • Snyk warn 6 Nov 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00075 $0.03608
Opus 5.5 $0.00030 $0.01443
Sonnet 5.5 $0.00015 $0.00722
Haiku 4.5 $0.00007 $0.00361

Measured yesterday against content hash 8f696cd58776, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

build-with-exa scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -X POST "https://api.exa.ai/search" \
skills/build-with-exa/SKILL.md · 225 lines

How it starts

The opening of the file, as written. The whole thing — 225 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Build with Exa

Scope

Included by default:

  • Core retrieval APIs: search endpoint, contents endpoint, answer endpoint
  • Long-running research workflows: Agent API (/agent)
  • Async and recurring workflows: Monitors API
  • Legacy surface: Websets API (existing integrations only; new collection-building work uses the Agent API)
  • Historical content: Exa Snapshot (snapshotAsOf on search and contents)
  • SDK guidance: Python exa-py, TypeScript exa-js

Note on data retention: /search, /contents, /answer, and /agent offer Zero Data Retention (ZDR). Websets and the Monitors API (/monitors) are not ZDR. If a use case requires ZDR, stay on the ZDR surfaces or contact Exa.

Installation

# Python
pip install exa-py

# TypeScript / JavaScript
npm install exa-js

Install the latest SDK release with the package manager so it resolves the latest release and all SDK surfaces will be available.

Authentication

export EXA_API_KEY="your_api_key_here"

Exa accepts either the x-api-key header or Authorization: Bearer <key>.

The recommended Exa search request is the query plus token-efficient content extraction, and nothing else. Content extraction is a recommendation, not a server default: omit contents and results carry only metadata (title, URL, dates), no page content.

{
  "query": "latest developments in LLMs",
  "type": "auto",
  "contents": { "highlights": true }
}

Every other request field except objective is gated: add it only when the user's task explicitly requires it. Do not restate server defaults, and do not add controls because they seem plausibly useful. In particular:

  • type defaults to auto; stating type: "auto" explicitly is fine, but do not send another mode unless the task requires it (for example a latency-critical UX or deep synthesis).
  • numResults defaults to 10; omit numResults unless the task requires a different number of results. Set it only as an intentional product decision, not as boilerplate.
  • Omit category. Use it only when the user explicitly asks for category-constrained retrieval.
  • includeDomains and excludeDomains should be set only when the user explicitly requests a hard allowlist or blocklist and supplies or approves its contents. Express source preferences through query phrasing or systemPrompt instead.
  • maxAgeHours should be set only when extracted page content must be current. It caps cache age before a live crawl; it is not a publication-recency filter.
  • For "recent stories" tasks, put the recency in the query ("latest", "recent"). startPublishedDate / endPublishedDate are hard filters that drop undated and misdated pages; add them only when the task states a bounded window that must be enforced ("from the last seven days", "published in 2026"). Do not reach for maxAgeHours.
  • highlights should be set to true by default for all tasks unless otherwise specified. Do not add maxCharacters or other highlight options without an explicit budget requirement in the task.
  • objective belongs on every search that is one step of a larger task, such as a search an LLM agent calls as a tool, a query a model writes, or one step of a multi-step pipeline. Set it to the goal that search serves. Say which documents should rank first, which to exclude, and which facts or figures to pull. When an LLM calls search as a tool, the model writes objective alongside query. See Search as an LLM Tool.

Read the full file on GitHub · 225 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday Changed · +44 lines 8f696cd58776
  2. 18d ago Changed 7f972ae0f66d
  3. 1mo ago Changed · +2 lines fc5bacd84f1d
  4. 1mo ago Changed · +3 lines 6e1e81389cd2
  5. 1mo ago Changed · +1 lines a2d4f3975d10
  6. 2mo ago Changed · -2 lines · -2 tokens per session cf621d15d217
  7. 2mo ago First seen · 177 lines · 77 tokens per session scan A cbb5121ca73b

Subscribe to this mod's changes

build-with-exa is a skill published in the GitHub repository exa-labs/agent-skills (65 stars, last pushed yesterday), licensed MIT. It adds 75 tokens to every session and 3,608 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

build-with-exa compared with skills from other repositories

build-with-exa next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
build-with-exaexa-labs/agent-skillsSkill65yesterdayMITA75Claude Code, Codex
imagegenopenai/codexSkill133kyesterdayApache-2.0A113Codex
playwright-climicrosoft/playwrightSkill99kyesterdayApache-2.0A19Claude Code
local-ai-agentsmicrosoft/ai-agents-for-beginnersSkill79k4d agoMITA200Claude Code, Codex
systematic-debuggingobra/superpowersSkill313k3d agoMITA21Claude Code
next-cache-components-adoptionvercel/next.jsSkill143kyesterdayMITA95Claude Code
next-partial-prefetching-adoptionvercel/next.jsSkill143kyesterdayMITA103Claude Code