Skip to main content
ElevenLabs Documentation Docs
current

Search documentation

Type to search this documentation.

On this pageOverview

ElevenLabs CLI

Manage your voice agents as code from your command line.

https://www.youtube-nocookie.com/embed/MuORAEVtJIQ?rel=0

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

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

Homebrew (macOS)
brew install elevenlabs/tap/elevenlabs
Scoop (Windows)
scoop bucket add elevenlabs https://github.com/elevenlabs/scoop-bucket
scoop install elevenlabs
npm
npm install -g @elevenlabs/cli
curl
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/elevenlabs/cli/releases/latest/download/elevenlabs-cli-installer.sh | sh

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.

Bash
brew install elevenlabs/tap/elevenlabs

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

  1. Initialize a new project

    Bash
    elevenlabs agents init

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

  2. Authenticate with ElevenLabs

    Bash
    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

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

    This creates a new agent configuration using the assistant template.

  4. Push to ElevenLabs platform

    Bash
    elevenlabs agents push

    This uploads your local agent configuration to the ElevenLabs platform.

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

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.

Login
elevenlabs auth login
Logout
elevenlabs auth logout
Bash
elevenlabs auth login

Create agents using pre-built templates:

Bash
elevenlabs agents add "Agent Name" [options]

Options:

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

Example:

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

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

default

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

minimal

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

voice-only

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

text-only

Text-focused conversations with disabled voice features.

customer-service

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

assistant

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

List available templates
elevenlabs agents templates list
Show template configuration
elevenlabs agents templates show <template>
Bash
elevenlabs agents templates list

Keep your local configurations synchronized with the ElevenLabs platform:

Push all agents
elevenlabs agents push
Preview changes (dry run)
elevenlabs agents push --dry-run
Bash
elevenlabs agents push

Check agent status

Bash
elevenlabs agents status
Import existing agents
elevenlabs agents pull
Import specific agent
elevenlabs agents pull --agent <agent_id>
Update agents
elevenlabs agents pull --update
List all agents
elevenlabs agents list

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.

Bash
elevenlabs agents pull

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

HTTP API integrations with authentication and timeout configuration:

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

Direct client-side integrations:

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

Generate HTML embed code for web integration:

Bash
elevenlabs agents widget embed <agent_id>

This outputs HTML code like:

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

Each agent configuration includes:

JSON
{
  "name": "Agent Name",
  "conversation_config": {
    "agent": {
      "language": "en",
      "prompt": {
        "prompt": "You are a helpful AI assistant.",
        "llm": "gemini-2.5-flash",
        "temperature": 0.0
      }
    },
    "tts": {
      "model_id": "eleven_turbo_v2",
      "voice_id": "cjVigY5qzO86Huf0OWal",
      "agent_output_audio_format": "pcm_16000"
    },
    "asr": {
      "provider": "scribe_realtime",
      "quality": "high",
      "user_input_audio_format": "pcm_16000"
    },
    "conversation": {
      "text_only": false,
      "max_duration_seconds": 600,
      "client_events": ["audio", "interruption"]
    }
  },
  "platform_settings": {
    "widget": {
      "variant": "full",
      "placement": "bottom-right"
    }
  },
  "tags": []
}
YAML
# In your GitHub Actions workflow
- name: Deploy ElevenAgents agents
  run: |
    npm install -g @elevenlabs/cli
    export ELEVENLABS_API_KEY=${{ secrets.ELEVENLABS_API_KEY }}
    elevenlabs agents push --dry-run  # Preview changes
    elevenlabs agents push            # Deploy
    elevenlabs agents status          # Verify deployment
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu