Agent skill

Agents

by tadaspetra in tadaspetra/loop

Build voice AI agents with ElevenLabs. An agent skill from tadaspetra/loop.

MITAuto-check passedAI & LLM Engineering

Install Agents

skills CLI
$ npx skills add tadaspetra/loop --skill agents -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tadaspetra/loop agents --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tadaspetra/loop.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/agents .claude/skills/agents && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
agents
GitHub stars
296
Used in
1 other repo
Token cost
~2.5k tokens
SKILL.md length
280 words
Files
6 (incl. references)
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Build voice AI agents with ElevenLabs. An agent skill from tadaspetra/loop.

  • Creating voice assistants
  • SKILL.md covers Quick Start with CLI, Starting Conversations, Configuration and Tools, plus 5 more sections
  • Calls curl and npm; reaches api.elevenlabs.io and unpkg.com; needs ELEVENLABS_API_KEY
  • Customer service bots

What it does

Agents is an agent skill from tadaspetra/loop. Build voice AI agents with ElevenLabs. Use when creating voice assistants, customer service bots, interactive voice characters, or any real-time voice conversation experience.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/agent-configuration.md`, `references/client-tools.md` and `references/installation.md`). Compatibility notes: Requires internet access and an ElevenLabs API key (ELEVENLABSAPIKEY).

It sits in AI & LLM Engineering, covering Text to speech and voice, Speech recognition and synthesis and Customer support. It works with ElevenLabs, OpenAI, JavaScript and Python. The repository describes itself as: Record, Cut, Edit, Render with AI. The licence is MIT.

When your agent uses it

  • Creating voice assistants
  • Customer service bots
  • Interactive voice characters
  • Any real-time voice conversation experience

Example prompts

  • “/agents”

Requirements

  • Python 3
  • Node.js
  • A credential in ELEVENLABS_API_KEY
  • Compatibility (from SKILL.md): Requires internet access and an ElevenLabs API key (ELEVENLABS_API_KEY).

What it can do on your machine

Read from SKILL.md and the folder at commit 452e950. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.elevenlabs.io
    • unpkg.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • ELEVENLABS_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires internet access and an ElevenLabs API key (ELEVENLABS_API_KEY).

    From compatibility in the SKILL.md frontmatter.

Context cost

Agents loads about 2.5k tokens when it runs, and up to ~16k if it reads all its reference files. Until then it costs about 46 tokens; SKILL.md has 280 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~46
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~16k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from tadaspetra/loop at commit 452e950, republished under its MIT licence (© tadaspetra). 280 words, ~2,475 tokens.

Download SKILL.mdSave it as .claude/skills/agents/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
agents
description
Build voice AI agents with ElevenLabs. Use when creating voice assistants, customer service bots, interactive voice characters, or any real-time voice conversation experience.
compatibility
Requires internet access and an ElevenLabs API key (ELEVENLABS_API_KEY).
license
MIT

ElevenLabs Agents Platform

Build voice AI agents with natural conversations, multiple LLM providers, custom tools, and easy web embedding.

Setup: See Installation Guide for CLI and SDK setup.

Quick Start with CLI

The ElevenLabs CLI is the recommended way to create and manage agents:

bash
# Install CLI and authenticate
npm install -g @elevenlabs/cli
elevenlabs auth login

# Initialize project and create an agent
elevenlabs agents init
elevenlabs agents add "My Assistant" --template complete

# Push to ElevenLabs platform
elevenlabs agents push

Available templates: complete, minimal, voice-only, text-only, customer-service, assistant

Python
python
from elevenlabs import ElevenLabs

client = ElevenLabs()

agent = client.conversational_ai.agents.create(
    name="My Assistant",
    conversation_config={
        "agent": {
            "first_message": "Hello! How can I help?",
            "language": "en",
            "prompt": {
                "prompt": "You are a helpful assistant. Be concise and friendly.",
                "llm": "gemini-2.0-flash",
                "temperature": 0.7
            }
        },
        "tts": {"voice_id": "JBFqnCBsd6RMkjVDRZzb"}
    }
)
JavaScript
javascript
import { ElevenLabsClient } from '@elevenlabs/elevenlabs-js';
const client = new ElevenLabsClient();

const agent = await client.conversationalAi.agents.create({
  name: 'My Assistant',
  conversationConfig: {
    agent: {
      firstMessage: 'Hello! How can I help?',
      language: 'en',
      prompt: {
        prompt: 'You are a helpful assistant.',
        llm: 'gemini-2.0-flash',
        temperature: 0.7
      }
    },
    tts: { voiceId: 'JBFqnCBsd6RMkjVDRZzb' }
  }
});
cURL
bash
curl -X POST "https://api.elevenlabs.io/v1/convai/agents/create" \
  -H "xi-api-key: $ELEVENLABS_API_KEY" -H "Content-Type: application/json" \
  -d '{"name": "My Assistant", "conversation_config": {"agent": {"first_message": "Hello!", "language": "en", "prompt": {"prompt": "You are helpful.", "llm": "gemini-2.0-flash"}}, "tts": {"voice_id": "JBFqnCBsd6RMkjVDRZzb"}}}'

Starting Conversations

Server-side (Python): Get signed URL for client connection:

python
signed_url = client.conversational_ai.conversations.get_signed_url(agent_id="your-agent-id")

Client-side (JavaScript):

javascript
import { Conversation } from '@elevenlabs/client';

const conversation = await Conversation.startSession({
  agentId: 'your-agent-id',
  onMessage: (msg) => console.log('Agent:', msg.message),
  onUserTranscript: (t) => console.log('User:', t.message),
  onError: (e) => console.error(e)
});

React Hook:

typescript
import { useConversation } from '@elevenlabs/react';

const conversation = useConversation({ onMessage: (msg) => console.log(msg) });
// Get signed URL from backend, then:
await conversation.startSession({ signedUrl: token });

Configuration

ProviderModels
OpenAIgpt-5, gpt-5-mini, gpt-5-nano, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-4o, gpt-4o-mini, gpt-4-turbo
Anthropicclaude-sonnet-4-5, claude-sonnet-4, claude-haiku-4-5, claude-3-7-sonnet, claude-3-5-sonnet, claude-3-haiku
Googlegemini-3-pro-preview, gemini-3-flash-preview, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.0-flash, gemini-2.0-flash-lite
ElevenLabsglm-45-air-fp8, qwen3-30b-a3b, gpt-oss-120b
Customcustom-llm (bring your own endpoint)

Popular voices: JBFqnCBsd6RMkjVDRZzb (George), EXAVITQu4vr4xnSDxMaL (Sarah), onwK4e9ZLuTAKqWW03F9 (Daniel), XB0fDUnXU5powFXDhCwa (Charlotte)

Turn eagerness: patient (waits longer for user to finish), normal, or eager (responds quickly)

See Agent Configuration for all options.

Tools

Extend agents with webhook, client, or built-in system tools. Tools are defined inside conversation_config.agent.prompt:

python
"prompt": {
    "prompt": "You are a helpful assistant that can check the weather.",
    "llm": "gemini-2.0-flash",
    "tools": [
        # Webhook: server-side API call
        {"type": "webhook", "name": "get_weather", "description": "Get weather",
         "api_schema": {"url": "https://api.example.com/weather", "method": "POST",
             "request_body_schema": {"type": "object", "properties": {"location": {"type": "string"}}, "required": ["location"]}}},
        # Client: runs in the browser
        {"type": "client", "name": "show_product", "description": "Display a product",
         "parameters": {"type": "object", "properties": {"productId": {"type": "string"}}, "required": ["productId"]}}
    ],
    "built_in_tools": {
        "end_call": {},
        "transfer_to_number": {"transfers": [{"transfer_destination": {"type": "phone", "phone_number": "+1234567890"}, "condition": "User asks for human support"}]}
    }
}

Client tools run in browser:

javascript
clientTools: {
  show_product: async ({ productId }) => {
    document.getElementById('product').src = `/products/${productId}`;
    return { success: true };
  };
}

See Client Tools Reference for complete documentation.

Widget Embedding

html
<elevenlabs-convai agent-id="your-agent-id"></elevenlabs-convai>
<script
  src="https://unpkg.com/@elevenlabs/convai-widget-embed"
  async
  type="text/javascript"
></script>

Customize with attributes: avatar-image-url, action-text, start-call-text, end-call-text.

See Widget Embedding Reference for all options.

Outbound Calls

Make outbound phone calls using your agent via Twilio integration:

Python
python
response = client.conversational_ai.twilio.outbound_call(
    agent_id="your-agent-id",
    agent_phone_number_id="your-phone-number-id",
    to_number="+1234567890"
)
print(f"Call initiated: {response.conversation_id}")
JavaScript
javascript
const response = await client.conversationalAi.twilio.outboundCall({
  agentId: 'your-agent-id',
  agentPhoneNumberId: 'your-phone-number-id',
  toNumber: '+1234567890'
});
cURL
bash
curl -X POST "https://api.elevenlabs.io/v1/convai/twilio/outbound-call" \
  -H "xi-api-key: $ELEVENLABS_API_KEY" -H "Content-Type: application/json" \
  -d '{"agent_id": "your-agent-id", "agent_phone_number_id": "your-phone-number-id", "to_number": "+1234567890"}'

See Outbound Calls Reference for configuration overrides and dynamic variables.

Managing Agents

bash
# List agents and check status
elevenlabs agents list
elevenlabs agents status

# Import agents from platform to local config
elevenlabs agents pull                      # Import all agents
elevenlabs agents pull --agent <agent-id>   # Import specific agent

# Push local changes to platform
elevenlabs agents push              # Upload configurations
elevenlabs agents push --dry-run    # Preview changes first

# Add tools
elevenlabs tools add-webhook "Weather API"
elevenlabs tools add-client "UI Tool"
Project Structure

The CLI creates a project structure for managing agents:

your_project/
├── agents.json       # Agent definitions
├── tools.json        # Tool configurations
├── tests.json        # Test configurations
├── agent_configs/    # Individual agent configs
├── tool_configs/     # Individual tool configs
└── test_configs/     # Individual test configs
SDK Examples
python
# List
agents = client.conversational_ai.agents.list()

# Get
agent = client.conversational_ai.agents.get(agent_id="your-agent-id")

# Update (partial - only include fields to change)
client.conversational_ai.agents.update(agent_id="your-agent-id", name="New Name")
client.conversational_ai.agents.update(agent_id="your-agent-id",
    conversation_config={
        "agent": {"prompt": {"prompt": "New instructions", "llm": "claude-sonnet-4"}}
    })

# Delete
client.conversational_ai.agents.delete(agent_id="your-agent-id")

See Agent Configuration for all configuration options and SDK examples.

Error Handling

python
try:
    agent = client.conversational_ai.agents.create(...)
except Exception as e:
    print(f"API error: {e}")

Common errors: 401 (invalid key), 404 (not found), 422 (invalid config), 429 (rate limit)

References

© tadaspetra, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (references) in .agents/skills/agents of tadaspetra/loop.

  • SKILL.md
  • references/agent-configuration.md
  • references/client-tools.md
  • references/installation.md
  • references/outbound-calls.md
  • references/widget-embedding.md

Open the folder on GitHubat commit 452e950

Used in 1 other repository

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in tadaspetra/loop, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Agents next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Agents compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Agents this skilltadaspetra/loop2961 repos~2.5kAutomated safety check: PassMIT
Agentselevenlabs/skills481—~6.5kAutomated safety check: PassMIT
Speech Engineelevenlabs/skills481—~2.5kAutomated safety check: WarnMIT
Voice AI Developmentmajiayu000/claude-skill-registry6663 repos~4.4kAutomated safety check: PassMIT
Voice AIcoco-research/coco482—~2.9kAutomated safety check: PassCustom licence
Local AI Useamd/skills398—~5kAutomated safety check: NotesMIT

Similar skills

  • Agents

    elevenlabs/skills

    Build voice AI agents with ElevenLabs. An agent skill from elevenlabs/skills.

    481 GitHub stars~6.5k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Speech Engine

    elevenlabs/skills

    Add real-time voice conversations to a custom agent runtime with ElevenLabs Speech Engine.

    481 GitHub stars~2.5k tokensUpdated yesterday
    Media & CreativeAuto-check: warnings
  • Voice AI Development

    majiayu000/claude-skill-registry

    Expert in building voice AI applications - from real-time voice agents to voice-enabled apps.

    666 GitHub starsUsed in 3 repos~4.4k tokens
    AI & LLM EngineeringAuto-check passed
  • Voice AI

    coco-research/coco

    Voice AI architecture and implementation guide. An agent skill from coco-research/coco.

    482 GitHub stars~2.9k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Local AI Use

    amd/skills

    Makes this agent generate images, transcribe audio, and synthesize speech on the user's own machine through a local Lemonade Server instead of a paid cloud API.

    398 GitHub stars~5k tokensUpdated today
    Media & CreativeAuto-check: notes
  • Voice AI Development

    davila7/claude-code-templates

    Expert in building voice AI applications - from real-time voice agents to voice-enabled apps.

    32k GitHub starsUsed in 6 repos~2.1k tokens
    Media & CreativeAuto-check passed

More from tadaspetra/loop

  • Music

    tadaspetra/loop

    Generate music using ElevenLabs Music API. An agent skill from tadaspetra/loop.

    296 GitHub starsUsed in 3 repos~827 tokens
    Auto-check passed
  • Speech To Text

    tadaspetra/loop

    Transcribe audio to text using ElevenLabs Scribe v2. An agent skill from tadaspetra/loop.

    296 GitHub starsUsed in 3 repos~2k tokens
    Auto-check passed
  • Sound Effects

    tadaspetra/loop

    Generate sound effects from text descriptions using ElevenLabs.

    296 GitHub starsUsed in 2 repos~1.1k tokens
    Auto-check passed

Questions about Agents

What does Agents do?

Build voice AI agents with ElevenLabs. An agent skill from tadaspetra/loop. Agents is an agent skill from tadaspetra/loop. Build voice AI agents with ElevenLabs.

When should I use Agents?

Agents fits situations like: creating voice assistants; customer service bots; interactive voice characters; any real-time voice conversation experience.

How do I install Agents in Claude Code?

Run `npx skills add tadaspetra/loop --skill agents -a claude-code`. Or copy the skill folder (.agents/skills/agents in tadaspetra/loop) into .claude/skills/agents in your project. Claude Code loads it when a task matches its description.

How do I install Agents in Codex?

Run `npx skills add tadaspetra/loop --skill agents -a codex`. Or copy the skill folder (.agents/skills/agents in tadaspetra/loop) into .agents/skills/agents in your project. Codex loads it when a task matches its description.

Can I use Agents in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tadaspetra/loop --skill agents -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agents, .gemini/skills/agents, .github/skills/agents and .opencode/skills/agents in your project.

What does Agents need to run?

Going by SKILL.md and its folder, Agents needs the command-line tools its instructions call (curl and npm) and credentials named ELEVENLABS_API_KEY. Our summary lists: Python 3; Node.js; A credential in ELEVENLABS_API_KEY. Compatibility (from SKILL.md): Requires internet access and an ElevenLabs API key (ELEVENLABS_API_KEY)..

Does Agents access the network?

SKILL.md names 2 domains. In commands or code: api.elevenlabs.io and unpkg.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Agents safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Agents use?

Agents is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Agents use?

About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 14k tokens, read only when the agent opens those files.

What are the alternatives to Agents?

Skills that share tags, products or a category with Agents: Agents (elevenlabs/skills, 481 stars), Speech Engine (elevenlabs/skills, 481 stars), Voice AI Development (majiayu000/claude-skill-registry, 666 stars) and Voice AI (coco-research/coco, 482 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Agents?

tadaspetra (a GitHub user) maintains it in tadaspetra/loop, which has 296 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 2, 2026.

Source: tadaspetra/loop on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.