home / skills / openclaw / skills / elevenlabs-agents

This skill helps you manage ElevenLabs conversational agents, including listing, creating, and syncing agents across local and remote environments.

npx playbooks add skill openclaw/skills --skill elevenlabs-agents

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
4.3 KB
---
name: elevenlabs-agents
description: Create, manage, and deploy ElevenLabs conversational AI agents. Use when the user wants to work with voice agents, list their agents, create new ones, or manage agent configurations.
metadata: {"clawdbot":{"requires":{"bins":["elevenlabs"]}}}
---

# ElevenLabs Agents Management

Manage ElevenLabs conversational AI agents on behalf of the user. Use the `elevenlabs` CLI internally but NEVER expose CLI commands or errors directly to the user.

## Critical Behavior Rules

1. **Hide CLI details**: Never tell users to run commands. Handle everything silently.
2. **Handle errors gracefully**: If a command fails, fix it yourself or explain the situation in user-friendly terms.
3. **Local vs Remote distinction**: Always be clear whether you're showing local (synced) agents or remote (platform) agents.

## Before Any Operation

Run these checks silently before attempting any agent operation:

### 1. Check authentication
```bash
elevenlabs auth whoami
```
If not authenticated, tell the user: "You're not logged into ElevenLabs. I'll need your API key to continue." Then run `elevenlabs auth login` and guide them through it.

### 2. Check project initialization
Look for `agents.json` in the working directory. If missing, silently run:
```bash
elevenlabs agents init
```
Never tell the user about missing `agents.json` - just initialize.

## Operations

### Listing Agents

When user asks to see their agents:

1. First try `elevenlabs agents list` (shows local agents)
2. If no local agents exist, tell user: "You have no local agents synced. Would you like me to pull your agents from ElevenLabs?"
3. If they confirm, run `elevenlabs agents pull` then list again
4. Present results in a clean table/list format, not raw CLI output

### Creating Agents

When user wants to create an agent:

1. Ask for agent name and purpose (don't mention "templates")
2. Based on their description, choose appropriate template:
   - Customer support → `customer-service`
   - General assistant → `assistant`
   - Voice-focused → `voice-only`
   - Simple/minimal → `minimal`
   - Default for unclear cases → `default`
3. Run: `elevenlabs agents add "Name" --template <template>`
4. Inform user the agent was created locally
5. Ask: "Would you like me to deploy this to ElevenLabs now?"
6. If yes, run `elevenlabs agents push`

### Syncing Agents

**Pull (remote → local):**
```bash
elevenlabs agents pull                    # all agents
elevenlabs agents pull --agent <id>       # specific agent
elevenlabs agents pull --update           # overwrite local with remote
```
Tell user: "I've synced your agents from ElevenLabs."

**Push (local → remote):**
```bash
elevenlabs agents push --dry-run  # preview first, check for issues
elevenlabs agents push            # actual push
```
Tell user: "I've deployed your changes to ElevenLabs."

### Checking Status

```bash
elevenlabs agents status
```
Present as: "Here's the sync status of your agents:" followed by a clean summary.

### Adding Tools to Agents

When user wants to add integrations/tools:
1. Ask what the tool should do
2. Ask for the webhook URL or configuration
3. Create config file and run:
```bash
elevenlabs agents tools add "Tool Name" --type webhook --config-path ./config.json
```
4. Push changes: `elevenlabs agents push`

### Getting Embed Code

```bash
elevenlabs agents widget <agent_id>
```
Present the HTML snippet cleanly, explain where to paste it.

## User-Friendly Language

| Instead of saying... | Say... |
|---------------------|--------|
| "Run `elevenlabs auth login`" | "I'll need to connect to your ElevenLabs account." |
| "No agents.json found" | (silently initialize, say nothing) |
| "Push failed" | "I couldn't deploy the changes. Let me check what went wrong..." |
| "You have 0 agents" | "You don't have any agents synced locally. Want me to check ElevenLabs for existing agents?" |
| "Agent created locally" | "I've created your agent. Would you like to deploy it now?" |

## Project Files (internal reference)

After initialization, the working directory contains:
- `agents.json` - Agent registry
- `agent_configs/` - Agent configuration files
- `tools.json` - Tool registry
- `tool_configs/` - Tool configurations

These are implementation details - don't mention them to users unless they specifically ask about project structure.

Overview

This skill manages ElevenLabs conversational voice agents for you: create, list, sync, configure tools, and deploy agents without exposing internal CLI details. It handles authentication checks, local vs remote agent distinctions, and common workflows so you can focus on agent behavior and deployment outcomes. The skill communicates clearly when user input or decisions are required.

How this skill works

The skill inspects the local agent registry and the remote ElevenLabs account to determine sync state, available agents, and deployment status. It performs initialization and reconciliation steps automatically when needed, prepares or updates agent configurations and tool integrations, and can deploy or pull agents on your behalf while presenting results in clean, user-friendly summaries.

When to use it

  • You want a new voice or conversational agent created and configured quickly.
  • You need to list or review agents and understand local vs remote sync status.
  • You want to add a webhook/tool integration to an agent and deploy it.
  • You need to sync agents from ElevenLabs to your workspace or push local changes.
  • You want an embeddable widget snippet for a specific agent to add to a site.

Best practices

  • Provide a clear agent name and a short purpose so I can choose the right template and defaults.
  • Confirm before I overwrite local agents with remote versions or deploy changes to ElevenLabs.
  • Share webhook URLs and integration details when adding tools so I can configure them correctly.
  • Ask for a preview step before pushing big changes; I can run checks and a dry-run first.

Example use cases

  • Create a customer-support voice agent configured for triage and FAQs, then deploy it to ElevenLabs.
  • List currently synced agents and pull remote agents if none are available locally.
  • Add a webhook-based integration to an agent to enable external knowledge lookups or actions.
  • Get the HTML embed snippet for an agent so you can paste it into a documentation or product site.
  • Sync local edits to an agent, run a dry-run deployment preview, then push the changes live.

FAQ

How do I connect my ElevenLabs account?

If you're not connected I will let you know and guide you to provide your API key or complete the connection; I handle the authentication steps for you.

What's the difference between local and remote agents?

Local agents are the copies in your workspace; remote agents live on ElevenLabs. I always clarify which side I'm showing and can sync or reconcile them at your direction.

Can you deploy changes for me?

Yes. I can run a preview to identify issues and then deploy your local changes to ElevenLabs when you confirm.