CtrlK
BlogDocsLog inGet started
Tessl Logo

exa-install-auth

Install the exa-js SDK and configure API key authentication. Use when setting up a new Exa integration, configuring API keys, or initializing Exa in a Node.js/Python project. Trigger with phrases like "install exa", "setup exa", "exa auth", "configure exa API key", "exa-js".

85

Quality

83%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

SKILL.md
Quality
Evals
Security

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

  • exa-js or exa-py installed in project dependencies
  • EXA_API_KEY environment variable configured
  • .env added to .gitignore
  • Successful search result confirming connectivity

Error Handling

ErrorHTTP CodeCauseSolution
INVALID_API_KEY401Missing or invalid API keyVerify key at dashboard.exa.ai
NO_MORE_CREDITS402Account balance exhaustedTop up credits in dashboard
MODULE_NOT_FOUNDN/ASDK not installedRun npm install exa-js
ENOTFOUNDN/ANetwork unreachableCheck internet connectivity
API_KEY_BUDGET_EXCEEDED402Spending limit reachedIncrease 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.

Repository
jeremylongshore/claude-code-plugins-plus-skills
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.