Skip to content

VapiAI/cli

Repository files navigation

Vapi CLI

The official command-line interface for Vapi - Voice AI for developers.

Features

  • πŸ” Browser-based Authentication - Secure OAuth-style login flow
  • πŸ€– Assistant Management - List, create, update, and delete voice assistants
  • πŸ”„ Workflow Management - Manage visual conversation flows and branching logic
  • πŸ“£ Campaign Management - Create and manage AI phone call campaigns at scale
  • πŸ“ž Call Management - Monitor and control phone calls
  • πŸ”§ Project Integration - Auto-detect and integrate with existing projects
  • πŸš€ Framework Support - React, Vue, Angular, Next.js, Node.js, Python, Go, and more
  • πŸ“¦ SDK Installation - Automatic SDK setup for your project type
  • 🎨 Code Generation - Generate components, hooks, and examples

Installation

From Source

# Clone the repository
git clone https://github.com/VapiAI/cli.git
cd cli

# Install dependencies
make deps

# Build the CLI
make build

# Install to ~/.local/bin
make install

Binary Releases

Coming soon: Pre-built binaries for macOS, Linux, and Windows.

Development Requirements

  • Go 1.21+ - Install Go

  • golangci-lint - For code linting

    # macOS
    brew install golangci-lint
    
    # Linux/Windows
    go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

Usage

Authentication

First, authenticate with your Vapi account:

vapi login

This will open your browser for secure authentication. Your API key will be saved locally.

Assistant Management

# List all assistants
vapi assistant list

# Get assistant details
vapi assistant get <assistant-id>

# Create a new assistant (interactive)
vapi assistant create

# Delete an assistant
vapi assistant delete <assistant-id>

Workflow Management

# List all workflows
vapi workflow list

# Get workflow details
vapi workflow get <workflow-id>

# Create a new workflow (basic)
vapi workflow create

# Delete a workflow
vapi workflow delete <workflow-id>

Note: For visual workflow building with nodes and edges, use the Vapi Dashboard.

Campaign Management

# List all campaigns
vapi campaign list

# Get campaign details
vapi campaign get <campaign-id>

# Create a new campaign
vapi campaign create

# Update/end a campaign
vapi campaign update <campaign-id>

# Delete a campaign
vapi campaign delete <campaign-id>

Note: For advanced campaign features (customer lists, scheduling), use the Vapi Dashboard.

Project Integration

Initialize Vapi in your existing project:

# Auto-detect project type and set up Vapi
vapi init

# Initialize in a specific directory
vapi init /path/to/project

The init command will:

  • Detect your project framework/language
  • Install the appropriate Vapi SDK
  • Generate example code and components
  • Create environment configuration templates

Configuration

# View current configuration
vapi config get

# Set configuration values
vapi config set <key> <value>

# List all configuration options
vapi config list

Project Structure

cli/
β”œβ”€β”€ cmd/                    # Command implementations
β”‚   β”œβ”€β”€ root.go            # Main CLI setup
β”‚   β”œβ”€β”€ assistant.go       # Assistant commands
β”‚   β”œβ”€β”€ workflow.go        # Workflow commands
β”‚   β”œβ”€β”€ campaign.go        # Campaign commands
β”‚   β”œβ”€β”€ call.go           # Call commands
β”‚   β”œβ”€β”€ config.go         # Configuration commands
β”‚   β”œβ”€β”€ init.go           # Project initialization
β”‚   └── login.go          # Authentication
β”œβ”€β”€ pkg/                   # Core packages
β”‚   β”œβ”€β”€ auth/             # Authentication logic
β”‚   β”œβ”€β”€ client/           # Vapi API client
β”‚   β”œβ”€β”€ config/           # Configuration management
β”‚   β”œβ”€β”€ integrations/     # Framework integrations
β”‚   └── output/           # Output formatting
β”œβ”€β”€ build/                # Build artifacts (git-ignored)
β”œβ”€β”€ main.go              # Entry point
β”œβ”€β”€ Makefile             # Build automation
└── README.md            # This file

Development

Building

# Build for current platform
make build

# Build for all platforms
make build-all

# Run without building
go run main.go

Testing

# Run all tests
make test

# Run tests with coverage
make test-coverage

Code Quality

# Run linters
make lint

# Format code
go fmt ./...

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Configuration

The CLI stores configuration in ~/.vapi-cli.yaml. You can also use environment variables:

  • VAPI_API_KEY - Your Vapi API key
  • VAPI_BASE_URL - API base URL (for development)

Supported Frameworks

Frontend

  • React (Create React App, Vite)
  • Vue.js
  • Angular
  • Svelte
  • Next.js
  • Nuxt.js
  • Remix
  • Vanilla JavaScript

Mobile

  • React Native
  • Flutter

Backend

  • Node.js/TypeScript
  • Python
  • Go
  • Ruby
  • Java
  • C#/.NET

License

MIT License - see LICENSE file for details.

Support


Built with ❀️ by the Vapi team