From algolia-pack
Installs Algolia JavaScript v5 client, configures API keys via env vars, and initializes backend/frontend clients in Node.js/TypeScript projects.
How this skill is triggered — by the user, by Claude, or both
Slash command
/algolia-pack:algolia-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
Set up the `algoliasearch` v5 JavaScript client with Application ID and API key authentication. Algolia uses a two-key system: an **Application ID** (identifies your app) and an **API key** (controls permissions). Every Algolia account has three default keys: Search-Only, Admin, and Monitoring.
Set up the algoliasearch v5 JavaScript client with Application ID and API key authentication. Algolia uses a two-key system: an Application ID (identifies your app) and an API key (controls permissions). Every Algolia account has three default keys: Search-Only, Admin, and Monitoring.
# Full client (Search + Analytics + Recommend + A/B Testing + Personalization)
npm install algoliasearch
# Or search-only (lighter bundle, frontend use)
npm install algoliasearch # then import { liteClient } from 'algoliasearch/lite'
# Or individual API clients if you only need one
npm install @algolia/client-search
npm install @algolia/client-analytics
npm install @algolia/recommend
# .env (NEVER commit — add to .gitignore)
ALGOLIA_APP_ID=YourApplicationID
ALGOLIA_ADMIN_KEY=your_admin_api_key
ALGOLIA_SEARCH_KEY=your_search_only_api_key
# .gitignore
.env
.env.local
.env.*.local
Key types and when to use them:
| Key Type | ACL Permissions | Use In |
|---|---|---|
| Search-Only | search | Frontend, mobile apps |
| Admin | All operations | Backend only, never expose |
| Monitoring | GET /1/status | Health checks |
| Custom | You define ACL | Scoped backend services |
// src/algolia/client.ts
import { algoliasearch } from 'algoliasearch';
// Backend — Admin client for indexing operations
const client = algoliasearch(
process.env.ALGOLIA_APP_ID!,
process.env.ALGOLIA_ADMIN_KEY!
);
// Frontend — Search-only client (safe to expose)
import { liteClient } from 'algoliasearch/lite';
const searchClient = liteClient(
process.env.NEXT_PUBLIC_ALGOLIA_APP_ID!,
process.env.NEXT_PUBLIC_ALGOLIA_SEARCH_KEY!
);
// Quick verification: list indices
async function verifyAlgoliaConnection() {
try {
const { items } = await client.listIndices();
console.log(`Connected. Found ${items.length} indices.`);
return true;
} catch (error) {
console.error('Algolia connection failed:', error);
return false;
}
}
await verifyAlgoliaConnection();
| Error | HTTP Code | Cause | Solution |
|---|---|---|---|
Invalid Application-ID or API key | 403 | Wrong App ID or key | Copy fresh values from dashboard > Settings > API Keys |
Index does not exist | 404 | Querying non-existent index | Create index first with saveObjects |
Method not allowed | 405 | Search-only key used for write op | Use Admin key for indexing operations |
RetryError: Unreachable hosts | N/A | Network/DNS issue | Check firewall allows *.algolia.net and *.algolianet.com |
Record quota exceeded | 429 | Plan limit hit | Upgrade plan or delete unused records |
// src/algolia/client.ts
import { algoliasearch, type Algoliasearch } from 'algoliasearch';
let _client: Algoliasearch | null = null;
export function getAlgoliaClient(): Algoliasearch {
if (!_client) {
const appId = process.env.ALGOLIA_APP_ID;
const apiKey = process.env.ALGOLIA_ADMIN_KEY;
if (!appId || !apiKey) {
throw new Error('Missing ALGOLIA_APP_ID or ALGOLIA_ADMIN_KEY env vars');
}
_client = algoliasearch(appId, apiKey);
}
return _client;
}
import { algoliasearch } from 'algoliasearch';
// Generate a secured API key that restricts search to specific filters
const client = algoliasearch(appId, adminKey);
const securedKey = client.generateSecuredApiKey({
parentApiKey: searchOnlyKey,
restrictions: {
filters: 'tenant_id:acme_corp',
validUntil: Math.floor(Date.now() / 1000) + 3600, // 1 hour
restrictIndices: ['products_acme'],
},
});
After successful auth, proceed to algolia-hello-world for your first index and search.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin algolia-packProvides expert patterns for Algolia search implementation, including React InstantSearch hooks, indexing strategies, relevance tuning, and Next.js SSR integration.
Deploys Algolia-powered apps to Vercel, Fly.io, and Cloud Run with secure API key management and InstantSearch frontend integration.
Provides expert patterns for Algolia search implementation, indexing strategies, React InstantSearch hooks, relevance tuning, and Next.js SSR integration.