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.
npx skills add exa-labs/agent-skills --skill build-with-exagit clone --depth 1 https://github.com/exa-labs/agent-skillsWrote 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.
[](https://agentmods.dev/skills/exa-labs/agent-skills/build-with-exa)<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.
<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>- Socket pass
- Snyk warn
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.
| Model | Per session | Once 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 |
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" \ 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 (
snapshotAsOfon search and contents) - SDK guidance: Python
exa-py, TypeScriptexa-js
Note on data retention:
/search,/contents,/answer, and/agentoffer 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:
typedefaults toauto; statingtype: "auto"explicitly is fine, but do not send another mode unless the task requires it (for example a latency-critical UX or deep synthesis).numResultsdefaults to 10; omitnumResultsunless 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. includeDomainsandexcludeDomainsshould 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 orsystemPromptinstead.maxAgeHoursshould 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/endPublishedDateare 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 formaxAgeHours. highlightsshould be set totrueby default for all tasks unless otherwise specified. Do not addmaxCharactersor other highlight options without an explicit budget requirement in the task.objectivebelongs 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 writesobjectivealongsidequery. See Search as an LLM Tool.
What ships with it
13 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/agent.md 10 KB
- references/answer.md 3.5 KB
- references/common-mistakes.md 5.7 KB
- references/contents.md 4.8 KB
- references/http-requests.md 3.8 KB
- references/migrate-websets-to-agent.md 9.0 KB
- references/models-and-modes.md 3.3 KB
- references/monitors.md 3.9 KB
- references/openai-compat.md 3.5 KB
- references/prompting-and-patterns.md 7.4 KB
- references/sdks.md 4.7 KB
- references/search.md 15 KB
- references/snapshot.md 4.8 KB
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.
- yesterday Changed · +44 lines 8f696cd58776
- 18d ago Changed 7f972ae0f66d
- 1mo ago Changed · +2 lines fc5bacd84f1d
- 1mo ago Changed · +3 lines 6e1e81389cd2
- 1mo ago Changed · +1 lines a2d4f3975d10
- 2mo ago Changed · -2 lines · -2 tokens per session cf621d15d217
- 2mo ago First seen · 177 lines · 77 tokens per session scan A cbb5121ca73b
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.
build-with-exa compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| build-with-exaexa-labs/agent-skills | Skill | 65 | yesterday | MIT | A | 75 | Claude Code, Codex |
| imagegenopenai/codex | Skill | 133k | yesterday | Apache-2.0 | A | 113 | Codex |
| playwright-climicrosoft/playwright | Skill | 99k | yesterday | Apache-2.0 | A | 19 | Claude Code |
| local-ai-agentsmicrosoft/ai-agents-for-beginners | Skill | 79k | 4d ago | MIT | A | 200 | Claude Code, Codex |
| systematic-debuggingobra/superpowers | Skill | 313k | 3d ago | MIT | A | 21 | Claude Code |
| next-cache-components-adoptionvercel/next.js | Skill | 143k | yesterday | MIT | A | 95 | Claude Code |
| next-partial-prefetching-adoptionvercel/next.js | Skill | 143k | yesterday | MIT | A | 103 | Claude Code |