From exa-pack
Installs exa-js or exa-py SDK, configures EXA_API_KEY auth, and verifies Exa neural search connectivity in Node.js/Python projects.
How this skill is triggered — by the user, by Claude, or both
Slash command
/exa-pack:exa-install-authThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Install the official Exa SDK and configure API key authentication. Exa is a neural search API at `api.exa.ai` that retrieves web content using semantic similarity. Authentication uses the `x-api-key` header. The SDK is `exa-js` on npm or `exa-py` on PyPI.
Install the official Exa SDK and configure API key authentication. Exa is a neural search API at api.exa.ai that retrieves web content using semantic similarity. Authentication uses the x-api-key header. The SDK is exa-js on npm or exa-py on PyPI.
Node.js (exa-js)
set -euo pipefail
npm install exa-js
# or
pnpm add exa-js
Python (exa-py)
pip install exa-py
# Set environment variable
export EXA_API_KEY="your-api-key-here"
# Or create .env file (add .env to .gitignore first)
echo 'EXA_API_KEY=your-api-key-here' >> .env
Add to .gitignore:
.env
.env.local
.env.*.local
TypeScript
import Exa from "exa-js";
const exa = new Exa(process.env.EXA_API_KEY);
Python
from exa_py import Exa
import os
exa = Exa(api_key=os.environ["EXA_API_KEY"])
import Exa from "exa-js";
const exa = new Exa(process.env.EXA_API_KEY);
async function verifyConnection() {
try {
const result = await exa.search("test connectivity", { numResults: 1 });
console.log("Connected. Results:", result.results.length);
console.log("First result:", result.results[0]?.title);
} catch (err: any) {
if (err.status === 401) {
console.error("Invalid API key. Check EXA_API_KEY.");
} else if (err.status === 402) {
console.error("No credits remaining. Top up at dashboard.exa.ai.");
} else {
console.error("Connection failed:", err.message);
}
}
}
verifyConnection();
exa-js or exa-py installed in project dependenciesEXA_API_KEY environment variable configured.env added to .gitignore| Error | HTTP Code | Cause | Solution |
|---|---|---|---|
INVALID_API_KEY | 401 | Missing or invalid API key | Verify key at dashboard.exa.ai |
NO_MORE_CREDITS | 402 | Account balance exhausted | Top up credits in dashboard |
MODULE_NOT_FOUND | N/A | SDK not installed | Run npm install exa-js |
ENOTFOUND | N/A | Network unreachable | Check internet connectivity |
API_KEY_BUDGET_EXCEEDED | 402 | Spending limit reached | Increase budget in dashboard |
import "dotenv/config";
import Exa from "exa-js";
const exa = new Exa(process.env.EXA_API_KEY);
function createExaClient(): Exa {
const apiKey = process.env.EXA_API_KEY;
if (!apiKey) {
throw new Error(
"EXA_API_KEY not set. Get one at https://dashboard.exa.ai"
);
}
return new Exa(apiKey);
}
After successful auth, proceed to exa-hello-world for your first search.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin exa-packApplies production-ready exa-js SDK patterns: client singletons, typed search wrappers, error handling for TypeScript Exa API integrations.
Installs SerpApi client via pip/npm for Python/Node.js and configures API key authentication. Verifies setup with test search and account check for search scraping.
Installs OpenAI client and configures Perplexity Sonar API authentication for Node.js or Python. Provides env setup and verification scripts.