Skip to main content
ElevenLabs Documentation Docs

Search documentation

Type to search this documentation.

On this pageOverview

ElevenLabs CLI

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.

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

Homebrew (macOS)

Homebrew (macOS)
brew install elevenlabs/tap/elevenlabs

Scoop (Windows)

Scoop (Windows)
scoop bucket add elevenlabs https://github.com/elevenlabs/scoop-bucket
scoop install elevenlabs

npm

npm
npm install -g @elevenlabs/cli

curl

curl
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/elevenlabs/cli/releases/latest/download/elevenlabs-cli-installer.sh | sh

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

Bash
elevenlabs agents init

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

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.

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

This creates a new agent configuration using the assistant template.

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

Login
elevenlabs auth login

Logout

Logout
elevenlabs auth logout

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:

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.

List available templates

List available templates
elevenlabs agents templates list

Show template configuration

Show template configuration
elevenlabs agents templates show <template>

Keep your local configurations synchronized with the ElevenLabs platform:

Push all agents

Push all agents
elevenlabs agents push

Preview changes (dry run)

Preview changes (dry run)
elevenlabs agents push --dry-run

Check agent status

Check agent status
elevenlabs agents status

Import existing agents

Import existing agents
elevenlabs agents pull

Import specific agent

Import specific agent
elevenlabs agents pull --agent <agent_id>

Update agents

Update agents
elevenlabs agents pull --update

List all agents

List all agents
elevenlabs agents list

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