Skillshub exa-install-auth
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/jeremylongshore/claude-code-plugins-plus-skills/exa-install-auth" ~/.claude/skills/comeonoliver-skillshub-exa-install-auth && rm -rf "$T"
manifest:
skills/jeremylongshore/claude-code-plugins-plus-skills/exa-install-auth/SKILL.mdsource content
Exa Install & Auth
Overview
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.
Prerequisites
- Node.js 18+ or Python 3.10+
- Package manager (npm, pnpm, yarn, or pip)
- Exa account at dashboard.exa.ai
- API key from the Exa dashboard
Instructions
Step 1: Install the SDK
Node.js (exa-js)
set -euo pipefail npm install exa-js # or pnpm add exa-js
Python (exa-py)
pip install exa-py
Step 2: Configure the API Key
# 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
Step 3: Initialize the Client
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"])
Step 4: Verify Connection
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();
Output
orexa-js
installed in project dependenciesexa-py
environment variable configuredEXA_API_KEY
added to.env.gitignore- Successful search result confirming connectivity
Error Handling
| Error | HTTP Code | Cause | Solution |
|---|---|---|---|
| 401 | Missing or invalid API key | Verify key at dashboard.exa.ai |
| 402 | Account balance exhausted | Top up credits in dashboard |
| N/A | SDK not installed | Run |
| N/A | Network unreachable | Check internet connectivity |
| 402 | Spending limit reached | Increase budget in dashboard |
Examples
With dotenv (Node.js)
import "dotenv/config"; import Exa from "exa-js"; const exa = new Exa(process.env.EXA_API_KEY);
With Validation
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); }
Resources
Next Steps
After successful auth, proceed to
exa-hello-world for your first search.