Claude-skill-registry exa-local-dev-loop
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/exa-local-dev-loop" ~/.claude/skills/majiayu000-claude-skill-registry-exa-local-dev-loop-222d5f && rm -rf "$T"
manifest:
skills/data/exa-local-dev-loop/SKILL.mdsource content
Exa Local Dev Loop
Overview
Set up a fast, reproducible local development workflow for Exa.
Prerequisites
- Completed
setupexa-install-auth - Node.js 18+ with npm/pnpm
- Code editor with TypeScript support
- Git for version control
Instructions
Step 1: Create Project Structure
my-exa-project/ ├── src/ │ ├── exa/ │ │ ├── client.ts # Exa client wrapper │ │ ├── config.ts # Configuration management │ │ └── utils.ts # Helper functions │ └── index.ts ├── tests/ │ └── exa.test.ts ├── .env.local # Local secrets (git-ignored) ├── .env.example # Template for team └── package.json
Step 2: Configure Environment
# Copy environment template cp .env.example .env.local # Install dependencies npm install # Start development server npm run dev
Step 3: Setup Hot Reload
{ "scripts": { "dev": "tsx watch src/index.ts", "test": "vitest", "test:watch": "vitest --watch" } }
Step 4: Configure Testing
import { describe, it, expect, vi } from 'vitest'; import { ExaClient } from '../src/exa/client'; describe('Exa Client', () => { it('should initialize with API key', () => { const client = new ExaClient({ apiKey: 'test-key' }); expect(client).toBeDefined(); }); });
Output
- Working development environment with hot reload
- Configured test suite with mocking
- Environment variable management
- Fast iteration cycle for Exa development
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Module not found | Missing dependency | Run |
| Port in use | Another process | Kill process or change port |
| Env not loaded | Missing .env.local | Copy from .env.example |
| Test timeout | Slow network | Increase test timeout |
Examples
Mock Exa Responses
vi.mock('@exa/sdk', () => ({ ExaClient: vi.fn().mockImplementation(() => ({ // Mock methods here })), }));
Debug Mode
# Enable verbose logging DEBUG=EXA=* npm run dev
Resources
Next Steps
See
exa-sdk-patterns for production-ready code patterns.