Build conversational AI voice agents with ElevenLabs Platform. Workflow: configure agent, add tools and knowledge base, integrate SDK, test, deploy. Supports React, React Native, and Swift SDKs. Use when building voice agents, AI phone systems, or troubleshooting @11labs deprecated packages, webhook errors, CSP violations, localhost allowlist, or tool parsing errors.
Builds conversational AI voice agents with ElevenLabs Platform, including tools, knowledge bases, and SDK integration.
npx claudepluginhub jezweb/claude-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/agent-config-schema.jsonassets/ci-cd-example.ymlassets/javascript-sdk-boilerplate.jsassets/react-native-boilerplate.tsxassets/react-sdk-boilerplate.tsxassets/simulation-template.jsonassets/swift-sdk-boilerplate.swiftassets/system-prompt-template.mdassets/widget-embed-template.htmlreferences/api-reference.mdreferences/cli-commands.mdreferences/compliance-guide.mdreferences/cost-optimization.mdreferences/system-prompt-guide.mdreferences/testing-guide.mdreferences/tool-examples.mdreferences/workflow-examples.mdBuild a production-ready conversational AI voice agent. Produces a configured agent with tools, knowledge base, and SDK integration.
npm install @elevenlabs/react # React SDK
npm install @elevenlabs/client # JavaScript SDK (browser + server)
npm install @elevenlabs/react-native # React Native SDK
npm install @elevenlabs/elevenlabs-js # Full API (server only)
npm install -g @elevenlabs/agents-cli # CLI ("Agents as Code")
DEPRECATED: @11labs/react, @11labs/client — uninstall if present.
Server-only warning: @elevenlabs/elevenlabs-js uses Node.js child_process and won't work in browsers. Use @elevenlabs/client for browser environments, or create a proxy server.
Dashboard: https://elevenlabs.io/app/conversational-ai → Create Agent
CLI (Agents as Code):
elevenlabs-cli init my-agent
# Edit agent.config.ts with agent settings
elevenlabs-cli deploy
Configure:
assets/system-prompt-template.mdTools let the agent take actions during conversation:
// Client-side tools (run in browser)
const clientTools = {
navigate: {
description: "Navigate to a page",
parameters: { type: "object", properties: { url: { type: "string" } } },
handler: async ({ url }) => { window.location.href = url; return "Navigated"; }
}
};
// Server-side tools (webhooks)
// Configure in dashboard: Settings → Tools → Add Webhook
See references/tool-examples.md for patterns.
Upload documents for the agent to reference:
React — copy and customise assets/react-sdk-boilerplate.tsx:
import { useConversation } from '@elevenlabs/react';
const { startConversation, stopConversation, status } = useConversation({
agentId: 'your-agent-id',
signedUrl: '/api/elevenlabs/auth',
clientTools,
onEvent: (event) => { /* transcript, agent_response, tool_call */ },
});
React Native — see assets/react-native-boilerplate.tsx
Widget embed — see assets/widget-embed-template.html
Swift — see assets/swift-sdk-boilerplate.swift
# Test locally
elevenlabs-cli test my-agent
# Simulate conversation
elevenlabs-cli simulate my-agent --scenario "Book appointment for tomorrow"
# Deploy
elevenlabs-cli deploy my-agent
Before deploying, run a dry-run first: elevenlabs-cli deploy my-agent --dry-run to review changes.
For conversation simulation, create a JSON test scenario based on assets/simulation-template.json.
Never expose API keys in client code. Use a server endpoint:
// Server endpoint
app.get('/api/elevenlabs/auth', async (req, res) => {
const response = await fetch('https://api.elevenlabs.io/v1/convai/conversation/get-signed-url', {
headers: { 'xi-api-key': process.env.ELEVENLABS_API_KEY },
body: JSON.stringify({ agent_id: 'your-agent-id' }),
method: 'POST'
});
const { signed_url } = await response.json();
res.json({ signed_url });
});
Create version branches for testing different configurations:
Pass user context to the agent's system prompt:
const { startConversation } = useConversation({
agentId: 'your-agent-id',
dynamicVariables: {
user_name: 'John',
account_type: 'premium',
}
});
System prompt references them as {{user_name}}.
assets/react-sdk-boilerplate.tsx — React integration templateassets/react-native-boilerplate.tsx — React Native templateassets/swift-sdk-boilerplate.swift — Swift/iOS templateassets/javascript-sdk-boilerplate.js — Vanilla JS templateassets/widget-embed-template.html — Embeddable widgetassets/system-prompt-template.md — System prompt guideassets/agent-config-schema.json — Config schema referenceassets/ci-cd-example.yml — CI/CD pipeline templatereferences/api-reference.md — Full API endpointsreferences/tool-examples.md — Client and server tool patternsreferences/system-prompt-guide.md — Prompt engineering for agentsreferences/cli-commands.md — CLI referencereferences/workflow-examples.md — End-to-end workflow examplesreferences/testing-guide.md — Testing and simulationreferences/cost-optimization.md — Pricing and optimisationreferences/compliance-guide.md — Data residency and complianceCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.