ElevenLabs CLI

Manage your voice agents as code from your command line.

Overview

The ElevenLabs CLI allows you to access your ElevenLabs agents from your terminal, unlocking new ways to manage them:

  • Store agents as code in your version control system
  • Set up CI/CD integration to automatically deploy your agents
  • Let your coding agent access and manage your voice agents
Prefer to jump straight to the code?

Find the complete source code and contribute on GitHub.

No install required

If you work from Claude or another MCP client, the hosted MCP server offers agent management tools with no local installation. Use the CLI when you want agents in version control; use the hosted MCP server for conversational management.

Installation

Homebrew (macOS) and Scoop (Windows) are the recommended install methods and ship a standalone binary.

$brew install elevenlabs/tap/elevenlabs

Working with an AI coding assistant? Run elevenlabs generate-skills in your project to write a SKILL.md for every command group into skills/, so your assistant knows the CLI’s full surface without you pasting docs. Use --output-dir to put them elsewhere. This reads the CLI’s own embedded API definition, so it needs no API key and works offline — and it stays in step with whichever CLI version you have installed.

After installation, the elevenlabs command will be available globally in your terminal.

Quick start

1

Initialize a new project

$elevenlabs agents init

This creates the project structure with configuration directories and registry files.

2

Authenticate with ElevenLabs

$elevenlabs auth login

This will open up a browser window to authenticate via OAuth. The CLI will verify the credentials and store them securely.

3

Create your first agent

$elevenlabs agents add "My Assistant" --template assistant

This creates a new agent configuration using the assistant template.

4

Push to ElevenLabs platform

$elevenlabs agents push

This uploads your local agent configuration to the ElevenLabs platform.

Project structure

The CLI creates a structured project directory:

your_project/
├── agents.json # Central agent configuration registry
├── tools.json # Tool definitions registry
├── tests.json # Test definitions registry
├── agent_configs/ # Agent configuration files
├── tool_configs/ # Tool configuration files
└── test_configs/ # Test configuration files

Authentication

elevenlabs auth login stores credentials in your operating system’s keyring — Keychain on macOS, Credential Manager on Windows, and the Secret Service on Linux. Where no keyring is available, the CLI falls back to ~/.config/elevenlabs/auth-keyring.json with 0600 permissions. Run elevenlabs auth status to see which source is in use, and elevenlabs auth logout to remove the stored entry.

For CI, set ELEVENLABS_API_KEY in the environment or a .env file instead of logging in.

Authentication commands

$elevenlabs auth login

Agent management

Creating agents

Create agents using pre-built templates:

$elevenlabs agents add "Agent Name" [options]

Options:

  • --template <type>: Choose from available templates (default: default)
  • --skip-upload: Create locally without uploading to platform

Example:

$elevenlabs agents add "Customer Support Bot" --template customer-service

Templates

The CLI provides six pre-built templates for common use cases:

Complete configuration with all available fields, sensible defaults, full voice/text support, widget customization, and evaluation criteria.

Essential fields only including basic prompt, language, TTS, and conversation settings.

Optimized for voice interactions with disabled text input and advanced voice settings.

Text-focused conversations with disabled voice features.

Professional empathetic prompts, low temperature (0.1), 30-minute duration, and evaluation criteria.

General-purpose AI assistant with balanced creativity (temperature 0.3) and versatile voice/text support.

Template commands

$elevenlabs agents templates list

Synchronization

Keep your local configurations synchronized with the ElevenLabs platform:

$elevenlabs agents push

Status and monitoring

Check agent status
$elevenlabs agents status

Import and export

$elevenlabs agents pull

By default, elevenlabs agents pull skips agents that already exist locally. Use the --update flag to override local configurations with remote changes made in the browser or via the API.

Tool management

The CLI supports two types of tools for extending agent capabilities:

Webhook tools

HTTP API integrations with authentication and timeout configuration:

$elevenlabs tools add "API Integration" --type "webhook" --config-path ./config.json

Client tools

Direct client-side integrations:

$elevenlabs tools add "Client Function" --type "client" --config-path ./config.json

Widget generation

Generate HTML embed code for web integration:

$elevenlabs agents widget <agent_id>

This outputs HTML code like:

1<elevenlabs-convai agent-id="agent_id_here"></elevenlabs-convai>
2<script src="https://unpkg.com/@elevenlabs/convai-widget-embed" async></script>

Configuration files

Agent configuration structure

Each agent configuration includes:

1{
2 "name": "Agent Name",
3 "conversation_config": {
4 "agent": {
5 "language": "en",
6 "prompt": {
7 "prompt": "You are a helpful AI assistant.",
8 "llm": "gemini-2.5-flash",
9 "temperature": 0.0
10 }
11 },
12 "tts": {
13 "model_id": "eleven_turbo_v2",
14 "voice_id": "cjVigY5qzO86Huf0OWal",
15 "agent_output_audio_format": "pcm_16000"
16 },
17 "asr": {
18 "provider": "scribe_realtime",
19 "quality": "high",
20 "user_input_audio_format": "pcm_16000"
21 },
22 "conversation": {
23 "text_only": false,
24 "max_duration_seconds": 600,
25 "client_events": ["audio", "interruption"]
26 }
27 },
28 "platform_settings": {
29 "widget": {
30 "variant": "full",
31 "placement": "bottom-right"
32 }
33 },
34 "tags": []
35}

CI/CD pipeline integration

1# In your GitHub Actions workflow
2- name: Deploy ElevenAgents agents
3 run: |
4 npm install -g @elevenlabs/cli
5 export ELEVENLABS_API_KEY=${{ secrets.ELEVENLABS_API_KEY }}
6 elevenlabs agents push --dry-run # Preview changes
7 elevenlabs agents push # Deploy
8 elevenlabs agents status # Verify deployment